diff --git a/documentation/css/idle.css b/documentation/css/idle.css
index eca8faf9..23667531 100644
--- a/documentation/css/idle.css
+++ b/documentation/css/idle.css
@@ -28,6 +28,7 @@ pre.idle .LibraryConstant {
color: #A535AE;
}
pre.idle .FunctionArgument {
+ color: #0076ad;
}
pre.idle .BuiltInConstant {
color: #A535AE;
diff --git a/documentation/underscore.html b/documentation/underscore.html
index 5ce7f0cc..357a94c0 100644
--- a/documentation/underscore.html
+++ b/documentation/underscore.html
@@ -19,7 +19,7 @@
1
2
- 3
+ 3
4
5
6
@@ -40,7 +40,7 @@
21
22
23
- 24 wrapper: obj =>
+ 24 wrapper: (obj) ->
25 this._wrapped: obj
26 this
27
@@ -50,7 +50,7 @@
31
32
33
- 34 _: root._: obj => new wrapper(obj)
+ 34 _: root._: (obj) -> new wrapper(obj)
35
36
37
@@ -58,22 +58,22 @@
39
40
41
- 42 slice: Array::slice
- 43 unshift: Array::unshift
- 44 toString: Object::toString
- 45 hasOwnProperty: Object::hasOwnProperty
- 46 propertyIsEnumerable: Object::propertyIsEnumerable
+ 42 slice: Array::slice
+ 43 unshift: Array::unshift
+ 44 toString: Object::toString
+ 45 hasOwnProperty: Object::hasOwnProperty
+ 46 propertyIsEnumerable: Object::propertyIsEnumerable
47
48
49
- 50 _.VERSION: '0.5.5'
+ 50 _.VERSION: '0.5.7'
51
52
53
54
55
56
- 57 _.each: obj, iterator, context =>
+ 57 _.each: (obj, iterator, context) ->
58 index: 0
59 try
60 return obj.forEach(iterator, context) if obj.forEach
@@ -87,36 +87,36 @@
68
69
70
- 71 _.map: obj, iterator, context =>
+ 71 _.map: (obj, iterator, context) ->
72 return obj.map(iterator, context) if (obj and _.isFunction(obj.map))
73 results: []
- 74 _.each(obj) value, index, list =>
+ 74 _.each obj, (value, index, list) ->
75 results.push(iterator.call(context, value, index, list))
76 results
77
78
79
80
- 81 _.reduce: obj, memo, iterator, context =>
+ 81 _.reduce: (obj, memo, iterator, context) ->
82 return obj.reduce(_.bind(iterator, context), memo) if (obj and _.isFunction(obj.reduce))
- 83 _.each(obj) value, index, list =>
+ 83 _.each obj, (value, index, list) ->
84 memo: iterator.call(context, memo, value, index, list)
85 memo
86
87
88
89
- 90 _.reduceRight: obj, memo, iterator, context =>
+ 90 _.reduceRight: (obj, memo, iterator, context) ->
91 return obj.reduceRight(_.bind(iterator, context), memo) if (obj and _.isFunction(obj.reduceRight))
- 92 _.each(_.clone(_.toArray(obj)).reverse()) value, index =>
+ 92 _.each _.clone(_.toArray(obj)).reverse(), (value, index) ->
93 memo: iterator.call(context, memo, value, index, obj)
94 memo
95
96
97
- 98 _.detect: obj, iterator, context =>
+ 98 _.detect: (obj, iterator, context) ->
99 result: null
- 100 _.each(obj) value, index, list =>
+ 100 _.each obj, (value, index, list) ->
101 if iterator.call(context, value, index, list)
102 result: value
103 _.breakLoop()
@@ -125,47 +125,47 @@
106
107
108
- 109 _.select: obj, iterator, context =>
+ 109 _.select: (obj, iterator, context) ->
110 if obj and _.isFunction(obj.filter) then return obj.filter(iterator, context)
111 results: []
- 112 _.each(obj) value, index, list =>
+ 112 _.each obj, (value, index, list) ->
113 results.push(value) if iterator.call(context, value, index, list)
114 results
115
116
117
- 118 _.reject: obj, iterator, context =>
+ 118 _.reject: (obj, iterator, context) ->
119 results: []
- 120 _.each(obj) value, index, list =>
+ 120 _.each obj, (value, index, list) ->
121 results.push(value) if not iterator.call(context, value, index, list)
122 results
123
124
125
126
- 127 _.all: obj, iterator, context =>
+ 127 _.all: (obj, iterator, context) ->
128 iterator ||= _.identity
129 return obj.every(iterator, context) if obj and _.isFunction(obj.every)
130 result: true
- 131 _.each(obj) value, index, list =>
+ 131 _.each obj, (value, index, list) ->
132 _.breakLoop() unless (result: result and iterator.call(context, value, index, list))
133 result
134
135
136
137
- 138 _.any: obj, iterator, context =>
+ 138 _.any: (obj, iterator, context) ->
139 iterator ||= _.identity
140 return obj.some(iterator, context) if obj and _.isFunction(obj.some)
141 result: false
- 142 _.each(obj) value, index, list =>
+ 142 _.each obj, (value, index, list) ->
143 _.breakLoop() if (result: iterator.call(context, value, index, list))
144 result
145
146
147
148
- 149 _.include: obj, target =>
+ 149 _.include: (obj, target) ->
150 return _.indexOf(obj, target) isnt -1 if _.isArray(obj)
151 for key, val of obj
152 return true if val is target
@@ -173,49 +173,49 @@
154
155
156
- 157 _.invoke: obj, method =>
+ 157 _.invoke: (obj, method) ->
158 args: _.rest(arguments, 2)
159 (if method then val[method] else val).apply(val, args) for val in obj
160
161
162
- 163 _.pluck: obj, key =>
- 164 _.map(obj, (val => val[key]))
+ 163 _.pluck: (obj, key) ->
+ 164 _.map(obj, ((val) -> val[key]))
165
166
167
- 168 _.max: obj, iterator, context =>
+ 168 _.max: (obj, iterator, context) ->
169 return Math.max.apply(Math, obj) if not iterator and _.isArray(obj)
170 result: {computed: -Infinity}
- 171 _.each(obj) value, index, list =>
+ 171 _.each obj, (value, index, list) ->
172 computed: if iterator then iterator.call(context, value, index, list) else value
173 computed >= result.computed and (result: {value: value, computed: computed})
174 result.value
175
176
177
- 178 _.min: obj, iterator, context =>
+ 178 _.min: (obj, iterator, context) ->
179 return Math.min.apply(Math, obj) if not iterator and _.isArray(obj)
180 result: {computed: Infinity}
- 181 _.each(obj) value, index, list =>
+ 181 _.each obj, (value, index, list) ->
182 computed: if iterator then iterator.call(context, value, index, list) else value
183 computed < result.computed and (result: {value: value, computed: computed})
184 result.value
185
186
187
- 188 _.sortBy: obj, iterator, context =>
- 189 _.pluck(((_.map(obj) value, index, list =>
+ 188 _.sortBy: (obj, iterator, context) ->
+ 189 _.pluck(((_.map obj, (value, index, list) ->
190 {value: value, criteria: iterator.call(context, value, index, list)}
- 191 ).sort() left, right =>
+ 191 ).sort((left, right) ->
192 a: left.criteria; b: right.criteria
193 if a < b then -1 else if a > b then 1 else 0
- 194 ), 'value')
+ 194 )), 'value')
195
196
197
198
- 199 _.sortedIndex: array, obj, iterator =>
+ 199 _.sortedIndex: (array, obj, iterator) ->
200 iterator ||= _.identity
201 low: 0; high: array.length
202 while low < high
@@ -225,7 +225,7 @@
206
207
208
- 209 _.toArray: iterable =>
+ 209 _.toArray: (iterable) ->
210 return [] if (!iterable)
211 return iterable.toArray() if (iterable.toArray)
212 return iterable if (_.isArray(iterable))
@@ -234,7 +234,7 @@
215
216
217
- 218 _.size: obj => _.toArray(obj).length
+ 218 _.size: (obj) -> _.toArray(obj).length
219
220
221
@@ -242,7 +242,7 @@
223
224
225
- 226 _.first: array, n, guard =>
+ 226 _.first: (array, n, guard) ->
227 if n and not guard then slice.call(array, 0, n) else array[0]
228
229
@@ -250,35 +250,35 @@
231
232
233
- 234 _.rest: array, index, guard =>
+ 234 _.rest: (array, index, guard) ->
235 slice.call(array, if _.isUndefined(index) or guard then 1 else index)
236
237
238
- 239 _.last: array => array[array.length - 1]
+ 239 _.last: (array) -> array[array.length - 1]
240
241
242
- 243 _.compact: array => array[i] for i in [0...array.length] when array[i]
+ 243 _.compact: (array) -> array[i] for i in [0...array.length] when array[i]
244
245
246
- 247 _.flatten: array =>
- 248 _.reduce(array, []) memo, value =>
+ 247 _.flatten: (array) ->
+ 248 _.reduce array, [], (memo, value) ->
249 return memo.concat(_.flatten(value)) if _.isArray(value)
250 memo.push(value)
251 memo
252
253
254
- 255 _.without: array =>
+ 255 _.without: (array) ->
256 values: _.rest(arguments)
257 val for val in _.toArray(array) when not _.include(values, val)
258
259
260
261
- 262 _.uniq: array, isSorted =>
+ 262 _.uniq: (array, isSorted) ->
263 memo: []
264 for el, i in _.toArray(array)
265 memo.push(el) if i is 0 || (if isSorted is true then _.last(memo) isnt el else not _.include(memo, el))
@@ -287,330 +287,339 @@
268
269
270
- 271 _.intersect: array =>
+ 271 _.intersect: (array) ->
272 rest: _.rest(arguments)
- 273 _.select(_.uniq(array)) item =>
- 274 _.all(rest) other =>
+ 273 _.select _.uniq(array), (item) ->
+ 274 _.all rest, (other) ->
275 _.indexOf(other, item) >= 0
276
277
278
279
- 280 _.zip: =>
- 281 args: _.toArray(arguments)
- 282 length: _.max(_.pluck(args, 'length'))
- 283 results: new Array(length)
- 284 for i in [0...length]
- 285 results[i]: _.pluck(args, String(i))
- 286 results
+ 280 _.zip: ->
+ 281 length: _.max(_.pluck(arguments, 'length'))
+ 282 results: new Array(length)
+ 283 for i in [0...length]
+ 284 results[i]: _.pluck(arguments, String(i))
+ 285 results
+ 286
287
- 288
- 289
- 290
- 291
- 292 _.indexOf: array, item =>
- 293 return array.indexOf(item) if array.indexOf
- 294 i: 0; l: array.length
- 295 while l - i
- 296 if array[i] is item then return i else i++
- 297 -1
+ 288
+ 289
+ 290
+ 291 _.indexOf: (array, item) ->
+ 292 return array.indexOf(item) if array.indexOf
+ 293 i: 0; l: array.length
+ 294 while l - i
+ 295 if array[i] is item then return i else i++
+ 296 -1
+ 297
298
- 299
- 300
- 301
- 302 _.lastIndexOf: array, item =>
- 303 return array.lastIndexOf(item) if array.lastIndexOf
- 304 i: array.length
- 305 while i
- 306 if array[i] is item then return i else i--
- 307 -1
+ 299
+ 300
+ 301 _.lastIndexOf: (array, item) ->
+ 302 return array.lastIndexOf(item) if array.lastIndexOf
+ 303 i: array.length
+ 304 while i
+ 305 if array[i] is item then return i else i--
+ 306 -1
+ 307
308
- 309
- 310
- 311
- 312
- 313 _.range: start, stop, step =>
- 314 a: _.toArray(arguments)
- 315 solo: a.length <= 1
- 316 i: start: if solo then 0 else a[0];
- 317 stop: if solo then a[0] else a[1];
- 318 step: a[2] or 1
- 319 len: Math.ceil((stop - start) / step)
- 320 return [] if len <= 0
- 321 range: new Array(len)
- 322 idx: 0
- 323 while true
- 324 return range if (if step > 0 then i - stop else stop - i) >= 0
- 325 range[idx]: i
- 326 idx++
- 327 i+= step
+ 309
+ 310
+ 311
+ 312 _.range: (start, stop, step) ->
+ 313 a: arguments
+ 314 solo: a.length <= 1
+ 315 i: start: if solo then 0 else a[0];
+ 316 stop: if solo then a[0] else a[1];
+ 317 step: a[2] or 1
+ 318 len: Math.ceil((stop - start) / step)
+ 319 return [] if len <= 0
+ 320 range: new Array(len)
+ 321 idx: 0
+ 322 while true
+ 323 return range if (if step > 0 then i - stop else stop - i) >= 0
+ 324 range[idx]: i
+ 325 idx++
+ 326 i+= step
+ 327
328
- 329
- 330
- 331
- 332
- 333
- 334 _.bind: func, obj =>
- 335 args: _.rest(arguments, 2)
- 336 => func.apply(obj or root, args.concat(_.toArray(arguments)))
+ 329
+ 330
+ 331
+ 332
+ 333 _.bind: (func, obj) ->
+ 334 args: _.rest(arguments, 2)
+ 335 -> func.apply(obj or root, args.concat(arguments))
+ 336
337
- 338
- 339
- 340
- 341 _.bindAll: obj =>
- 342 funcs: if arguments.length > 1 then _.rest(arguments) else _.functions(obj)
- 343 _.each(funcs, (f => obj[f]: _.bind(obj[f], obj)))
- 344 obj
+ 338
+ 339
+ 340 _.bindAll: (obj) ->
+ 341 funcs: if arguments.length > 1 then _.rest(arguments) else _.functions(obj)
+ 342 _.each(funcs, (f) -> obj[f]: _.bind(obj[f], obj))
+ 343 obj
+ 344
345
- 346
- 347
- 348
- 349 _.delay: func, wait =>
- 350 args: _.rest(arguments, 2)
- 351 setTimeout((=> func.apply(func, args)), wait)
+ 346
+ 347
+ 348 _.delay: (func, wait) ->
+ 349 args: _.rest(arguments, 2)
+ 350 setTimeout((-> func.apply(func, args)), wait)
+ 351
352
- 353
- 354
- 355
- 356 _.defer: func =>
- 357 _.delay.apply(_, [func, 1].concat(_.rest(arguments)))
+ 353
+ 354
+ 355 _.defer: (func) ->
+ 356 _.delay.apply(_, [func, 1].concat(_.rest(arguments)))
+ 357
358
- 359
- 360
- 361
- 362
- 363 _.wrap: func, wrapper =>
- 364 => wrapper.apply(wrapper, [func].concat(_.toArray(arguments)))
+ 359
+ 360
+ 361
+ 362 _.wrap: (func, wrapper) ->
+ 363 -> wrapper.apply(wrapper, [func].concat(arguments))
+ 364
365
- 366
- 367
- 368
- 369 _.compose: =>
- 370 funcs: _.toArray(arguments)
- 371 =>
- 372 args: _.toArray(arguments)
- 373 for i in [(funcs.length - 1)..0]
- 374 args: [funcs[i].apply(this, args)]
- 375 args[0]
+ 366
+ 367
+ 368 _.compose: ->
+ 369 funcs: arguments
+ 370 ->
+ 371 args: arguments
+ 372 for i in [(funcs.length - 1)..0]
+ 373 args: [funcs[i].apply(this, args)]
+ 374 args[0]
+ 375
376
- 377
- 378
- 379
- 380
- 381 _.keys: obj =>
- 382 return _.range(0, obj.length) if _.isArray(obj)
- 383 key for key, val of obj
+ 377
+ 378
+ 379
+ 380 _.keys: (obj) ->
+ 381 return _.range(0, obj.length) if _.isArray(obj)
+ 382 key for key, val of obj
+ 383
384
- 385
- 386
- 387 _.values: obj =>
- 388 _.map(obj, _.identity)
+ 385
+ 386 _.values: (obj) ->
+ 387 _.map(obj, _.identity)
+ 388
389
- 390
- 391
- 392 _.functions: obj =>
- 393 _.select(_.keys(obj), key => _.isFunction(obj[key])).sort()
+ 390
+ 391 _.functions: (obj) ->
+ 392 _.select(_.keys(obj), (key) -> _.isFunction(obj[key])).sort()
+ 393
394
- 395
- 396
- 397 _.extend: destination, source =>
- 398 for key, val of source
- 399 destination[key]: val
- 400 destination
+ 395
+ 396 _.extend: (destination, source) ->
+ 397 for key, val of source
+ 398 destination[key]: val
+ 399 destination
+ 400
401
- 402
- 403
- 404 _.clone: obj =>
- 405 return obj.slice(0) if _.isArray(obj)
- 406 _.extend({}, obj)
+ 402
+ 403 _.clone: (obj) ->
+ 404 return obj.slice(0) if _.isArray(obj)
+ 405 _.extend({}, obj)
+ 406
407
- 408
- 409
- 410
- 411 _.tap: obj, interceptor =>
- 412 interceptor(obj)
- 413 obj
+ 408
+ 409
+ 410 _.tap: (obj, interceptor) ->
+ 411 interceptor(obj)
+ 412 obj
+ 413
414
- 415
- 416
- 417 _.isEqual: a, b =>
- 418
- 419 return true if a is b
- 420
- 421 atype: typeof(a); btype: typeof(b)
- 422 return false if atype isnt btype
- 423
- 424 return true if `a == b`
- 425
- 426 return false if (!a and b) or (a and !b)
- 427
- 428 return a.isEqual(b) if a.isEqual
- 429
- 430 return a.getTime() is b.getTime() if _.isDate(a) and _.isDate(b)
- 431
- 432 return true if _.isNaN(a) and _.isNaN(b)
- 433
- 434 if _.isRegExp(a) and _.isRegExp(b)
- 435 return a.source is b.source and
- 436 a.global is b.global and
- 437 a.ignoreCase is b.ignoreCase and
- 438 a.multiline is b.multiline
- 439
- 440 return false if atype isnt 'object'
- 441
- 442 return false if a.length and (a.length isnt b.length)
- 443
- 444 aKeys: _.keys(a); bKeys: _.keys(b)
- 445
- 446 return false if aKeys.length isnt bKeys.length
- 447
- 448
- 449 return true
+ 415
+ 416 _.isEqual: (a, b) ->
+ 417
+ 418 return true if a is b
+ 419
+ 420 atype: typeof(a); btype: typeof(b)
+ 421 return false if atype isnt btype
+ 422
+ 423 return true if `a == b`
+ 424
+ 425 return false if (!a and b) or (a and !b)
+ 426
+ 427 return a.isEqual(b) if a.isEqual
+ 428
+ 429 return a.getTime() is b.getTime() if _.isDate(a) and _.isDate(b)
+ 430
+ 431 return true if _.isNaN(a) and _.isNaN(b)
+ 432
+ 433 if _.isRegExp(a) and _.isRegExp(b)
+ 434 return a.source is b.source and
+ 435 a.global is b.global and
+ 436 a.ignoreCase is b.ignoreCase and
+ 437 a.multiline is b.multiline
+ 438
+ 439 return false if atype isnt 'object'
+ 440
+ 441 return false if a.length and (a.length isnt b.length)
+ 442
+ 443 aKeys: _.keys(a); bKeys: _.keys(b)
+ 444
+ 445 return false if aKeys.length isnt bKeys.length
+ 446
+ 447
+ 448 return true
+ 449
450
- 451
- 452
- 453 _.isEmpty: obj => _.keys(obj).length is 0
+ 451
+ 452 _.isEmpty: (obj) -> _.keys(obj).length is 0
+ 453
454
- 455
- 456
- 457 _.isElement: obj => obj and obj.nodeType is 1
+ 455
+ 456 _.isElement: (obj) -> obj and obj.nodeType is 1
+ 457
458
- 459
- 460
- 461 _.isArray: obj => !!(obj and obj.concat and obj.unshift)
+ 459
+ 460 _.isArray: (obj) -> !!(obj and obj.concat and obj.unshift)
+ 461
462
- 463
- 464
- 465 _.isArguments: obj => obj and _.isNumber(obj.length) and !_.isArray(obj) and !propertyIsEnumerable.call(obj, 'length')
+ 463
+ 464 _.isArguments: (obj) -> obj and _.isNumber(obj.length) and not obj.concat and
+ 465 not obj.substr and not obj.apply and not propertyIsEnumerable.call(obj, 'length')
466
467
468
- 469 _.isFunction: obj => !!(obj and obj.constructor and obj.call and obj.apply)
+ 469 _.isFunction: (obj) -> !!(obj and obj.constructor and obj.call and obj.apply)
470
471
472
- 473 _.isString: obj => !!(obj is '' or (obj and obj.charCodeAt and obj.substr))
+ 473 _.isString: (obj) -> !!(obj is '' or (obj and obj.charCodeAt and obj.substr))
474
475
476
- 477 _.isNumber: obj => toString.call(obj) is '[object Number]'
+ 477 _.isNumber: (obj) -> (obj is +obj) or toString.call(obj) is '[object Number]'
478
479
480
- 481 _.isDate: obj => !!(obj and obj.getTimezoneOffset and obj.setUTCFullYear)
+ 481 _.isDate: (obj) -> !!(obj and obj.getTimezoneOffset and obj.setUTCFullYear)
482
483
484
- 485 _.isRegExp: obj => !!(obj and obj.exec and (obj.ignoreCase or obj.ignoreCase is false))
+ 485 _.isRegExp: (obj) -> !!(obj and obj.exec and (obj.ignoreCase or obj.ignoreCase is false))
486
487
488
489
- 490 _.isNaN: obj => _.isNumber(obj) and window.isNaN(obj)
+ 490 _.isNaN: (obj) -> _.isNumber(obj) and window.isNaN(obj)
491
492
493
- 494 _.isNull: obj => obj is null
+ 494 _.isNull: (obj) -> obj is null
495
496
497
- 498 _.isUndefined: obj => typeof obj is 'undefined'
+ 498 _.isUndefined: (obj) -> typeof obj is 'undefined'
499
500
501
502
503
504
- 505 _.noConflict: =>
+ 505 _.noConflict: ->
506 root._: previousUnderscore
507 this
508
509
510
- 511 _.identity: value => value
+ 511 _.identity: (value) -> value
512
513
514
- 515 _.breakLoop: => throw breaker
+ 515 _.breakLoop: -> throw breaker
516
517
518
519
520 idCounter: 0
- 521 _.uniqueId: prefix =>
+ 521 _.uniqueId: (prefix) ->
522 (prefix or '') + idCounter++
523
524
- 525
- 526
- 527 _.template: str, data =>
- 528 `var fn = new Function('obj',
- 529 'var p=[],print=function(){p.push.apply(p,arguments);};' +
- 530 'with(obj){p.push(\'' +
- 531 str.
- 532 replace(/[\r\t\n]/g, " ").
- 533 split("<%").join("\t").
- 534 replace(/((^|%>)[^\t]*)'/g, "$1\r").
- 535 replace(/\t=(.*?)%>/g, "',$1,'").
- 536 split("\t").join("');").
- 537 split("%>").join("p.push('").
- 538 split("\r").join("\\'") +
- 539 "');}return p.join('');")`
- 540 if data then fn(data) else fn
- 541
- 542
- 543
- 544
- 545 _.forEach: _.each
- 546 _.foldl: _.inject: _.reduce
- 547 _.foldr: _.reduceRight
- 548 _.filter: _.select
- 549 _.every: _.all
- 550 _.some: _.any
- 551 _.head: _.first
- 552 _.tail: _.rest
- 553 _.methods: _.functions
+ 525
+ 526
+ 527 _.templateSettings: {
+ 528 start: '<%'
+ 529 end: '%>'
+ 530 interpolate: /<%=(.+?)%>/g
+ 531 }
+ 532
+ 533
+ 534
+ 535
+ 536
+ 537 _.template: (str, data) ->
+ 538 c: _.templateSettings
+ 539 fn: new Function 'obj',
+ 540 'var p=[],print=function(){p.push.apply(p,arguments);};' +
+ 541 'with(obj){p.push(\'' +
+ 542 str.replace(/[\r\t\n]/g, " ")
+ 543 .replace(new RegExp("'(?=[^"+c.end[0]+"]*"+c.end+")","g"),"\t")
+ 544 .split("'").join("\\'")
+ 545 .split("\t").join("'")
+ 546 .replace(c.interpolate, "',$1,'")
+ 547 .split(c.start).join("');")
+ 548 .split(c.end).join("p.push('") +
+ 549 "');}return p.join('');"
+ 550 if data then fn(data) else fn
+ 551
+ 552
+ 553
554
- 555
- 556
- 557
- 558
- 559 result: obj, chain =>
- 560 if chain then _(obj).chain() else obj
- 561
- 562
- 563
- 564 _.each(_.functions(_)) name =>
- 565 method: _[name]
- 566 wrapper.prototype[name]: =>
- 567 args: _.toArray(arguments)
- 568 unshift.call(args, this._wrapped)
- 569 result(method.apply(_, args), this._chain)
- 570
+ 555 _.forEach: _.each
+ 556 _.foldl: _.inject: _.reduce
+ 557 _.foldr: _.reduceRight
+ 558 _.filter: _.select
+ 559 _.every: _.all
+ 560 _.some: _.any
+ 561 _.head: _.first
+ 562 _.tail: _.rest
+ 563 _.methods: _.functions
+ 564
+ 565
+ 566
+ 567
+ 568
+ 569 result: (obj, chain) ->
+ 570 if chain then _(obj).chain() else obj
571
- 572
- 573 _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift']) name =>
- 574 method: Array.prototype[name]
- 575 wrapper.prototype[name]: =>
- 576 method.apply(this._wrapped, arguments)
- 577 result(this._wrapped, this._chain)
- 578
+ 572
+ 573
+ 574 _.each _.functions(_), (name) ->
+ 575 method: _[name]
+ 576 wrapper.prototype[name]: ->
+ 577 unshift.call(arguments, this._wrapped)
+ 578 result(method.apply(_, arguments), this._chain)
579
- 580
- 581 _.each(['concat', 'join', 'slice']) name =>
- 582 method: Array.prototype[name]
- 583 wrapper.prototype[name]: =>
- 584 result(method.apply(this._wrapped, arguments), this._chain)
- 585
- 586
- 587
- 588 wrapper::chain: =>
- 589 this._chain: true
- 590 this
- 591
- 592
- 593
- 594 wrapper::value: => this._wrapped
+ 580
+ 581
+ 582 _.each ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], (name) ->
+ 583 method: Array.prototype[name]
+ 584 wrapper.prototype[name]: ->
+ 585 method.apply(this._wrapped, arguments)
+ 586 result(this._wrapped, this._chain)
+ 587
+ 588
+ 589
+ 590 _.each ['concat', 'join', 'slice'], (name) ->
+ 591 method: Array.prototype[name]
+ 592 wrapper.prototype[name]: ->
+ 593 result(method.apply(this._wrapped, arguments), this._chain)
+ 594
+ 595
+ 596
+ 597 wrapper::chain: ->
+ 598 this._chain: true
+ 599 this
+ 600
+ 601
+ 602
+ 603 wrapper::value: -> this._wrapped
obj and _.isNumber(obj.length) and !_.isArray(obj) and !propertyIsEnumerable.call(obj, 'length')
+ _.isArguments: (obj) -> obj and _.isNumber(obj.length) and not obj.concat and
+ not obj.substr and not obj.apply and not propertyIsEnumerable.call(obj, 'length')
# Is the given value a function?
@@ -473,7 +474,7 @@
# Is a given value a number?
- _.isNumber: (obj) -> toString.call(obj) is '[object Number]'
+ _.isNumber: (obj) -> (obj is +obj) or toString.call(obj) is '[object Number]'
# Is a given value a Date?
@@ -521,21 +522,31 @@
(prefix or '') + idCounter++
+ # By default, Underscore uses ERB-style template delimiters, change the
+ # following template settings to use alternative delimiters.
+ _.templateSettings: {
+ start: '<%'
+ end: '%>'
+ interpolate: /<%=(.+?)%>/g
+ }
+
+
# JavaScript templating a-la ERB, pilfered from John Resig's
# "Secrets of the JavaScript Ninja", page 83.
+ # Single-quotea fix from Rick Strahl's version.
_.template: (str, data) ->
- `var fn = new Function('obj',
+ c: _.templateSettings
+ fn: new Function 'obj',
'var p=[],print=function(){p.push.apply(p,arguments);};' +
'with(obj){p.push(\'' +
- str.
- replace(/[\r\t\n]/g, " ").
- split("<%").join("\t").
- replace(/((^|%>)[^\t]*)'/g, "$1\r").
- replace(/\t=(.*?)%>/g, "',$1,'").
- split("\t").join("');").
- split("%>").join("p.push('").
- split("\r").join("\\'") +
- "');}return p.join('');")`
+ str.replace(/[\r\t\n]/g, " ")
+ .replace(new RegExp("'(?=[^"+c.end[0]+"]*"+c.end+")","g"),"\t")
+ .split("'").join("\\'")
+ .split("\t").join("'")
+ .replace(c.interpolate, "',$1,'")
+ .split(c.start).join("');")
+ .split(c.end).join("p.push('") +
+ "');}return p.join('');"
if data then fn(data) else fn
@@ -564,7 +575,7 @@
method: _[name]
wrapper.prototype[name]: ->
unshift.call(arguments, this._wrapped)
- result(method.apply(_, args), this._chain)
+ result(method.apply(_, arguments), this._chain)
# Add all mutator Array functions to the wrapper.
diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y
index 098509a7..174a498d 100644
--- a/lib/coffee_script/grammar.y
+++ b/lib/coffee_script/grammar.y
@@ -22,7 +22,7 @@ token INDENT OUTDENT
# Declare order of operations.
prechigh
left '?'
- nonassoc UMINUS NOT '!' '!!' '~' '++' '--'
+ nonassoc UMINUS UPLUS NOT '!' '!!' '~' '++' '--'
left '*' '/' '%'
left '+' '-'
left '<<' '>>' '>>>'
@@ -141,6 +141,7 @@ rule
'!' Expression { result = OpNode.new(val[0], val[1]) }
| '!!' Expression { result = OpNode.new(val[0], val[1]) }
| '-' Expression = UMINUS { result = OpNode.new(val[0], val[1]) }
+ | '+' Expression = UPLUS { result = OpNode.new(val[0], val[1]) }
| NOT Expression { result = OpNode.new(val[0], val[1]) }
| '~' Expression { result = OpNode.new(val[0], val[1]) }
| '--' Expression { result = OpNode.new(val[0], val[1]) }
diff --git a/lib/coffee_script/narwhal/lib/coffee-script.js b/lib/coffee_script/narwhal/lib/coffee-script.js
index 0ea08227..b2283d0f 100644
--- a/lib/coffee_script/narwhal/lib/coffee-script.js
+++ b/lib/coffee_script/narwhal/lib/coffee-script.js
@@ -42,7 +42,7 @@
} catch (e) {
return print(e);
}
- })());
+ }).call(this));
}
return __b;
};
diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb
index 65aa8f59..9b342e4b 100644
--- a/lib/coffee_script/parser.rb
+++ b/lib/coffee_script/parser.rb
@@ -34,312 +34,318 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 459)
##### State transition tables begin ###
clist = [
-'125,11,133,26,28,31,37,39,43,48,53,58,60,88,90,92,200,1,172,259,19,23',
-'86,184,87,56,40,46,276,49,54,61,121,126,275,281,282,141,12,273,20,155',
-'30,32,160,41,173,46,51,56,56,152,56,68,71,4,9,137,140,144,147,150,154',
-'158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131,135',
-'138,142,145,148,151,156,118,122,127,130,134,162,69,2,56,171,274,24,56',
-'29,11,34,196,26,28,31,37,39,43,48,53,58,60,183,259,190,294,1,152,98',
-'19,23,46,190,137,140,40,96,202,49,54,61,62,69,2,7,13,6,12,278,20,307',
-'30,32,265,41,165,46,51,7,13,7,13,68,71,4,9,15,18,7,13,192,46,35,285',
-'189,255,7,13,192,56,260,7,13,11,204,205,26,28,31,37,39,43,48,53,58,60',
-'289,7,13,188,1,69,2,19,23,180,24,190,29,40,34,74,49,54,61,62,98,56,7',
-'13,6,12,116,20,96,30,32,98,41,287,46,51,281,282,259,96,68,71,4,9,15',
-'18,46,152,56,291,35,98,98,-182,-182,7,13,192,110,96,96,11,165,46,26',
-'28,31,37,39,43,48,53,58,60,46,203,99,312,1,69,2,19,23,182,24,56,29,40',
-'34,106,49,54,61,62,46,46,99,181,6,12,116,20,74,30,32,152,41,211,46,51',
-',137,140,,68,71,4,9,15,18,152,7,13,188,35,186,137,140,144,147,150,154',
-'158,204,205,11,198,199,26,28,31,37,39,43,48,53,58,60,88,90,92,,1,69',
-'2,19,23,86,24,87,29,40,34,152,49,54,61,62,,-182,-182,,6,12,,20,,30,32',
-'152,41,,46,51,,-182,-182,,68,71,4,9,15,18,152,7,13,,35,,137,140,144',
-'147,150,154,158,,,11,,,26,28,31,37,39,43,48,53,58,60,88,90,92,,1,69',
-'2,19,23,86,24,87,29,40,34,152,49,54,61,62,,137,140,,6,12,,20,,30,32',
-'152,41,,46,51,,-182,-182,,68,71,4,9,15,18,152,,,,35,,137,140,144,147',
-'150,154,158,,,11,,,26,28,31,37,39,43,48,53,58,60,88,90,92,,1,69,2,19',
-'23,86,24,87,29,40,34,152,49,54,61,62,,-182,-182,,6,12,,20,,30,32,,41',
-',46,51,,88,90,92,68,71,4,9,15,18,86,,87,152,35,88,90,92,,137,140,144',
-'147,150,86,11,87,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24',
-',29,40,34,152,49,54,61,62,,-182,-182,,6,12,,20,,30,32,152,41,,46,51',
-',-182,-182,,68,71,4,9,15,18,152,,,,35,,137,140,144,147,150,,,,,11,,',
-'26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,',
-',,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,',
-',6,12,,20,,30,32,,41,,46,51,103,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,',
-'11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49',
-'54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,',
-',,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29',
-'40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18',
-',,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,',
-',6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11',
-',,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,114,,,68,71,4,9,15,18',
-',,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,309,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62',
-',,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,',
-'11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49',
-'54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,',
-',,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29',
-'40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18',
-',,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,299,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12',
-',20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28',
-'31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62',
-',,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,',
-'11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49',
-'54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,',
-',,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29',
-'40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18',
-',,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,',
-',6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11',
-',,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,103,,,,68,71,4,9,15,18',
-',,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,',
-',6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11',
-',,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,',
-',,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-'271,,,,68,71,4,9,15,18,152,,,,35,,137,140,144,147,150,154,158,120,124',
-'129,132,136,139,143,146,149,153,157,119,123,128,,,,,,,69,2,7,13,,24',
-',29,11,34,,26,28,31,37,39,43,48,53,58,60,,,,,1,,,19,23,,,,,40,,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,',
-',,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,103,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39',
-'43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12',
-',20,,30,32,,41,,46,51,56,,,,68,71,4,9,15,18,152,,,,35,,137,140,144,147',
-'150,154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128',
-',,,,,,69,2,7,13,,24,,29,11,34,,26,28,31,37,39,43,48,53,58,60,,,,,1,',
-',19,23,,,,,40,,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,',
-',6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11',
-',,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,',
-',,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23',
-',24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71',
-'4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1',
-'69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51',
-',,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43,48,53,58',
-'60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20,,30,32,',
-'41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31,37,39,43',
-'48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,6,12,,20',
-',30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11,,,26,28,31',
-'37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,',
-',6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,,,,,,,,11',
-',,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54',
-'61,62,,,,,6,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,,,,,35,,,,',
-',,,,,,11,,,26,28,31,37,39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40',
-'34,,49,54,61,62,,,,,6,12,,20,,30,32,,41,,46,51,125,,133,,68,71,4,9,15',
-'18,152,,,,35,,137,140,144,147,150,154,158,120,124,129,132,136,139,,',
-',121,126,,,,141,,,,155,,69,2,,,,24,,29,152,34,,,,,137,140,144,147,150',
-'154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131',
-'135,138,142,145,148,151,156,118,122,127,130,134,125,,133,,,,,,,310,',
-'26,28,31,37,39,43,48,53,58,60,,,,,,,,,,,,121,126,,,,141,54,61,,155,',
-',,,,,,,,152,,41,,,51,137,140,144,147,150,154,158,120,124,129,132,136',
-'139,143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156',
-'118,122,127,130,134,,,,,,,,,,317,,,,,24,,29,,34,26,28,31,37,39,43,48',
-'53,58,60,,,26,28,31,37,39,43,48,53,58,60,,,,,1,54,61,19,23,,,,,40,,',
-'49,54,61,,41,,,51,,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15,18,152',
-',,,35,,137,140,144,147,150,154,158,120,124,129,132,136,139,,,,,,,,24',
-',29,,34,,,69,2,,,,24,,29,,34,26,28,31,37,39,43,48,53,58,60,,,,,1,,,19',
-'23,,,,,40,,,49,54,61,,,,,,,12,,20,,30,32,,41,,46,51,,,,,68,71,4,9,15',
-'18,152,,,,35,,137,140,144,147,150,154,158,120,124,129,,,26,28,31,37',
-'39,43,48,53,58,60,,,,,1,69,2,19,23,,24,,29,40,34,,49,54,61,62,,,,,,12',
-',20,,30,32,,41,,46,51,125,,133,,68,71,4,9,15,18,152,,,,35,,137,140,144',
-'147,150,154,158,120,124,129,132,136,139,,,,121,126,,,,141,,,,155,,69',
-'2,,,,24,,29,152,34,,,,,137,140,144,147,150,154,158,120,124,129,132,136',
-'139,143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156',
-'118,122,127,130,134,125,152,133,,,,,137,140,144,147,150,154,158,120',
-'124,129,132,136,139,143,146,149,153,157,119,123,128,,,,,121,126,,,,141',
-',,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129,132',
-'136,139,143,146,149,153,157,119,123,128,131,135,138,142,145,148,151',
-'156,118,122,127,130,134,125,152,133,,,,,137,140,144,147,150,154,158',
-'120,124,129,132,136,139,143,146,149,153,157,119,123,128,,,,,121,126',
-',,,141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124',
-'129,132,136,139,143,146,149,153,157,119,123,128,131,135,138,142,145',
-'148,151,156,118,122,127,130,134,125,152,133,,,,,137,140,144,147,150',
-'154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,,,,',
-'121,126,,,,141,,,,155,,,,,,,,176,,152,,,,,,137,140,144,147,150,154,158',
-'120,124,129,132,136,139,143,146,149,153,157,119,123,128,131,135,138',
-'142,145,148,151,156,118,122,127,130,134,125,152,133,,,,,137,140,144',
-'147,150,154,158,120,124,129,132,136,139,143,146,149,153,157,119,123',
-'128,,,,,121,126,,,,141,,,,155,,,,,,,,56,,152,,,,,,137,140,144,147,150',
-'154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131',
-'135,138,142,145,148,151,156,118,122,127,130,134,125,152,133,,,,,137',
-'140,144,147,150,154,158,120,124,129,132,136,139,143,146,149,153,157',
-'119,123,128,,,,,121,126,,,,141,,,,155,,,,,,,,56,,152,,,,,,137,140,144',
-'147,150,154,158,120,124,129,132,136,139,143,146,149,153,157,119,123',
-'128,131,135,138,142,145,148,151,156,118,122,127,130,134,125,152,133',
-',,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143,146,149',
-'153,157,119,123,128,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,,,137',
-'140,144,147,150,154,158,120,124,129,132,136,139,143,146,149,153,157',
-'119,123,128,131,135,138,142,145,148,151,156,118,122,127,130,134,125',
-'152,133,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,,,,',
-',,,,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150',
-'154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131',
-'135,138,142,145,148,151,156,118,122,127,130,134,125,152,133,,,,,137',
-'140,144,147,150,154,158,120,124,129,,,,,,,,,,,,,,,,121,126,,,,141,,',
-',155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136',
-'139,143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156',
-'118,122,127,130,134,125,152,133,,,,,137,140,144,147,150,154,158,120',
-'124,129,,,,,,,,,,,,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,,,137,140',
-'144,147,150,154,158,120,124,129,132,136,139,143,146,149,153,157,119',
-'123,128,131,135,138,142,145,148,151,156,118,122,127,130,134,125,,133',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,',
-',137,140,144,147,150,154,158,120,124,129,132,136,139,143,146,149,153',
-'157,119,123,128,131,135,138,142,145,148,151,156,118,122,127,130,134',
-'125,,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,121,126,,,,141,,,,155,,,,,,,,',
-',152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143,146',
-'149,153,157,119,123,128,131,135,138,142,145,148,151,156,118,122,127',
-'130,134,125,,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,121,126,,,,141,,,,155',
-',,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139',
-'143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156,118',
-'122,127,130,134,125,,133,,,,,,,,,,,,,,,,,,,,,,,315,,,,,,,121,126,,,',
-'141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129',
-'132,136,139,143,146,149,153,157,119,123,128,131,135,138,142,145,148',
-'151,156,118,122,127,130,134,125,,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,121',
-'126,,,,141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120',
-'124,129,132,136,139,143,146,149,153,157,119,123,128,131,135,138,142',
-'145,148,151,156,118,122,127,130,134,125,,133,,,,,,,,,,,,,,,,,,,,,,,',
-',,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154',
-'158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131,135',
-'138,142,145,148,151,156,118,122,127,130,134,125,,133,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147',
-'150,154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128',
-'131,135,138,142,145,148,151,156,118,194,127,130,134,125,,133,,,,,,,',
-',,,,,,,,,,,,,,,262,,,,,,,121,126,,,,141,,,,155,,,,,,,,,,152,,,,,,137',
-'140,144,147,150,154,158,120,124,129,132,136,139,143,146,149,153,157',
-'119,123,128,131,135,138,142,145,148,151,156,118,261,127,130,134,125',
-',133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,121,126,,,,141,,,,155,,,,,,,,,,152',
-',,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143,146,149',
-'153,157,119,123,128,131,135,138,142,145,148,151,156,118,122,127,130',
-'134,125,,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,121,126,,,,141,,,,155,,,,',
-',,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143',
-'146,149,153,157,119,123,128,131,135,138,142,145,148,151,156,118,122',
-'127,130,134,125,,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,121,126,,,,141,,,',
-'155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136',
-'139,143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156',
-'118,122,127,130,134,125,,133,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,121,126',
-',,,141,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124',
-'129,132,136,139,143,146,149,153,157,119,123,128,131,135,138,142,145',
-'148,151,156,118,122,127,130,134,121,126,,,,,,,,155,,,,,,,,,,152,,,,',
-',137,140,144,147,150,154,158,120,124,129,132,136,139,143,146,149,153',
-'157,119,123,128,131,135,138,142,145,148,151,156,118,122,127,130,134',
-'121,126,,,,,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120',
-'124,129,132,136,139,143,146,149,153,157,119,123,128,131,135,138,142',
-'145,148,151,156,118,122,127,130,134,121,126,,,,,,,,155,,,,,,,,,,152',
-',,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143,146,149',
-'153,157,119,123,128,131,135,138,142,145,148,151,156,118,122,121,126',
-',,,,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129',
-'132,136,139,143,146,149,153,157,119,123,128,131,135,138,142,145,148',
-'151,156,118,122,121,126,,,,,,,,155,,,,,,,,,,152,,,,,,137,140,144,147',
-'150,154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128',
-'131,135,138,142,145,148,151,156,118,122,121,126,,,,,,,,155,,,,,,,,,',
-'152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143,146',
-'149,153,157,119,123,128,131,135,138,142,145,148,151,156,118,122,126',
-',,,,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129',
-'132,136,139,143,146,149,153,157,119,123,128,131,135,138,142,145,148',
-'151,156,118,122,126,,,,,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150',
-'154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131',
-'135,138,142,145,148,151,156,118,122,126,,,,,,,,155,,,,,,,,,,152,,,,',
-',137,140,144,147,150,154,158,120,124,129,132,136,139,143,146,149,153',
-'157,119,123,128,131,135,138,142,145,148,151,156,118,122,126,,,,,,,,155',
-',,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139',
-'143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156,118',
-'122,126,,,,,,,,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154,158,120',
-'124,129,132,136,139,143,146,149,153,157,119,123,128,131,135,138,142',
-'145,148,151,156,118,122,155,,,,,,,,,,152,,,,,,137,140,144,147,150,154',
-'158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131,135',
-'138,142,145,148,151,156,118,155,,,,,,,,,,152,,,,,,137,140,144,147,150',
-'154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131',
-'135,138,142,145,148,151,156,118,155,,,,,,,,,,152,,,,,,137,140,144,147',
-'150,154,158,120,124,129,132,136,139,143,146,149,153,157,119,123,128',
-'131,135,138,142,145,148,151,156,118,152,,,,,,137,140,144,147,150,154',
-'158,120,124,129,132,136,139,143,146,149,153,157,119,123,128,131,135',
-'138,142,145,148,151,156,118,152,,,,,,137,140,144,147,150,154,158,120',
-'124,129,132,136,139,143,146,149,153,157,119,123,128,131,135,138,142',
-'145,148,151,156,118,152,,,,,,137,140,144,147,150,154,158,120,124,129',
-'132,136,139,143,146,149,153,157,119,123,128,131,135,138,142,145,148',
-'151,156,118,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136',
-'139,143,146,149,153,157,119,123,128,131,135,138,142,145,148,151,156',
-'118,152,,,,,,137,140,144,147,150,154,158,120,124,129,132,136,139,143',
-'146,149,153,157,119,123,128,131,135,138,142,145,148,151,156,118' ]
- racc_action_table = arr = Array.new(8898, nil)
+'128,59,136,28,31,33,38,42,47,51,56,61,64,92,93,95,175,92,93,95,284,285',
+'90,276,91,296,90,59,91,59,57,65,124,130,59,155,288,144,287,261,169,158',
+'143,147,164,44,155,49,54,309,193,155,173,143,147,150,153,157,143,147',
+'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126',
+'131,134,138,141,145,148,151,154,159,121,125,129,133,137,140,166,11,174',
+'13,17,191,29,262,34,11,40,198,28,31,33,38,42,47,51,56,61,64,206,207',
+'203,155,1,59,100,21,25,193,-183,-183,193,43,98,291,52,57,65,66,13,17',
+'206,207,6,12,59,22,59,32,35,267,44,280,49,54,13,17,188,59,189,73,4,9',
+'15,19,24,13,17,49,37,46,118,261,13,17,191,13,17,191,192,49,11,278,293',
+'28,31,33,38,42,47,51,56,61,64,277,13,17,188,1,2,7,21,25,275,29,59,34',
+'43,40,75,52,57,65,66,100,255,13,17,6,12,114,22,98,32,35,155,44,169,49',
+'54,200,201,143,147,261,73,4,9,15,19,24,100,49,155,37,46,100,100,182',
+'98,-183,-183,13,17,98,98,11,49,59,28,31,33,38,42,47,51,56,61,64,92,93',
+'95,108,1,2,7,21,25,90,29,91,34,43,40,49,52,57,65,66,49,49,101,101,6',
+'12,183,22,184,32,35,155,44,314,49,54,13,17,-183,-183,185,73,4,9,15,19',
+'24,155,284,285,37,46,13,17,143,147,150,153,157,161,123,186,11,2,7,28',
+'31,33,38,42,47,51,56,61,64,92,93,95,202,1,2,7,21,25,90,29,91,34,43,40',
+'155,52,57,65,66,205,75,-183,-183,6,12,118,22,217,32,35,155,44,,49,54',
+',,-183,-183,,73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,161,123',
+',11,,,28,31,33,38,42,47,51,56,61,64,92,93,95,,1,2,7,21,25,90,29,91,34',
+'43,40,155,52,57,65,66,,,143,147,6,12,,22,,32,35,155,44,,49,54,,,-183',
+'-183,,73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,161,123,,11',
+',,28,31,33,38,42,47,51,56,61,64,92,93,95,,1,2,7,21,25,90,29,91,34,43',
+'40,155,52,57,65,66,,,-183,-183,6,12,,22,,32,35,155,44,,49,54,,,-183',
+'-183,,73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,,,,11,,,28,31',
+'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,',
+',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,',
+',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,',
+'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37',
+'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29',
+',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15',
+'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2',
+'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,',
+',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61',
+'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44',
+',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47',
+'51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22',
+',32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31',
+'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,',
+',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,',
+',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,',
+'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37',
+'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29',
+',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15',
+'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2',
+'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,106',
+',,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28',
+'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66',
+',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,',
+',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40',
+',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,',
+'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,',
+'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9',
+'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1',
+'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,310,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,',
+'6,12,,22,,32,35,,44,,49,54,,116,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,',
+',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,',
+'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37',
+'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29',
+',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15',
+'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2',
+'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,',
+',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61',
+'64,300,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28',
+'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66',
+',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,',
+',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40',
+',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,',
+'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,',
+'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9',
+'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1',
+'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,272,,,,,73,4,9,15,19,24,155,,,37,46,,,143,147',
+'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126',
+'131,134,,,,,,2,7,13,17,,29,,34,11,40,,28,31,33,38,42,47,51,56,61,64',
+',,,,1,,,21,25,,,,,43,,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,',
+',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61',
+'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44',
+',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47',
+'51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22',
+',32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31',
+'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,',
+',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,',
+',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,',
+'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37',
+'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29',
+',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15',
+'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2',
+'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,',
+',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61',
+'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44',
+',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47',
+'51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22',
+',32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31',
+'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,',
+',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,',
+',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,',
+'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37',
+'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29',
+',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,106,,,,,73,4,9',
+'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1',
+'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28',
+'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66',
+',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,',
+',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40',
+',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,',
+'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,',
+'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9',
+'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1',
+'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28',
+'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66',
+',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,',
+',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40',
+',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,',
+'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,',
+'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9',
+'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1',
+'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+'106,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51',
+'56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32',
+'35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33',
+'38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,',
+'6,12,,22,,32,35,,44,,49,54,59,,,,,73,4,9,15,19,24,155,,,37,46,,,143',
+'147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122',
+'126,131,134,,,,,,2,7,13,17,,29,,34,11,40,,28,31,33,38,42,47,51,56,61',
+'64,,,,,1,,,21,25,,,,,43,,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28',
+'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66',
+',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,',
+',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40',
+',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,',
+'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,',
+'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9',
+'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1',
+'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54',
+',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56',
+'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35',
+',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38',
+'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12',
+',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28',
+'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66',
+',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,',
+',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40',
+',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,',
+'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,',
+'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,128,,136,',
+'73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,161,123,127,132,135',
+'139,142,146,,,124,130,,,,144,,,,158,,2,7,,,,29,,34,155,40,,,,,,143,147',
+'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126',
+'131,134,138,141,145,148,151,154,159,121,125,129,133,137,140,128,,136',
+'155,,,,,,319,143,147,150,153,157,161,123,127,132,135,139,142,146,149',
+'152,156,160,122,126,131,134,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,',
+',,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160',
+'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140',
+',,,,,,,,,313,28,31,33,38,42,47,51,56,61,64,,,,,1,,,21,25,,,,,43,,,52',
+'57,65,,,,,,,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,',
+',,,28,31,33,38,42,47,51,56,61,64,,,,,1,,,21,25,,,,,43,2,7,52,57,65,29',
+',34,,40,,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,155,,,37,46,',
+',143,147,150,153,157,161,123,127,132,135,,28,31,33,38,42,47,51,56,61',
+'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,,12,,22,,32,35,,44',
+',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,28,31,33,38,42,47,51,56,61',
+'64,,,,,1,,,21,25,,,,,43,2,7,52,57,65,29,,34,,40,,12,,22,,32,35,,44,',
+'49,54,,,,,,73,4,9,15,,28,31,33,38,42,47,51,56,61,64,155,,,,,,,143,147',
+'150,153,157,161,123,127,132,135,57,65,,,,,,2,7,,,,29,,34,44,40,155,54',
+',128,,136,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152',
+'156,160,122,126,131,134,,,,,,,,124,130,,,,144,,,,158,,,,,,,29,,34,155',
+'40,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152',
+'156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133',
+'137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139',
+'142,146,149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158,,,',
+',,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125',
+'129,133,137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132',
+'135,139,142,146,,,,,318,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,',
+',,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160',
+'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140',
+'128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+'149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158,,,,,,,,,,155',
+',,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156',
+'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137',
+'140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139,142',
+'146,149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158,,,,,,,',
+'178,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149',
+'152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129',
+'133,137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135',
+'139,142,146,149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158',
+',,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125',
+'129,133,137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132',
+'135,139,142,146,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,',
+'143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160',
+'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140',
+'128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+',,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153',
+'157,161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134',
+'138,141,145,148,151,154,159,121,125,129,133,137,140,128,155,136,,,,',
+',143,147,150,153,157,161,123,127,132,135,,,,,,,,,,,,,,,124,130,,,,144',
+',,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139',
+'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159',
+'121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130',
+',,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132',
+'135,139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151',
+'154,159,121,125,196,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,',
+',,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123',
+'127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141,145',
+'148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,',
+',,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157',
+'161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138',
+'141,145,148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,',
+',,,,,,,,,,,320,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147',
+'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126',
+'131,134,138,141,145,148,151,154,159,121,125,129,133,137,140,128,,136',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,59,,155,,',
+',,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156',
+'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137',
+'140,128,,136,,,,,,,,,,,,,,,,,,,,,,,264,,,,,,,124,130,,,,144,,,,158,',
+',,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125',
+'263,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144',
+',,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139',
+'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159',
+'121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130',
+',,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132',
+'135,139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151',
+'154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,',
+',,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123',
+'127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141,145',
+'148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,',
+',,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157',
+'161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138',
+'141,145,148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,',
+',,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150',
+'153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126,131',
+'134,138,141,145,148,151,154,159,121,125,129,133,137,140,128,,136,,,',
+',,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,59,,155,,,,,',
+',143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160',
+'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140',
+'128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,',
+',155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152',
+'156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133',
+'137,140,124,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161',
+'123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141',
+'145,148,151,154,159,121,125,129,133,137,140,124,130,,,,,,,,158,,,,,',
+',,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149',
+'152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129',
+'133,137,140,124,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157',
+'161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138',
+'141,145,148,151,154,159,121,125,129,124,130,,,,,,,,158,,,,,,,,,,155',
+',,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156',
+'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,124,130',
+',,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135',
+'139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154',
+'159,121,125,129,124,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153',
+'157,161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134',
+'138,141,145,148,151,154,159,121,125,129,130,,,,,,,,158,,,,,,,,,,155',
+',,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156',
+'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,130,,,,',
+',,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139',
+'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159',
+'121,125,129,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161',
+'123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141',
+'145,148,151,154,159,121,125,129,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143',
+'147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122',
+'126,131,134,138,141,145,148,151,154,159,121,125,129,130,,,,,,,,158,',
+',,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125',
+'129,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139',
+'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159',
+'121,125,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135',
+'139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154',
+'159,121,125,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132',
+'135,139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151',
+'154,159,121,125,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139',
+'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159',
+'121,125,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146',
+'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125',
+'155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152',
+'156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,155,,,,',
+',,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160',
+'122,126,131,134,138,141,145,148,151,154,159,121,125,155,,,,,,,143,147',
+'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126',
+'131,134,138,141,145,148,151,154,159,121,125' ]
+ racc_action_table = arr = Array.new(9160, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
@@ -349,344 +355,351 @@ clist = [
end
clist = [
-'107,165,107,152,152,152,152,152,152,152,152,152,152,65,65,65,110,152',
-'73,176,152,152,65,98,65,199,152,176,198,152,152,152,107,107,197,206',
-'206,107,152,194,152,107,152,152,65,152,74,152,152,206,165,107,275,152',
-'152,152,152,107,107,107,107,107,107,107,107,107,107,107,107,107,107',
-'107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107',
-'107,107,107,65,152,152,293,73,195,152,276,152,156,152,107,156,156,156',
-'156,156,156,156,156,156,156,96,288,102,261,156,234,188,156,156,288,195',
-'234,234,156,188,113,156,156,156,156,172,172,306,306,156,156,203,156',
-'293,156,156,185,156,66,156,156,55,55,59,59,156,156,156,156,156,156,102',
-'102,102,188,156,211,102,173,195,195,195,289,177,113,113,4,117,117,4',
-'4,4,4,4,4,4,4,4,4,257,185,185,185,4,156,156,4,4,88,156,177,156,4,156',
-'171,4,4,4,4,187,64,188,188,4,4,62,4,187,4,4,99,4,255,4,4,284,284,257',
-'99,4,4,4,4,4,4,257,82,254,257,4,24,268,82,82,177,177,177,45,24,268,6',
-'167,187,6,6,6,6,6,6,6,6,6,6,99,116,99,305,6,4,4,6,6,92,4,40,4,6,4,32',
-'6,6,6,6,24,268,24,90,6,6,121,6,1,6,6,237,6,122,6,6,,237,237,,6,6,6,6',
-'6,6,218,101,101,101,6,101,218,218,218,218,218,218,218,210,210,9,109',
-'109,9,9,9,9,9,9,9,9,9,9,84,84,84,,9,6,6,9,9,84,6,84,6,9,6,170,9,9,9',
-'9,,170,170,,9,9,,9,,9,9,76,9,,9,9,,76,76,,9,9,9,9,9,9,213,256,256,,9',
-',213,213,213,213,213,213,213,,,11,,,11,11,11,11,11,11,11,11,11,11,83',
-'83,83,,11,9,9,11,11,83,9,83,9,11,9,231,11,11,11,11,,231,231,,11,11,',
-'11,,11,11,169,11,,11,11,,169,169,,11,11,11,11,11,11,209,,,,11,,209,209',
-'209,209,209,209,209,,,12,,,12,12,12,12,12,12,12,12,12,12,246,246,246',
-',12,11,11,12,12,246,11,246,11,12,11,108,12,12,12,12,,108,108,,12,12',
-',12,,12,12,,12,,12,12,,22,22,22,12,12,12,12,12,12,22,,22,241,12,247',
-'247,247,,241,241,241,241,241,247,15,247,,15,15,15,15,15,15,15,15,15',
-'15,,,,,15,12,12,15,15,,12,,12,15,12,81,15,15,15,15,,81,81,,15,15,,15',
-',15,15,78,15,,15,15,,78,78,,15,15,15,15,15,15,245,,,,15,,245,245,245',
-'245,245,,,,,18,,,18,18,18,18,18,18,18,18,18,18,,,,,18,15,15,18,18,,15',
-',15,18,15,,18,18,18,18,,,,,18,18,,18,,18,18,,18,,18,18,,,,,18,18,18',
-'18,18,18,,,,,18,,,,,,,,,,,153,,,153,153,153,153,153,153,153,153,153',
-'153,,,,,153,18,18,153,153,,18,,18,153,18,,153,153,153,153,,,,,153,153',
-',153,,153,153,,153,,153,153,,,,,153,153,153,153,153,153,,,,,153,,,,',
-',,,,,,20,,,20,20,20,20,20,20,20,20,20,20,,,,,20,153,153,20,20,,153,',
-'153,20,153,,20,20,20,20,,,,,20,20,,20,,20,20,,20,,20,20,,,,,20,20,20',
-'20,20,20,,,,,20,,,,,,,,,,,151,,,151,151,151,151,151,151,151,151,151',
-'151,,,,,151,20,20,151,151,,20,,20,151,20,,151,151,151,151,,,,,151,151',
-',151,,151,151,,151,,151,151,,,,,151,151,151,151,151,151,,,,,151,,,,',
-',,,,,,150,,,150,150,150,150,150,150,150,150,150,150,,,,,150,151,151',
-'150,150,,151,,151,150,151,,150,150,150,150,,,,,150,150,,150,,150,150',
-',150,,150,150,,,,,150,150,150,150,150,150,,,,,150,,,,,,,,,,,149,,,149',
-'149,149,149,149,149,149,149,149,149,,,,,149,150,150,149,149,,150,,150',
-'149,150,,149,149,149,149,,,,,149,149,,149,,149,149,,149,,149,149,,,',
-',149,149,149,149,149,149,,,,,149,,,,,,,,,,,29,,,29,29,29,29,29,29,29',
-'29,29,29,,,,,29,149,149,29,29,,149,,149,29,149,,29,29,29,29,,,,,29,29',
-',29,,29,29,,29,,29,29,29,,,,29,29,29,29,29,29,,,,,29,,,,,,,,,,,30,,',
-'30,30,30,30,30,30,30,30,30,30,,,,,30,29,29,30,30,,29,,29,30,29,,30,30',
-'30,30,,,,,30,30,,30,,30,30,,30,,30,30,,,,,30,30,30,30,30,30,,,,,30,',
-',,,,,,,,,148,,,148,148,148,148,148,148,148,148,148,148,,,,,148,30,30',
-'148,148,,30,,30,148,30,,148,148,148,148,,,,,148,148,,148,,148,148,,148',
-',148,148,,,,,148,148,148,148,148,148,,,,,148,,,,,,,,,,,34,,,34,34,34',
-'34,34,34,34,34,34,34,,,,,34,148,148,34,34,,148,,148,34,148,,34,34,34',
-'34,,,,,34,34,,34,,34,34,,34,,34,34,,,,,34,34,34,34,34,34,,,,,34,,,,',
-',,,,,,35,,,35,35,35,35,35,35,35,35,35,35,,,,,35,34,34,35,35,,34,,34',
-'35,34,,35,35,35,35,,,,,35,35,,35,,35,35,,35,,35,35,,,,,35,35,35,35,35',
-'35,,,,,35,,,,,,,,,,,307,,,307,307,307,307,307,307,307,307,307,307,,',
-',,307,35,35,307,307,,35,,35,307,35,,307,307,307,307,,,,,307,307,,307',
-',307,307,,307,,307,307,,,,,307,307,307,307,307,307,,,,,307,,,,,,,,,',
-',147,,,147,147,147,147,147,147,147,147,147,147,,,,,147,307,307,147,147',
-',307,,307,147,307,,147,147,147,147,,,,,147,147,,147,,147,147,,147,,147',
-'147,,,,,147,147,147,147,147,147,,,,,147,,,,,,,,,,,49,,,49,49,49,49,49',
-'49,49,49,49,49,,,,,49,147,147,49,49,,147,,147,49,147,,49,49,49,49,,',
-',,49,49,,49,,49,49,,49,,49,49,,,,,49,49,49,49,49,49,,,,,49,,,,,,,,,',
-',146,,,146,146,146,146,146,146,146,146,146,146,,,,,146,49,49,146,146',
-',49,,49,146,49,,146,146,146,146,,,,,146,146,,146,,146,146,,146,,146',
-'146,,,,,146,146,146,146,146,146,,,,,146,,,,,,,,,,,56,,,56,56,56,56,56',
-'56,56,56,56,56,,,,,56,146,146,56,56,,146,,146,56,146,,56,56,56,56,,',
-',,56,56,,56,,56,56,,56,,56,56,,56,,,56,56,56,56,56,56,,,,,56,,,,,,,',
-',,,145,,,145,145,145,145,145,145,145,145,145,145,,,,,145,56,56,145,145',
-',56,,56,145,56,,145,145,145,145,,,,,145,145,,145,,145,145,,145,,145',
-'145,,,,,145,145,145,145,145,145,,,,,145,,,,,,,,,,,144,,,144,144,144',
-'144,144,144,144,144,144,144,,,,,144,145,145,144,144,,145,,145,144,145',
-',144,144,144,144,,,,,144,144,,144,,144,144,,144,,144,144,,,,,144,144',
-'144,144,144,144,,,,,144,,,,,,,,,,,143,,,143,143,143,143,143,143,143',
-'143,143,143,,,,,143,144,144,143,143,,144,,144,143,144,,143,143,143,143',
-',,,,143,143,,143,,143,143,,143,,143,143,,,,,143,143,143,143,143,143',
-',,,,143,,,,,,,,,,,294,,,294,294,294,294,294,294,294,294,294,294,,,,',
-'294,143,143,294,294,,143,,143,294,143,,294,294,294,294,,,,,294,294,',
-'294,,294,294,,294,,294,294,,,,,294,294,294,294,294,294,,,,,294,,,,,',
-',,,,,142,,,142,142,142,142,142,142,142,142,142,142,294,,,,142,294,294',
-'142,142,,294,,294,142,294,,142,142,142,142,,,,,142,142,,142,,142,142',
-',142,,142,142,,,,,142,142,142,142,142,142,,,,,142,,,,,,,,,,,282,,,282',
-'282,282,282,282,282,282,282,282,282,,,,,282,142,142,282,282,,142,,142',
-'282,142,,282,282,282,282,,,,,282,282,,282,,282,282,,282,,282,282,,,',
-',282,282,282,282,282,282,,,,,282,,,,,,,,,,,68,,,68,68,68,68,68,68,68',
-'68,68,68,,,,,68,282,282,68,68,,282,,282,68,282,,68,68,68,68,,,,,68,68',
-',68,,68,68,,68,,68,68,,,,,68,68,68,68,68,68,,,,,68,,,,,,,,,,,71,,,71',
-'71,71,71,71,71,71,71,71,71,,,,,71,68,68,71,71,,68,,68,71,68,,71,71,71',
-'71,,,,,71,71,,71,,71,71,,71,,71,71,,,,,71,71,71,71,71,71,,,,,71,,,,',
-',,,,,,281,,,281,281,281,281,281,281,281,281,281,281,,,,,281,71,71,281',
-'281,,71,,71,281,71,,281,281,281,281,,,,,281,281,,281,,281,281,,281,',
-'281,281,,,,,281,281,281,281,281,281,,,,,281,,,,,,,,,,,273,,,273,273',
-'273,273,273,273,273,273,273,273,,,,,273,281,281,273,273,,281,,281,273',
-'281,,273,273,273,273,,,,,273,273,,273,,273,273,,273,,273,273,,,,,273',
-'273,273,273,273,273,,,,,273,,,,,,,,,,,141,,,141,141,141,141,141,141',
-'141,141,141,141,273,,,,141,273,273,141,141,,273,,273,141,273,,141,141',
-'141,141,,,,,141,141,,141,,141,141,,141,,141,141,,,,,141,141,141,141',
-'141,141,,,,,141,,,,,,,,,,,139,,,139,139,139,139,139,139,139,139,139',
-'139,,,,,139,141,141,139,139,,141,,141,139,141,,139,139,139,139,,,,,139',
-'139,,139,,139,139,,139,,139,139,,,,,139,139,139,139,139,139,,,,,139',
-',,,,,,,,,,271,,,271,271,271,271,271,271,271,271,271,271,,,,,271,139',
-'139,271,271,,139,,139,271,139,,271,271,271,271,,,,,271,271,,271,,271',
-'271,,271,,271,271,,,,,271,271,271,271,271,271,,,,,271,,,,,,,,,,,138',
-',,138,138,138,138,138,138,138,138,138,138,,,,,138,271,271,138,138,,271',
-',271,138,271,,138,138,138,138,,,,,138,138,,138,,138,138,,138,,138,138',
-',,,,138,138,138,138,138,138,,,,,138,,,,,,,,,,,136,,,136,136,136,136',
-'136,136,136,136,136,136,,,,,136,138,138,136,136,,138,,138,136,138,,136',
-'136,136,136,,,,,136,136,,136,,136,136,,136,,136,136,,,,,136,136,136',
-'136,136,136,,,,,136,,,,,,,,,,,270,,,270,270,270,270,270,270,270,270',
-'270,270,,,,,270,136,136,270,270,,136,,136,270,136,,270,270,270,270,',
-',,,270,270,,270,,270,270,,270,,270,270,,,,,270,270,270,270,270,270,',
-',,,270,,,,,,,,,,,135,,,135,135,135,135,135,135,135,135,135,135,,,,,135',
-'270,270,135,135,,270,,270,135,270,,135,135,135,135,,,,,135,135,,135',
-',135,135,,135,,135,135,,,,,135,135,135,135,135,135,,,,,135,,,,,,,,,',
-',134,,,134,134,134,134,134,134,134,134,134,134,,,,,134,135,135,134,134',
-',135,,135,134,135,,134,134,134,134,,,,,134,134,,134,,134,134,,134,,134',
-'134,,,,,134,134,134,134,134,134,,,,,134,,,,,,,,,,,133,,,133,133,133',
-'133,133,133,133,133,133,133,,,,,133,134,134,133,133,,134,,134,133,134',
-',133,133,133,133,,,,,133,133,,133,,133,133,,133,,133,133,,,,,133,133',
-'133,133,133,133,,,,,133,,,,,,,,,,,259,,,259,259,259,259,259,259,259',
-'259,259,259,,,,,259,133,133,259,259,,133,,133,259,133,,259,259,259,259',
-',,,,259,259,,259,,259,259,,259,,259,259,,,,,259,259,259,259,259,259',
-',,,,259,,,,,,,,,,,86,,,86,86,86,86,86,86,86,86,86,86,,,,,86,259,259',
-'86,86,,259,,259,86,259,,86,86,86,86,,,,,86,86,,86,,86,86,,86,,86,86',
-'86,,,,86,86,86,86,86,86,,,,,86,,,,,,,,,,,87,,,87,87,87,87,87,87,87,87',
-'87,87,,,,,87,86,86,87,87,,86,,86,87,86,,87,87,87,87,,,,,87,87,,87,,87',
-'87,,87,,87,87,,,,,87,87,87,87,87,87,,,,,87,,,,,,,,,,,132,,,132,132,132',
-'132,132,132,132,132,132,132,,,,,132,87,87,132,132,,87,,87,132,87,,132',
-'132,132,132,,,,,132,132,,132,,132,132,,132,,132,132,,,,,132,132,132',
-'132,132,132,,,,,132,,,,,,,,,,,131,,,131,131,131,131,131,131,131,131',
-'131,131,,,,,131,132,132,131,131,,132,,132,131,132,,131,131,131,131,',
-',,,131,131,,131,,131,131,,131,,131,131,,,,,131,131,131,131,131,131,',
-',,,131,,,,,,,,,,,130,,,130,130,130,130,130,130,130,130,130,130,,,,,130',
-'131,131,130,130,,131,,131,130,131,,130,130,130,130,,,,,130,130,,130',
-',130,130,,130,,130,130,,,,,130,130,130,130,130,130,,,,,130,,,,,,,,,',
-',205,,,205,205,205,205,205,205,205,205,205,205,,,,,205,130,130,205,205',
-',130,,130,205,130,,205,205,205,205,,,,,205,205,,205,,205,205,,205,,205',
-'205,,,,,205,205,205,205,205,205,,,,,205,,,,,,,,,,,204,,,204,204,204',
-'204,204,204,204,204,204,204,,,,,204,205,205,204,204,,205,,205,204,205',
-',204,204,204,204,,,,,204,204,,204,,204,204,,204,,204,204,,,,,204,204',
-'204,204,204,204,,,,,204,,,,,,,,,,,129,,,129,129,129,129,129,129,129',
-'129,129,129,,,,,129,204,204,129,129,,204,,204,129,204,,129,129,129,129',
-',,,,129,129,,129,,129,129,,129,,129,129,,,,,129,129,129,129,129,129',
-',,,,129,,,,,,,,,,,123,,,123,123,123,123,123,123,123,123,123,123,,,,',
-'123,129,129,123,123,,129,,129,123,129,,123,123,123,123,,,,,123,123,',
-'123,,123,123,,123,,123,123,,,,,123,123,123,123,123,123,,,,,123,,,,,',
-',,,,,192,,,192,192,192,192,192,192,192,192,192,192,,,,,192,123,123,192',
-'192,,123,,123,192,123,,192,192,192,192,,,,,192,192,,192,,192,192,,192',
-',192,192,192,,,,192,192,192,192,192,192,226,,,,192,,226,226,226,226',
-'226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226',
-',,,,,,192,192,192,192,,192,,192,154,192,,154,154,154,154,154,154,154',
-'154,154,154,,,,,154,,,154,154,,,,,154,,,154,154,154,154,,,,,154,154',
-',154,,154,154,,154,,154,154,,,,,154,154,154,154,154,154,,,,,154,,,,',
-',,,,,,103,,,103,103,103,103,103,103,103,103,103,103,,,,,103,154,154',
-'103,103,,154,,154,103,154,,103,103,103,103,,,,,103,103,,103,,103,103',
-',103,,103,103,,,,,103,103,103,103,103,103,,,,,103,,,,,,,,,,,128,,,128',
-'128,128,128,128,128,128,128,128,128,,,,,128,103,103,128,128,,103,,103',
-'128,103,,128,128,128,128,,,,,128,128,,128,,128,128,,128,,128,128,,,',
-',128,128,128,128,128,128,,,,,128,,,,,,,,,,,191,,,191,191,191,191,191',
-'191,191,191,191,191,,,,,191,128,128,191,191,,128,,128,191,128,,191,191',
-'191,191,,,,,191,191,,191,,191,191,,191,,191,191,,,,,191,191,191,191',
-'191,191,,,,,191,,,,,,,,,,,106,,,106,106,106,106,106,106,106,106,106',
-'106,,,,,106,191,191,106,106,,191,,191,106,191,,106,106,106,106,,,,,106',
-'106,,106,,106,106,,106,,106,106,106,,,,106,106,106,106,106,106,,,,,106',
-',,,,,,,,,,0,,,0,0,0,0,0,0,0,0,0,0,,,,,0,106,106,0,0,,106,,106,0,106',
-',0,0,0,0,,,,,0,0,,0,,0,0,,0,,0,0,0,,,,0,0,0,0,0,0,208,,,,0,,208,208',
-'208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208',
-'208,208,,,,,,,0,0,0,0,,0,,0,127,0,,127,127,127,127,127,127,127,127,127',
-'127,,,,,127,,,127,127,,,,,127,,,127,127,127,127,,,,,127,127,,127,,127',
-'127,,127,,127,127,,,,,127,127,127,127,127,127,,,,,127,,,,,,,,,,,184',
-',,184,184,184,184,184,184,184,184,184,184,,,,,184,127,127,184,184,,127',
-',127,184,127,,184,184,184,184,,,,,184,184,,184,,184,184,,184,,184,184',
-',,,,184,184,184,184,184,184,,,,,184,,,,,,,,,,,183,,,183,183,183,183',
-'183,183,183,183,183,183,,,,,183,184,184,183,183,,184,,184,183,184,,183',
-'183,183,183,,,,,183,183,,183,,183,183,,183,,183,183,,,,,183,183,183',
-'183,183,183,,,,,183,,,,,,,,,,,126,,,126,126,126,126,126,126,126,126',
-'126,126,,,,,126,183,183,126,126,,183,,183,126,183,,126,126,126,126,',
-',,,126,126,,126,,126,126,,126,,126,126,,,,,126,126,126,126,126,126,',
-',,,126,,,,,,,,,,,112,,,112,112,112,112,112,112,112,112,112,112,,,,,112',
-'126,126,112,112,,126,,126,112,126,,112,112,112,112,,,,,112,112,,112',
-',112,112,,112,,112,112,,,,,112,112,112,112,112,112,,,,,112,,,,,,,,,',
-',125,,,125,125,125,125,125,125,125,125,125,125,,,,,125,112,112,125,125',
-',112,,112,125,112,,125,125,125,125,,,,,125,125,,125,,125,125,,125,,125',
-'125,,,,,125,125,125,125,125,125,,,,,125,,,,,,,,,,,162,,,162,162,162',
-'162,162,162,162,162,162,162,,,,,162,125,125,162,162,,125,,125,162,125',
-',162,162,162,162,,,,,162,162,,162,,162,162,,162,,162,162,,,,,162,162',
-'162,162,162,162,,,,,162,,,,,,,,,,,124,,,124,124,124,124,124,124,124',
-'124,124,124,,,,,124,162,162,124,124,,162,,162,124,162,,124,124,124,124',
-',,,,124,124,,124,,124,124,,124,,124,124,,,,,124,124,124,124,124,124',
-',,,,124,,,,,,,,,,,118,,,118,118,118,118,118,118,118,118,118,118,,,,',
-'118,124,124,118,118,,124,,124,118,124,,118,118,118,118,,,,,118,118,',
-'118,,118,118,,118,,118,118,,,,,118,118,118,118,118,118,,,,,118,,,,,',
-',,,,,119,,,119,119,119,119,119,119,119,119,119,119,,,,,119,118,118,119',
-'119,,118,,118,119,118,,119,119,119,119,,,,,119,119,,119,,119,119,,119',
-',119,119,,,,,119,119,119,119,119,119,,,,,119,,,,,,,,,,,120,,,120,120',
-'120,120,120,120,120,120,120,120,,,,,120,119,119,120,120,,119,,119,120',
-'119,,120,120,120,120,,,,,120,120,,120,,120,120,,120,,120,120,,,,,120',
-'120,120,120,120,120,,,,,120,,,,,,,,,,,158,,,158,158,158,158,158,158',
-'158,158,158,158,,,,,158,120,120,158,158,,120,,120,158,120,,158,158,158',
-'158,,,,,158,158,,158,,158,158,,158,,158,158,,,,,158,158,158,158,158',
-'158,,,,,158,,,,,,,,,,,157,,,157,157,157,157,157,157,157,157,157,157',
-',,,,157,158,158,157,157,,158,,158,157,158,,157,157,157,157,,,,,157,157',
-',157,,157,157,,157,,157,157,,,,,157,157,157,157,157,157,,,,,157,,,,',
-',,,,,,155,,,155,155,155,155,155,155,155,155,155,155,,,,,155,157,157',
-'155,155,,157,,157,155,157,,155,155,155,155,,,,,155,155,,155,,155,155',
-',155,,155,155,298,,298,,155,155,155,155,155,155,240,,,,155,,240,240',
-'240,240,240,240,240,240,240,240,240,240,240,,,,298,298,,,,298,,,,298',
-',155,155,,,,155,,155,298,155,,,,,298,298,298,298,298,298,298,298,298',
-'298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298',
-'298,298,298,298,298,298,298,298,311,,311,,,,,,,298,,160,160,160,160',
-'160,160,160,160,160,160,,,,,,,,,,,,311,311,,,,311,160,160,,311,,,,,',
-',,,,311,,160,,,160,311,311,311,311,311,311,311,311,311,311,311,311,311',
+'110,294,110,21,21,21,21,21,21,21,21,21,21,70,70,70,76,248,248,248,208',
+'208,70,197,70,263,248,257,248,69,21,21,110,110,208,239,255,110,217,290',
+'71,110,239,239,70,21,211,290,21,294,197,110,75,211,211,211,211,211,110',
+'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110',
+'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,70,169',
+'76,197,197,197,21,179,21,148,21,110,148,148,148,148,148,148,148,148',
+'148,148,212,212,115,112,148,277,188,148,148,105,112,112,179,148,188',
+'259,148,148,148,148,308,308,119,119,148,148,278,148,169,148,148,187',
+'148,205,148,148,103,103,103,201,103,148,148,148,148,148,148,115,115',
+'188,148,148,66,259,105,105,105,179,179,179,105,259,4,200,259,4,4,4,4',
+'4,4,4,4,4,4,199,187,187,187,4,148,148,4,4,196,148,291,148,4,148,174',
+'4,4,4,4,269,173,188,188,4,4,53,4,269,4,4,236,4,171,4,4,111,111,236,236',
+'178,4,4,4,4,4,4,190,178,77,4,4,29,101,92,190,77,77,258,258,29,101,6',
+'269,43,6,6,6,6,6,6,6,6,6,6,249,249,249,35,6,4,4,6,6,249,4,249,4,6,4',
+'190,6,6,6,6,29,101,29,101,6,6,93,6,95,6,6,83,6,307,6,6,67,67,83,83,98',
+'6,6,6,6,6,6,223,286,286,6,6,62,62,223,223,223,223,223,223,223,100,9',
+'175,175,9,9,9,9,9,9,9,9,9,9,27,27,27,114,9,6,6,9,9,27,6,27,6,9,6,82',
+'9,9,9,9,118,1,82,82,9,9,124,9,129,9,9,79,9,,9,9,,,79,79,,9,9,9,9,9,9',
+'220,,,9,9,,,220,220,220,220,220,220,220,,11,,,11,11,11,11,11,11,11,11',
+'11,11,84,84,84,,11,9,9,11,11,84,9,84,9,11,9,243,11,11,11,11,,,243,243',
+'11,11,,11,,11,11,87,11,,11,11,,,87,87,,11,11,11,11,11,11,215,,,11,11',
+',,215,215,215,215,215,215,215,,12,,,12,12,12,12,12,12,12,12,12,12,85',
+'85,85,,12,11,11,12,12,85,11,85,11,12,11,109,12,12,12,12,,,109,109,12',
+'12,,12,,12,12,172,12,,12,12,,,172,172,,12,12,12,12,12,12,247,,,12,12',
+',,247,247,247,247,247,,,,15,,,15,15,15,15,15,15,15,15,15,15,,,,,15,12',
+'12,15,15,,12,,12,15,12,,15,15,15,15,,,,,15,15,,15,,15,15,,15,,15,15',
+',,,,,15,15,15,15,15,15,,,,15,15,,,,,,,,,,,19,,,19,19,19,19,19,19,19',
+'19,19,19,,,,,19,15,15,19,19,,15,,15,19,15,,19,19,19,19,,,,,19,19,,19',
+',19,19,,19,,19,19,,,,,,19,19,19,19,19,19,,,,19,19,,,,,,,,,,,130,,,130',
+'130,130,130,130,130,130,130,130,130,,,,,130,19,19,130,130,,19,,19,130',
+'19,,130,130,130,130,,,,,130,130,,130,,130,130,,130,,130,130,,,,,,130',
+'130,130,130,130,130,,,,130,130,,,,,,,,,,,22,,,22,22,22,22,22,22,22,22',
+'22,22,,,,,22,130,130,22,22,,130,,130,22,130,,22,22,22,22,,,,,22,22,',
+'22,,22,22,,22,,22,22,,,,,,22,22,22,22,22,22,,,,22,22,,,,,,,,,,,24,,',
+'24,24,24,24,24,24,24,24,24,24,,,,,24,22,22,24,24,,22,,22,24,22,,24,24',
+'24,24,,,,,24,24,,24,,24,24,,24,,24,24,,,,,,24,24,24,24,24,24,,,,24,24',
+',,,,,,,,,,133,,,133,133,133,133,133,133,133,133,133,133,,,,,133,24,24',
+'133,133,,24,,24,133,24,,133,133,133,133,,,,,133,133,,133,,133,133,,133',
+',133,133,,,,,,133,133,133,133,133,133,,,,133,133,,,,,,,,,,,128,,,128',
+'128,128,128,128,128,128,128,128,128,,,,,128,133,133,128,128,,133,,133',
+'128,133,,128,128,128,128,,,,,128,128,,128,,128,128,,128,,128,128,,,',
+',,128,128,128,128,128,128,,,,128,128,,,,,,,,,,,309,,,309,309,309,309',
+'309,309,309,309,309,309,,,,,309,128,128,309,309,,128,,128,309,128,,309',
+'309,309,309,,,,,309,309,,309,,309,309,,309,,309,309,,,,,,309,309,309',
+'309,309,309,,,,309,309,,,,,,,,,,,32,,,32,32,32,32,32,32,32,32,32,32',
+',,,,32,309,309,32,32,,309,,309,32,309,,32,32,32,32,,,,,32,32,,32,,32',
+'32,,32,,32,32,,,,,,32,32,32,32,32,32,,,,32,32,,,,,,,,,,,34,,,34,34,34',
+'34,34,34,34,34,34,34,,,,,34,32,32,34,34,,32,,32,34,32,,34,34,34,34,',
+',,,34,34,,34,,34,34,,34,,34,34,34,,,,,34,34,34,34,34,34,,,,34,34,,,',
+',,,,,,,127,,,127,127,127,127,127,127,127,127,127,127,,,,,127,34,34,127',
+'127,,34,,34,127,34,,127,127,127,127,,,,,127,127,,127,,127,127,,127,',
+'127,127,,,,,,127,127,127,127,127,127,,,,127,127,,,,,,,,,,,37,,,37,37',
+'37,37,37,37,37,37,37,37,,,,,37,127,127,37,37,,127,,127,37,127,,37,37',
+'37,37,,,,,37,37,,37,,37,37,,37,,37,37,,,,,,37,37,37,37,37,37,,,,37,37',
+',,,,,,,,,,40,,,40,40,40,40,40,40,40,40,40,40,,,,,40,37,37,40,40,,37',
+',37,40,37,,40,40,40,40,,,,,40,40,,40,,40,40,,40,,40,40,,,,,,40,40,40',
+'40,40,40,,,,40,40,,,,,,,,,,,126,,,126,126,126,126,126,126,126,126,126',
+'126,,,,,126,40,40,126,126,,40,,40,126,40,,126,126,126,126,,,,,126,126',
+',126,,126,126,,126,,126,126,,,,,,126,126,126,126,126,126,,,,126,126',
+',,,,,,,,,,46,,,46,46,46,46,46,46,46,46,46,46,,,,,46,126,126,46,46,,126',
+',126,46,126,,46,46,46,46,,,,,46,46,,46,,46,46,,46,,46,46,,,,,,46,46',
+'46,46,46,46,,,,46,46,,,,,,,,,,,52,,,52,52,52,52,52,52,52,52,52,52,,',
+',,52,46,46,52,52,,46,,46,52,46,,52,52,52,52,,,,,52,52,,52,,52,52,,52',
+',52,52,,,,,,52,52,52,52,52,52,,,,52,52,,,,,,,,,,,296,,,296,296,296,296',
+'296,296,296,296,296,296,,,,,296,52,52,296,296,,52,,52,296,52,,296,296',
+'296,296,,,,,296,296,,296,,296,296,,296,,296,296,,,,,,296,296,296,296',
+'296,296,,,,296,296,,,,,,,,,,,59,,,59,59,59,59,59,59,59,59,59,59,296',
+',,,59,296,296,59,59,,296,,296,59,296,,59,59,59,59,,,,,59,59,,59,,59',
+'59,,59,,59,59,,59,,,,59,59,59,59,59,59,,,,59,59,,,,,,,,,,,285,,,285',
+'285,285,285,285,285,285,285,285,285,,,,,285,59,59,285,285,,59,,59,285',
+'59,,285,285,285,285,,,,,285,285,,285,,285,285,,285,,285,285,,,,,,285',
+'285,285,285,285,285,,,,285,285,,,,,,,,,,,284,,,284,284,284,284,284,284',
+'284,284,284,284,,,,,284,285,285,284,284,,285,,285,284,285,,284,284,284',
+'284,,,,,284,284,,284,,284,284,,284,,284,284,,,,,,284,284,284,284,284',
+'284,,,,284,284,,,,,,,,,,,275,,,275,275,275,275,275,275,275,275,275,275',
+',,,,275,284,284,275,275,,284,,284,275,284,,275,275,275,275,,,,,275,275',
+',275,,275,275,,275,,275,275,,,,,,275,275,275,275,275,275,,,,275,275',
+',,,,,,,,,,272,,,272,272,272,272,272,272,272,272,272,272,275,,,,272,275',
+'275,272,272,,275,,275,272,275,,272,272,272,272,,,,,272,272,,272,,272',
+'272,,272,,272,272,,,,,,272,272,272,272,272,272,,,,272,272,,,,,,,,,,',
+'271,,,271,271,271,271,271,271,271,271,271,271,,,,,271,272,272,271,271',
+',272,,272,271,272,,271,271,271,271,,,,,271,271,,271,,271,271,,271,,271',
+'271,,,,,,271,271,271,271,271,271,,,,271,271,,,,,,,,,,,261,,,261,261',
+'261,261,261,261,261,261,261,261,,,,,261,271,271,261,261,,271,,271,261',
+'271,,261,261,261,261,,,,,261,261,,261,,261,261,,261,,261,261,,,,,,261',
+'261,261,261,261,261,,,,261,261,,,,,,,,,,,207,,,207,207,207,207,207,207',
+'207,207,207,207,,,,,207,261,261,207,207,,261,,261,207,261,,207,207,207',
+'207,,,,,207,207,,207,,207,207,,207,,207,207,,,,,,207,207,207,207,207',
+'207,,,,207,207,,,,,,,,,,,73,,,73,73,73,73,73,73,73,73,73,73,,,,,73,207',
+'207,73,73,,207,,207,73,207,,73,73,73,73,,,,,73,73,,73,,73,73,,73,,73',
+'73,,,,,,73,73,73,73,73,73,,,,73,73,,,,,,,,,,,206,,,206,206,206,206,206',
+'206,206,206,206,206,,,,,206,73,73,206,206,,73,,73,206,73,,206,206,206',
+'206,,,,,206,206,,206,,206,206,,206,,206,206,,,,,,206,206,206,206,206',
+'206,,,,206,206,,,,,,,,,,,194,,,194,194,194,194,194,194,194,194,194,194',
+',,,,194,206,206,194,194,,206,,206,194,206,,194,194,194,194,,,,,194,194',
+',194,,194,194,,194,,194,194,,,,,,194,194,194,194,194,194,,,,194,194',
+',,,,,,,,,,191,,,191,191,191,191,191,191,191,191,191,191,,,,,191,194',
+'194,191,191,,194,,194,191,194,,191,191,191,191,,,,,191,191,,191,,191',
+'191,,191,,191,191,191,,,,,191,191,191,191,191,191,232,,,191,191,,,232',
+'232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232',
+'232,232,232,,,,,,191,191,191,191,,191,,191,186,191,,186,186,186,186',
+'186,186,186,186,186,186,,,,,186,,,186,186,,,,,186,,,186,186,186,186',
+',,,,186,186,,186,,186,186,,186,,186,186,,,,,,186,186,186,186,186,186',
+',,,186,186,,,,,,,,,,,185,,,185,185,185,185,185,185,185,185,185,185,',
+',,,185,186,186,185,185,,186,,186,185,186,,185,185,185,185,,,,,185,185',
+',185,,185,185,,185,,185,185,,,,,,185,185,185,185,185,185,,,,185,185',
+',,,,,,,,,,166,,,166,166,166,166,166,166,166,166,166,166,,,,,166,185',
+'185,166,166,,185,,185,166,185,,166,166,166,166,,,,,166,166,,166,,166',
+'166,,166,,166,166,,,,,,166,166,166,166,166,166,,,,166,166,,,,,,,,,,',
+'132,,,132,132,132,132,132,132,132,132,132,132,,,,,132,166,166,132,132',
+',166,,166,132,166,,132,132,132,132,,,,,132,132,,132,,132,132,,132,,132',
+'132,,,,,,132,132,132,132,132,132,,,,132,132,,,,,,,,,,,161,,,161,161',
+'161,161,161,161,161,161,161,161,,,,,161,132,132,161,161,,132,,132,161',
+'132,,161,161,161,161,,,,,161,161,,161,,161,161,,161,,161,161,,,,,,161',
+'161,161,161,161,161,,,,161,161,,,,,,,,,,,160,,,160,160,160,160,160,160',
+'160,160,160,160,,,,,160,161,161,160,160,,161,,161,160,161,,160,160,160',
+'160,,,,,160,160,,160,,160,160,,160,,160,160,,,,,,160,160,160,160,160',
+'160,,,,160,160,,,,,,,,,,,159,,,159,159,159,159,159,159,159,159,159,159',
+',,,,159,160,160,159,159,,160,,160,159,160,,159,159,159,159,,,,,159,159',
+',159,,159,159,,159,,159,159,,,,,,159,159,159,159,159,159,,,,159,159',
+',,,,,,,,,,158,,,158,158,158,158,158,158,158,158,158,158,,,,,158,159',
+'159,158,158,,159,,159,158,159,,158,158,158,158,,,,,158,158,,158,,158',
+'158,,158,,158,158,,,,,,158,158,158,158,158,158,,,,158,158,,,,,,,,,,',
+'157,,,157,157,157,157,157,157,157,157,157,157,,,,,157,158,158,157,157',
+',158,,158,157,158,,157,157,157,157,,,,,157,157,,157,,157,157,,157,,157',
+'157,,,,,,157,157,157,157,157,157,,,,157,157,,,,,,,,,,,156,,,156,156',
+'156,156,156,156,156,156,156,156,,,,,156,157,157,156,156,,157,,157,156',
+'157,,156,156,156,156,,,,,156,156,,156,,156,156,,156,,156,156,,,,,,156',
+'156,156,156,156,156,,,,156,156,,,,,,,,,,,125,,,125,125,125,125,125,125',
+'125,125,125,125,,,,,125,156,156,125,125,,156,,156,125,156,,125,125,125',
+'125,,,,,125,125,,125,,125,125,,125,,125,125,,,,,,125,125,125,125,125',
+'125,,,,125,125,,,,,,,,,,,90,,,90,90,90,90,90,90,90,90,90,90,,,,,90,125',
+'125,90,90,,125,,125,90,125,,90,90,90,90,,,,,90,90,,90,,90,90,,90,,90',
+'90,90,,,,,90,90,90,90,90,90,,,,90,90,,,,,,,,,,,91,,,91,91,91,91,91,91',
+'91,91,91,91,,,,,91,90,90,91,91,,90,,90,91,90,,91,91,91,91,,,,,91,91',
+',91,,91,91,,91,,91,91,,,,,,91,91,91,91,91,91,,,,91,91,,,,,,,,,,,154',
+',,154,154,154,154,154,154,154,154,154,154,,,,,154,91,91,154,154,,91',
+',91,154,91,,154,154,154,154,,,,,154,154,,154,,154,154,,154,,154,154',
+',,,,,154,154,154,154,154,154,,,,154,154,,,,,,,,,,,153,,,153,153,153',
+'153,153,153,153,153,153,153,,,,,153,154,154,153,153,,154,,154,153,154',
+',153,153,153,153,,,,,153,153,,153,,153,153,,153,,153,153,,,,,,153,153',
+'153,153,153,153,,,,153,153,,,,,,,,,,,152,,,152,152,152,152,152,152,152',
+'152,152,152,,,,,152,153,153,152,152,,153,,153,152,153,,152,152,152,152',
+',,,,152,152,,152,,152,152,,152,,152,152,,,,,,152,152,152,152,152,152',
+',,,152,152,,,,,,,,,,,151,,,151,151,151,151,151,151,151,151,151,151,',
+',,,151,152,152,151,151,,152,,152,151,152,,151,151,151,151,,,,,151,151',
+',151,,151,151,,151,,151,151,,,,,,151,151,151,151,151,151,,,,151,151',
+',,,,,,,,,,150,,,150,150,150,150,150,150,150,150,150,150,,,,,150,151',
+'151,150,150,,151,,151,150,151,,150,150,150,150,,,,,150,150,,150,,150',
+'150,,150,,150,150,,,,,,150,150,150,150,150,150,,,,150,150,,,,,,,,,,',
+'149,,,149,149,149,149,149,149,149,149,149,149,,,,,149,150,150,149,149',
+',150,,150,149,150,,149,149,149,149,,,,,149,149,,149,,149,149,,149,,149',
+'149,,,,,,149,149,149,149,149,149,,,,149,149,,,,,,,,,,,131,,,131,131',
+'131,131,131,131,131,131,131,131,,,,,131,149,149,131,131,,149,,149,131',
+'149,,131,131,131,131,,,,,131,131,,131,,131,131,,131,,131,131,,,,,,131',
+'131,131,131,131,131,,,,131,131,,,,,,,,,,,146,,,146,146,146,146,146,146',
+'146,146,146,146,,,,,146,131,131,146,146,,131,,131,146,131,,146,146,146',
+'146,,,,,146,146,,146,,146,146,,146,,146,146,,,,,,146,146,146,146,146',
+'146,,,,146,146,,,,,,,,,,,145,,,145,145,145,145,145,145,145,145,145,145',
+',,,,145,146,146,145,145,,146,,146,145,146,,145,145,145,145,,,,,145,145',
+',145,,145,145,,145,,145,145,,,,,,145,145,145,145,145,145,,,,145,145',
+',,,,,,,,,,106,,,106,106,106,106,106,106,106,106,106,106,,,,,106,145',
+'145,106,106,,145,,145,106,145,,106,106,106,106,,,,,106,106,,106,,106',
+'106,,106,,106,106,,,,,,106,106,106,106,106,106,,,,106,106,,,,,,,,,,',
+'144,,,144,144,144,144,144,144,144,144,144,144,,,,,144,106,106,144,144',
+',106,,106,144,106,,144,144,144,144,,,,,144,144,,144,,144,144,,144,,144',
+'144,,,,,,144,144,144,144,144,144,,,,144,144,,,,,,,,,,,108,,,108,108',
+'108,108,108,108,108,108,108,108,,,,,108,144,144,108,108,,144,,144,108',
+'144,,108,108,108,108,,,,,108,108,,108,,108,108,,108,,108,108,108,,,',
+',108,108,108,108,108,108,,,,108,108,,,,,,,,,,,134,,,134,134,134,134',
+'134,134,134,134,134,134,,,,,134,108,108,134,134,,108,,108,134,108,,134',
+'134,134,134,,,,,134,134,,134,,134,134,,134,,134,134,,,,,,134,134,134',
+'134,134,134,,,,134,134,,,,,,,,,,,0,,,0,0,0,0,0,0,0,0,0,0,,,,,0,134,134',
+'0,0,,134,,134,0,134,,0,0,0,0,,,,,0,0,,0,,0,0,,0,,0,0,0,,,,,0,0,0,0,0',
+'0,219,,,0,0,,,219,219,219,219,219,219,219,219,219,219,219,219,219,219',
+'219,219,219,219,219,219,219,,,,,,0,0,0,0,,0,,0,141,0,,141,141,141,141',
+'141,141,141,141,141,141,,,,,141,,,141,141,,,,,141,,,141,141,141,141',
+',,,,141,141,,141,,141,141,,141,,141,141,,,,,,141,141,141,141,141,141',
+',,,141,141,,,,,,,,,,,140,,,140,140,140,140,140,140,140,140,140,140,',
+',,,140,141,141,140,140,,141,,141,140,141,,140,140,140,140,,,,,140,140',
+',140,,140,140,,140,,140,140,,,,,,140,140,140,140,140,140,,,,140,140',
+',,,,,,,,,,139,,,139,139,139,139,139,139,139,139,139,139,,,,,139,140',
+'140,139,139,,140,,140,139,140,,139,139,139,139,,,,,139,139,,139,,139',
+'139,,139,,139,139,,,,,,139,139,139,139,139,139,,,,139,139,,,,,,,,,,',
+'138,,,138,138,138,138,138,138,138,138,138,138,,,,,138,139,139,138,138',
+',139,,139,138,139,,138,138,138,138,,,,,138,138,,138,,138,138,,138,,138',
+'138,,,,,,138,138,138,138,138,138,,,,138,138,,,,,,,,,,,137,,,137,137',
+'137,137,137,137,137,137,137,137,,,,,137,138,138,137,137,,138,,138,137',
+'138,,137,137,137,137,,,,,137,137,,137,,137,137,,137,,137,137,,,,,,137',
+'137,137,137,137,137,,,,137,137,,,,,,,,,,,117,,,117,117,117,117,117,117',
+'117,117,117,117,,,,,117,137,137,117,117,,137,,137,117,137,,117,117,117',
+'117,,,,,117,117,,117,,117,117,,117,,117,117,,,,,,117,117,117,117,117',
+'117,,,,117,117,,,,,,,,,,,136,,,136,136,136,136,136,136,136,136,136,136',
+',,,,136,117,117,136,136,,117,,117,136,117,,136,136,136,136,,,,,136,136',
+',136,,136,136,,136,,136,136,,,,,,136,136,136,136,136,136,,,,136,136',
+',,,,,,,,,,135,,,135,135,135,135,135,135,135,135,135,135,,,,,135,136',
+'136,135,135,,136,,136,135,136,,135,135,135,135,,,,,135,135,,135,,135',
+'135,,135,,135,135,,,,,,135,135,135,135,135,135,,,,135,135,,,,,,,,,,',
+'121,,,121,121,121,121,121,121,121,121,121,121,,,,,121,135,135,121,121',
+',135,,135,121,135,,121,121,121,121,,,,,121,121,,121,,121,121,,121,,121',
+'121,,,,,,121,121,121,121,121,121,,,,121,121,,,,,,,,,,,122,,,122,122',
+'122,122,122,122,122,122,122,122,,,,,122,121,121,122,122,,121,,121,122',
+'121,,122,122,122,122,,,,,122,122,,122,,122,122,,122,,122,122,,,,,,122',
+'122,122,122,122,122,,,,122,122,,,,,,,,,,,123,,,123,123,123,123,123,123',
+'123,123,123,123,,,,,123,122,122,123,123,,122,,122,123,122,,123,123,123',
+'123,,,,,123,123,,123,,123,123,,123,,123,123,,,,,,123,123,123,123,123',
+'123,,,,123,123,,,,,,,,,,,142,,,142,142,142,142,142,142,142,142,142,142',
+',,,,142,123,123,142,142,,123,,123,142,123,,142,142,142,142,,,,,142,142',
+',142,,142,142,,142,,142,142,,312,,312,,142,142,142,142,142,142,235,',
+',142,142,,,235,235,235,235,235,235,235,235,235,235,235,235,235,,,312',
+'312,,,,312,,,,312,,142,142,,,,142,,142,312,142,,,,,,312,312,312,312',
+'312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312',
+'312,312,312,312,312,312,312,312,312,312,312,312,312,301,,301,226,,,',
+',,312,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226',
+'226,226,226,226,226,,301,301,,,,301,,,,301,,,,,,,,,,301,,,,,,,301,301',
+'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301',
+'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,,,,,,,,',
+',301,310,310,310,310,310,310,310,310,310,310,,,,,310,,,310,310,,,,,310',
+',,310,310,310,,,,,,,310,,310,,310,310,,310,,310,310,,,,,,310,310,310',
+'310,310,310,,,,310,310,,,,,300,300,300,300,300,300,300,300,300,300,',
+',,,300,,,300,300,,,,,300,310,310,300,300,300,310,,310,,310,,300,,300',
+',300,300,,300,,300,300,,,,,,300,300,300,300,300,300,233,,,300,300,,',
+'233,233,233,233,233,233,233,233,233,233,,25,25,25,25,25,25,25,25,25',
+'25,,,,,25,300,300,25,25,,300,,300,25,300,,25,25,25,25,,,,,,25,,25,,25',
+'25,,25,,25,25,,,,,,25,25,25,25,25,25,,,,25,25,,,,,155,155,155,155,155',
+'155,155,155,155,155,,,,,155,,,155,155,,,,,155,25,25,155,155,155,25,',
+'25,,25,,155,,155,,155,155,,155,,155,155,,,,,,155,155,155,155,,164,164',
+'164,164,164,164,164,164,164,164,227,,,,,,,227,227,227,227,227,227,227',
+'227,227,227,164,164,,,,,,155,155,,,,155,,155,164,155,229,164,,204,,204',
+',229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229',
+'229,229,229,229,,,,,,,,204,204,,,,204,,,,204,,,,,,,164,,164,204,164',
+',,,,,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204',
+'204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204',
+'204,68,234,68,,,,,,234,234,234,234,234,234,234,234,234,234,234,234,234',
+'234,234,234,234,234,234,234,234,,,,68,68,,,,68,,,,68,,,,,,,,,,68,,,',
+',,,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68',
+'68,68,68,68,68,68,68,68,68,68,68,68,311,242,311,,,,,,242,242,242,242',
+'242,242,242,242,242,242,242,242,242,,,,,311,,,,,,,311,311,,,,311,,,',
+'311,,,,,,,,,,311,,,,,,,311,311,311,311,311,311,311,311,311,311,311,311',
'311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311',
-'311,311,311,311,,,,,,,,,,311,,,,,160,,160,,160,19,19,19,19,19,19,19',
-'19,19,19,,,299,299,299,299,299,299,299,299,299,299,,,,,299,19,19,299',
-'299,,,,,299,,,299,299,299,,19,,,19,,299,,299,,299,299,,299,,299,299',
-',,,,299,299,299,299,299,299,230,,,,299,,230,230,230,230,230,230,230',
-'230,230,230,230,230,230,,,,,,,,19,,19,,19,,,299,299,,,,299,,299,,299',
-'309,309,309,309,309,309,309,309,309,309,,,,,309,,,309,309,,,,,309,,',
-'309,309,309,,,,,,,309,,309,,309,309,,309,,309,309,,,,,309,309,309,309',
-'309,309,225,,,,309,,225,225,225,225,225,225,225,225,225,225,,,23,23',
-'23,23,23,23,23,23,23,23,,,,,23,309,309,23,23,,309,,309,23,309,,23,23',
-'23,23,,,,,,23,,23,,23,23,,23,,23,23,272,,272,,23,23,23,23,23,23,236',
-',,,23,,236,236,236,236,236,236,236,236,236,236,236,236,236,,,,272,272',
-',,,272,,,,272,,23,23,,,,23,,23,272,23,,,,,272,272,272,272,272,272,272',
-'272,272,272,272,272,272,272,272,272,272,272,272,272,272,272,272,272',
-'272,272,272,272,272,272,272,272,272,272,264,229,264,,,,,229,229,229',
-'229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229',
-'229,,,,,264,264,,,,264,,,,264,,,,,,,,,,264,,,,,,264,264,264,264,264',
-'264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264',
-'264,264,264,264,264,264,264,264,264,264,264,264,269,217,269,,,,,217',
-'217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217',
-'217,217,217,,,,,269,269,,,,269,,,,269,,,,,,,,,,269,,,,,,269,269,269',
-'269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269',
-'269,269,269,269,269,269,269,269,269,269,269,269,269,269,80,224,80,,',
-',,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224',
-'224,224,224,224,,,,,80,80,,,,80,,,,80,,,,,,,,80,,80,,,,,,80,80,80,80',
-'80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80',
-'80,80,80,80,80,80,80,79,212,79,,,,,212,212,212,212,212,212,212,212,212',
-'212,212,212,212,212,212,212,212,212,212,212,212,,,,,79,79,,,,79,,,,79',
-',,,,,,,79,,79,,,,,,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79',
-'79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,77,220,77,,,,,220',
-'220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220',
-'220,220,220,,,,,77,77,,,,77,,,,77,,,,,,,,77,,77,,,,,,77,77,77,77,77',
-'77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77',
-'77,77,77,77,77,77,263,244,263,,,,,244,244,244,244,244,244,244,244,244',
-'244,244,244,244,244,244,244,244,244,244,244,244,,,,,263,263,,,,263,',
-',,263,,,,,,,,,,263,,,,,,263,263,263,263,263,263,263,263,263,263,263',
-'263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263',
-'263,263,263,263,263,263,292,233,292,,,,,233,233,233,233,233,233,233',
-'233,233,233,233,233,233,,,,,,,,,,,,,292,292,,,,292,,,,292,,,,,,,,,,292',
-',,,,,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292',
-'292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292',
-'292,63,227,63,,,,,227,227,227,227,227,227,227,227,227,227,,,,,,,,,,',
-',,,,,63,63,,,,63,,,,63,,,,,,,,,,63,,,,,,63,63,63,63,63,63,63,63,63,63',
-'63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63',
-'63,296,221,296,,,,,221,221,221,221,221,221,221,221,221,221,,,,,,,,,',
-',,,,,,296,296,,,,296,,,,296,,,,,,,,,,296,,,,,,296,296,296,296,296,296',
-'296,296,296,296,296,296,296,296,296,296,296,296,296,296,296,296,296',
-'296,296,296,296,296,296,296,296,296,296,296,297,,297,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,297,297,,,,297,,,,297,,,,,,,,,,297,,,,,,297,297,297,297',
-'297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297',
-'297,297,297,297,297,297,297,297,297,297,297,297,297,228,,228,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,228,228,,,,228,,,,228,,,,,,,,,,228,,,,,,228,228',
-'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228',
-'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,222,,222',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,222,222,,,,222,,,,222,,,,,,,,,,222,,,,',
-',222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222',
-'222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222',
-'308,,308,,,,,,,,,,,,,,,,,,,,,,,308,,,,,,,308,308,,,,308,,,,308,,,,,',
-',,,,308,,,,,,308,308,308,308,308,308,308,308,308,308,308,308,308,308',
-'308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308',
-'308,308,308,214,,214,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,214,214,,,,214,,,',
-'214,,,,,,,,,,214,,,,,,214,214,214,214,214,214,214,214,214,214,214,214',
-'214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214',
-'214,214,214,214,214,201,,201,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,201,201,,',
-',201,,,,201,,,,,,,,,,201,,,,,,201,201,201,201,201,201,201,201,201,201',
-'201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201',
-'201,201,201,201,201,201,201,104,,104,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,104',
-'104,,,,104,,,,104,,,,,,,,,,104,,,,,,104,104,104,104,104,104,104,104',
-'104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104',
-'104,104,104,104,104,104,104,104,104,179,,179,,,,,,,,,,,,,,,,,,,,,,,179',
-',,,,,,179,179,,,,179,,,,179,,,,,,,,,,179,,,,,,179,179,179,179,179,179',
-'179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179',
-'179,179,179,179,179,179,179,179,179,179,179,178,,178,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,,,178,178,,,,178,,,,178,,,,,,,,,,178,,,,,,178,178,178,178',
-'178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178',
-'178,178,178,178,178,178,178,178,178,178,178,178,178,314,,314,,,,,,,',
-',,,,,,,,,,,,,,,,,,,,,,314,314,,,,314,,,,314,,,,,,,,,,314,,,,,,314,314',
-'314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314',
-'314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,193,,193',
-',,,,,,,,,,,,,,,,,,,,,,,,,,,,,193,193,,,,193,,,,193,,,,,,,,,,193,,,,',
-',193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193',
-'193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193',
-'316,,316,,,,,,,,,,,,,,,,,,,,,,,316,,,,,,,316,316,,,,316,,,,316,,,,,',
-',,,,316,,,,,,316,316,316,316,316,316,316,316,316,316,316,316,316,316',
-'316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316',
-'316,316,316,248,248,,,,,,,,248,,,,,,,,,,248,,,,,,248,248,248,248,248',
-'248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248',
-'248,248,248,248,248,248,248,248,248,248,248,248,95,95,,,,,,,,95,,,,',
-',,,,,95,,,,,,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95',
-'95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,216,216,,,,,,,,216,,,,',
-',,,,,216,,,,,,216,216,216,216,216,216,216,216,216,216,216,216,216,216',
+'311,311,311,311,311,231,222,231,,,,,,222,222,222,222,222,222,222,222',
+'222,222,222,222,222,222,222,222,222,222,222,222,222,,,,231,231,,,,231',
+',,,231,,,,,,,,,,231,,,,,,,231,231,231,231,231,231,231,231,231,231,231',
+'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231',
+'231,231,231,231,231,231,81,214,81,,,,,,214,214,214,214,214,214,214,214',
+'214,214,214,214,214,214,214,214,214,214,214,214,214,,,,81,81,,,,81,',
+',,81,,,,,,,,81,,81,,,,,,,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81',
+'81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,224,210,224',
+',,,,,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210',
+'210,210,210,210,210,,,,224,224,,,,224,,,,224,,,,,,,,,,224,,,,,,,224',
+'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224',
+'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,273',
+'246,273,,,,,,246,246,246,246,246,246,246,246,246,246,246,246,246,,,',
+',,,,,,,,273,273,,,,273,,,,273,,,,,,,,,,273,,,,,,,273,273,273,273,273',
+'273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273',
+'273,273,273,273,273,273,273,273,273,273,273,273,216,238,216,,,,,,238',
+'238,238,238,238,238,238,238,238,238,238,238,238,,,,,,,,,,,,216,216,',
+',,216,,,,216,,,,,,,,,,216,,,,,,,216,216,216,216,216,216,216,216,216',
'216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216',
-'223,223,,,,,,,,223,,,,,,,,,,223,,,,,,223,223,223,223,223,223,223,223',
-'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223',
-'223,223,223,223,223,223,219,219,,,,,,,,219,,,,,,,,,,219,,,,,,219,219',
-'219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219',
-'219,219,219,219,219,219,219,219,219,219,219,219,111,111,,,,,,,,111,',
-',,,,,,,,111,,,,,,111,111,111,111,111,111,111,111,111,111,111,111,111',
-'111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111',
-'111,279,,,,,,,,279,,,,,,,,,,279,,,,,,279,279,279,279,279,279,279,279',
-'279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279',
-'279,279,279,279,279,279,302,,,,,,,,302,,,,,,,,,,302,,,,,,302,302,302',
-'302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302',
-'302,302,302,302,302,302,302,302,302,302,302,215,,,,,,,,215,,,,,,,,,',
-'215,,,,,,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215',
-'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,303',
-',,,,,,,303,,,,,,,,,,303,,,,,,303,303,303,303,303,303,303,303,303,303',
-'303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303',
-'303,303,303,303,280,,,,,,,,280,,,,,,,,,,280,,,,,,280,280,280,280,280',
-'280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280',
-'280,280,280,280,280,280,280,280,280,85,,,,,,,,,,85,,,,,,85,85,85,85',
-'85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85',
-'85,85,85,105,,,,,,,,,,105,,,,,,105,105,105,105,105,105,105,105,105,105',
-'105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105',
-'105,105,105,242,,,,,,,,,,242,,,,,,242,242,242,242,242,242,242,242,242',
-'242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242',
-'242,242,242,242,238,,,,,,238,238,238,238,238,238,238,238,238,238,238',
-'238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238',
-'238,238,235,,,,,,235,235,235,235,235,235,235,235,235,235,235,235,235',
-'235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235',
-'232,,,,,,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232',
-'232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,243,,,,',
-',243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243',
-'243,243,243,243,243,243,243,243,243,243,243,243,243,207,,,,,,207,207',
-'207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207',
-'207,207,207,207,207,207,207,207,207,207,207' ]
- racc_action_check = arr = Array.new(8898, nil)
+'216,216,216,216,216,216,216,216,274,230,274,,,,,,230,230,230,230,230',
+'230,230,230,230,230,,,,,,,,,,,,,,,274,274,,,,274,,,,274,,,,,,,,,,274',
+',,,,,,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274',
+'274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274',
+'274,107,,107,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,107,107,,,,107,,,,107,,,,',
+',,,,,107,,,,,,,107,107,107,107,107,107,107,107,107,107,107,107,107,107',
+'107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107',
+'107,107,107,316,,316,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,316,316,,,,316,,,',
+'316,,,,,,,,,,316,,,,,,,316,316,316,316,316,316,316,316,316,316,316,316',
+'316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316',
+'316,316,316,316,316,195,,195,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,195,195,,',
+',195,,,,195,,,,,,,,,,195,,,,,,,195,195,195,195,195,195,195,195,195,195',
+'195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195',
+'195,195,195,195,195,195,195,317,,317,,,,,,,,,,,,,,,,,,,,,,,317,,,,,',
+',317,317,,,,317,,,,317,,,,,,,,,,317,,,,,,,317,317,317,317,317,317,317',
+'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317',
+'317,317,317,317,317,317,317,317,317,317,78,,78,,,,,,,,,,,,,,,,,,,,,',
+',,,,,,,,78,78,,,,78,,,,78,,,,,,,,78,,78,,,,,,,78,78,78,78,78,78,78,78',
+'78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78',
+'78,78,78,181,,181,,,,,,,,,,,,,,,,,,,,,,,181,,,,,,,181,181,,,,181,,,',
+'181,,,,,,,,,,181,,,,,,,181,181,181,181,181,181,181,181,181,181,181,181',
+'181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181',
+'181,181,181,181,181,180,,180,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,180,180,,',
+',180,,,,180,,,,,,,,,,180,,,,,,,180,180,180,180,180,180,180,180,180,180',
+'180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180',
+'180,180,180,180,180,180,180,265,,265,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,265',
+'265,,,,265,,,,265,,,,,,,,,,265,,,,,,,265,265,265,265,265,265,265,265',
+'265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265',
+'265,265,265,265,265,265,265,265,265,295,,295,,,,,,,,,,,,,,,,,,,,,,,',
+',,,,,,295,295,,,,295,,,,295,,,,,,,,,,295,,,,,,,295,295,295,295,295,295',
+'295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295',
+'295,295,295,295,295,295,295,295,295,295,295,299,,299,,,,,,,,,,,,,,,',
+',,,,,,,,,,,,,,299,299,,,,299,,,,299,,,,,,,,,,299,,,,,,,299,299,299,299',
+'299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299',
+'299,299,299,299,299,299,299,299,299,299,299,299,299,298,,298,,,,,,,',
+',,,,,,,,,,,,,,,,,,,,,,298,298,,,,298,,,,298,,,,,,,,,,298,,,,,,,298,298',
+'298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298',
+'298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,80,,80,',
+',,,,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,,80,,,,80,,,,,,,,80,,80,,,,,,,80',
+'80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80',
+'80,80,80,80,80,80,80,80,80,80,266,,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
+'266,266,,,,266,,,,266,,,,,,,,,,266,,,,,,,266,266,266,266,266,266,266',
+'266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266',
+'266,266,266,266,266,266,266,266,266,266,88,88,,,,,,,,88,,,,,,,,,,88',
+',,,,,,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88',
+'88,88,88,88,88,88,88,88,88,88,88,88,88,250,250,,,,,,,,250,,,,,,,,,,250',
+',,,,,,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250',
+'250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250',
+'250,228,228,,,,,,,,228,,,,,,,,,,228,,,,,,,228,228,228,228,228,228,228',
+'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228',
+'228,228,228,228,228,228,228,113,113,,,,,,,,113,,,,,,,,,,113,,,,,,,113',
+'113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113',
+'113,113,113,113,113,113,113,113,113,113,113,113,113,225,225,,,,,,,,225',
+',,,,,,,,,225,,,,,,,225,225,225,225,225,225,225,225,225,225,225,225,225',
+'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225',
+'225,221,221,,,,,,,,221,,,,,,,,,,221,,,,,,,221,221,221,221,221,221,221',
+'221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221',
+'221,221,221,221,221,221,221,305,,,,,,,,305,,,,,,,,,,305,,,,,,,305,305',
+'305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305',
+'305,305,305,305,305,305,305,305,305,305,305,305,304,,,,,,,,304,,,,,',
+',,,,304,,,,,,,304,304,304,304,304,304,304,304,304,304,304,304,304,304',
+'304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304',
+'218,,,,,,,,218,,,,,,,,,,218,,,,,,,218,218,218,218,218,218,218,218,218',
+'218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218',
+'218,218,218,218,218,282,,,,,,,,282,,,,,,,,,,282,,,,,,,282,282,282,282',
+'282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282',
+'282,282,282,282,282,282,282,282,282,282,281,,,,,,,,281,,,,,,,,,,281',
+',,,,,,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281',
+'281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,244,,,,',
+',,,,,244,,,,,,,244,244,244,244,244,244,244,244,244,244,244,244,244,244',
+'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,86,',
+',,,,,,,,86,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86',
+'86,86,86,86,86,86,86,86,86,86,86,86,86,104,,,,,,,,,,104,,,,,,,104,104',
+'104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104',
+'104,104,104,104,104,104,104,104,104,104,104,237,,,,,,,237,237,237,237',
+'237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237',
+'237,237,237,237,237,237,237,237,237,240,,,,,,,240,240,240,240,240,240',
+'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240',
+'240,240,240,240,240,240,240,213,,,,,,,213,213,213,213,213,213,213,213',
+'213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213',
+'213,213,213,213,213,209,,,,,,,209,209,209,209,209,209,209,209,209,209',
+'209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209',
+'209,209,209,245,,,,,,,245,245,245,245,245,245,245,245,245,245,245,245',
+'245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245',
+'245' ]
+ racc_action_check = arr = Array.new(9160, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
@@ -696,342 +709,345 @@ clist = [
end
racc_action_pointer = [
- 4416, 269, nil, nil, 172, nil, 246, nil, nil, 320,
- nil, 394, 468, nil, nil, 542, nil, nil, 616, 5725,
- 764, nil, 505, 5910, 232, nil, nil, nil, nil, 1060,
- 1134, nil, 252, nil, 1282, 1356, nil, nil, nil, nil,
- 221, nil, nil, nil, nil, 245, nil, nil, nil, 1578,
- nil, nil, nil, nil, nil, 53, 1726, nil, nil, 55,
- nil, nil, 199, 6687, 157, -2, 143, nil, 2244, nil,
- nil, 2318, nil, -3, -43, nil, 313, 6414, 535, 6323,
- 6232, 519, 181, 394, 320, 8537, 3280, 3354, 182, nil,
- 270, nil, 256, nil, nil, 7988, 20, nil, -70, 212,
- nil, 212, 63, 4120, 7415, 8583, 4342, -2, 445, 294,
- 16, 8215, 4812, 76, nil, nil, 164, 140, 5108, 5182,
- 5256, 273, 205, 3872, 5034, 4886, 4738, 4516, 4194, 3798,
- 3576, 3502, 3428, 3132, 3058, 2984, 2836, nil, 2762, 2614,
- nil, 2540, 2096, 1948, 1874, 1800, 1652, 1504, 1208, 986,
- 912, 838, -2, 690, 4046, 5478, 98, 5404, 5330, nil,
- 5626, nil, 4960, nil, nil, -1, nil, 246, nil, 387,
- 297, 182, 39, 77, nil, nil, -22, 146, 7597, 7506,
- nil, nil, nil, 4664, 4590, 92, nil, 201, 113, nil,
- nil, 4268, 3946, 7779, -50, 71, nil, 4, 14, -26,
- nil, 7324, nil, 125, 3724, 3650, -2, 8809, 4424, 402,
- 285, 75, 6273, 328, 7233, 8380, 8047, 6091, 254, 8159,
- 6364, 6728, 7051, 8103, 6182, 5844, 3954, 6637, 6960, 6000,
- 5745, 371, 8737, 6546, 65, 8701, 5918, 239, 8665, nil,
- 5486, 479, 8629, 8773, 6455, 550, 468, 519, 7929, nil,
- nil, nil, nil, nil, 184, 131, 286, 184, nil, 3206,
- nil, 27, nil, 6505, 6050, nil, nil, nil, 233, 6141,
- 2910, 2688, 5959, 2466, nil, 1, 47, nil, nil, 8270,
- 8490, 2392, 2170, nil, 186, nil, nil, nil, 73, 119,
- nil, nil, 6596, 43, 2022, nil, 6778, 6869, 5527, 5737,
- nil, nil, 8325, 8435, nil, 212, 39, 1430, 7142, 5836,
- nil, 5618, nil, nil, 7688, nil, 7870, nil, nil ]
+ 4700, 340, nil, nil, 174, nil, 249, nil, nil, 324,
+ nil, 399, 474, nil, nil, 549, nil, nil, nil, 624,
+ nil, -2, 774, nil, 849, 6008, nil, 324, nil, 235,
+ nil, nil, 1149, nil, 1224, 243, nil, 1374, nil, nil,
+ 1449, nil, nil, 202, nil, nil, 1599, nil, nil, nil,
+ nil, nil, 1674, 215, nil, nil, nil, nil, nil, 1824,
+ nil, nil, 219, nil, nil, nil, 152, 203, 6272, -22,
+ -2, 37, nil, 2424, nil, -38, -5, 185, 7376, 317,
+ 8020, 6548, 301, 242, 399, 474, 8838, 392, 8172, nil,
+ 3575, 3650, 229, 276, nil, 278, nil, nil, 210, nil,
+ 231, 236, nil, 53, 8885, 71, 4400, 7008, 4550, 451,
+ -2, 196, 64, 8349, 342, 64, nil, 5176, 260, 101,
+ nil, 5401, 5476, 5551, 351, 3500, 1524, 1299, 999, 277,
+ 699, 4175, 2975, 924, 4625, 5326, 5251, 5101, 5026, 4951,
+ 4876, 4801, 5626, nil, 4475, 4325, 4250, nil, 99, 4100,
+ 4025, 3950, 3875, 3800, 3725, 6074, 3425, 3350, 3275, 3200,
+ 3125, 3050, nil, nil, 6130, nil, 2900, nil, nil, 91,
+ nil, 219, 467, 120, 184, 232, nil, nil, 188, 74,
+ 7560, 7468, nil, nil, nil, 2825, 2750, 93, 114, nil,
+ 230, 2649, nil, nil, 2574, 7192, 108, -2, nil, 159,
+ 163, 102, nil, nil, 6180, 133, 2499, 2349, -17, 9033,
+ 6590, -7, 79, 8996, 6498, 408, 6824, -52, 8631, 4709,
+ 333, 8463, 6406, 258, 6640, 8406, 5720, 6092, 8292, 6126,
+ 6866, 6456, 2658, 5942, 6222, 5635, 167, 8922, 6774, -18,
+ 8959, nil, 6314, 376, 8791, 9070, 6682, 483, 2, 249,
+ 8232, nil, nil, nil, nil, -54, nil, -24, 150, 126,
+ nil, 2274, nil, -65, nil, 7652, 8112, nil, nil, 203,
+ nil, 2199, 2124, 6732, 6916, 2049, nil, 68, 89, nil,
+ nil, 8743, 8687, nil, 1974, 1899, 275, nil, nil, nil,
+ -2, 149, nil, nil, -50, 7744, 1749, nil, 7928, 7836,
+ 5933, 5768, nil, nil, 8575, 8519, nil, 245, 37, 1074,
+ 5867, 6364, 5676, nil, nil, nil, 7100, 7284, nil, nil,
+ nil ]
racc_action_default = [
- -1, -182, -97, -11, -182, -106, -182, -26, -12, -182,
- -107, -182, -182, -27, -13, -182, -108, -14, -182, -182,
- -182, -15, -124, -46, -118, -16, -28, -17, -29, -137,
- -182, -31, -182, -18, -182, -182, -126, -35, -19, -36,
- -182, -34, -20, -37, -21, -182, -47, -22, -38, -182,
- -2, -30, -23, -39, -32, -3, -182, -104, -40, -182,
- -103, -33, -182, -5, -182, -8, -175, -9, -182, -96,
- -10, -182, -105, -182, -100, -98, -49, -154, -52, -182,
- -182, -54, -53, -182, -125, -55, -137, -182, -182, -110,
- -182, -114, -182, -115, -129, -45, -182, -44, -182, -118,
- -119, -182, -182, -182, -138, -56, -137, -182, -50, -182,
- -182, -151, -7, -182, -25, -4, -158, -182, -182, -182,
- -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
- -182, -182, -182, -182, -182, -182, -182, -58, -182, -182,
- -57, -182, -182, -182, -182, -182, -182, -182, -182, -182,
- -182, -182, -93, -182, -182, -182, -182, -182, -182, -95,
- -182, -109, -182, -128, -179, -182, -173, -175, -177, -51,
- -48, -182, -182, -182, -153, -171, -182, -182, -138, -182,
- -111, -112, -113, -182, -182, -182, -117, -182, -182, -136,
- -144, -182, -182, -139, -182, -182, -152, -147, -182, -182,
- 319, -6, -24, -182, -182, -182, -182, -87, -75, -64,
- -182, -182, -76, -65, -180, -92, -88, -77, -66, -89,
- -78, -67, -181, -90, -79, -68, -80, -69, -155, -81,
- -70, -59, -83, -71, -60, -84, -72, -61, -85, -82,
- -73, -62, -91, -86, -74, -63, -127, -182, -41, -172,
- -176, -174, -178, -99, -182, -182, -182, -182, -166, -182,
- -130, -182, -116, -42, -43, -123, -121, -120, -182, -141,
- -182, -182, -140, -182, -131, -182, -182, -148, -159, -160,
- -161, -182, -182, -157, -156, -102, -94, -101, -182, -182,
- -167, -164, -145, -182, -182, -122, -142, -143, -182, -102,
- -149, -150, -163, -162, -170, -182, -168, -182, -182, -102,
- -132, -182, -165, -169, -146, -134, -182, -133, -135 ]
+ -1, -183, -97, -10, -183, -106, -183, -98, -11, -183,
+ -107, -183, -183, -26, -12, -183, -108, -27, -13, -183,
+ -109, -183, -183, -14, -183, -46, -15, -125, -28, -119,
+ -16, -29, -183, -31, -138, -183, -17, -183, -35, -18,
+ -183, -127, -36, -183, -34, -19, -183, -37, -20, -47,
+ -21, -38, -183, -183, -30, -22, -39, -32, -2, -183,
+ -23, -40, -3, -105, -104, -33, -183, -183, -5, -183,
+ -8, -176, -9, -183, -99, -101, -183, -48, -155, -49,
+ -183, -183, -53, -55, -183, -126, -56, -54, -45, -130,
+ -138, -183, -183, -183, -111, -183, -115, -116, -183, -44,
+ -183, -119, -120, -183, -57, -183, -183, -139, -138, -51,
+ -183, -183, -50, -152, -183, -183, -25, -7, -159, -183,
+ -4, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+ -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+ -183, -183, -183, -59, -183, -183, -183, -58, -183, -183,
+ -183, -183, -183, -183, -183, -94, -183, -183, -183, -183,
+ -183, -183, -96, -129, -183, -110, -183, -178, -180, -183,
+ -174, -176, -52, -183, -183, -183, -154, -172, -183, -183,
+ -139, -183, -112, -113, -114, -183, -183, -183, -183, -118,
+ -183, -183, -137, -145, -183, -140, -183, -183, -153, -148,
+ -183, -183, 321, -24, -6, -183, -183, -183, -183, -87,
+ -75, -64, -183, -88, -76, -65, -181, -183, -93, -77,
+ -66, -89, -78, -67, -182, -90, -79, -68, -91, -80,
+ -69, -156, -81, -70, -82, -71, -60, -84, -72, -61,
+ -85, -83, -73, -62, -92, -86, -74, -63, -128, -183,
+ -41, -177, -173, -179, -175, -183, -100, -183, -183, -183,
+ -167, -183, -131, -183, -117, -42, -43, -124, -121, -183,
+ -122, -183, -183, -141, -142, -183, -132, -183, -183, -149,
+ -160, -161, -162, -158, -183, -183, -157, -103, -102, -95,
+ -183, -183, -168, -165, -183, -146, -183, -123, -143, -144,
+ -103, -183, -150, -151, -164, -163, -171, -183, -169, -183,
+ -103, -183, -183, -133, -166, -170, -147, -183, -135, -134,
+ -136 ]
racc_goto_table = [
- 50, 161, 163, 59, 258, 206, 75, 76, 101, 77,
- 168, 97, 78, 166, 79, 80, 266, 267, 81, 161,
- 163, 82, 102, 85, 45, 83, 95, 293, 84, 117,
- 257, 55, 104, 105, 197, 249, 254, 107, 108, 167,
- 73, 164, nil, 109, nil, nil, nil, nil, nil, nil,
- nil, nil, 111, nil, nil, 112, nil, nil, nil, 115,
- nil, nil, nil, nil, nil, nil, nil, 159, nil, nil,
- nil, 169, nil, nil, 170, nil, nil, nil, nil, 177,
- 174, nil, 175, 185, nil, 290, 97, 113, 210, 178,
- 179, nil, nil, nil, nil, nil, nil, 295, 284, 195,
- nil, 187, nil, nil, nil, nil, 193, nil, nil, 178,
- nil, 252, nil, 112, 251, 201, 304, nil, nil, nil,
- nil, 207, 208, 209, nil, nil, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- nil, 226, 227, nil, 228, 229, 230, 231, 232, 233,
- 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
- 244, 245, nil, 256, nil, 248, 246, nil, 250, 247,
- nil, nil, nil, nil, 97, 97, 253, nil, nil, nil,
- nil, nil, 161, 163, nil, 187, 263, 264, 268, nil,
- nil, nil, 270, nil, 269, 272, nil, nil, nil, nil,
- nil, nil, 277, nil, nil, nil, nil, 279, 280, 283,
+ 58, 74, 260, 208, 67, 167, 165, 163, 77, 170,
+ 78, 62, 268, 79, 270, 80, 81, 99, 105, 82,
+ 165, 163, 119, 83, 84, 85, 86, 103, 87, 88,
+ 53, 294, 259, 199, 252, 257, 104, 171, 107, 76,
+ 168, 109, nil, nil, 110, nil, nil, 111, nil, nil,
+ 112, nil, nil, nil, nil, nil, 113, nil, nil, nil,
+ nil, nil, 117, nil, nil, nil, nil, 120, nil, nil,
+ 115, nil, nil, 162, 179, nil, nil, 172, nil, nil,
+ 212, nil, 176, 292, 177, nil, nil, nil, nil, 99,
+ nil, nil, 197, 297, 180, 181, 286, nil, nil, 187,
+ nil, nil, nil, 190, nil, 253, nil, nil, nil, 254,
+ 195, nil, 180, nil, 306, 117, nil, nil, nil, nil,
+ nil, 204, nil, nil, nil, 209, 210, 211, nil, 213,
+ 214, 215, 216, nil, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, nil, 231, 232,
+ 233, nil, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 258, 248, 249, nil,
+ 250, nil, nil, 251, 256, nil, 99, nil, 99, nil,
+ nil, nil, nil, nil, 165, 163, nil, 190, 269, 265,
+ 266, 271, nil, nil, nil, 273, nil, nil, 274, nil,
+ nil, nil, nil, nil, nil, 279, nil, nil, nil, nil,
+ 281, 282, 283, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 256, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 97, 288, 286, nil, nil,
- nil, nil, 292, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 296, 297, 256, 298, nil, 300, 301,
- nil, nil, nil, nil, 302, 303, nil, nil, nil, nil,
- nil, nil, 305, nil, nil, nil, 306, 308, nil, nil,
- nil, nil, 311, nil, nil, nil, 313, nil, nil, nil,
- 314, nil, 316 ]
+ nil, nil, nil, nil, nil, nil, nil, 258, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 99, 290, nil,
+ nil, 289, nil, nil, nil, 295, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, 298, 299, nil, 258, 301,
+ nil, 302, 303, nil, nil, nil, nil, nil, 304, 305,
+ nil, nil, nil, nil, nil, 307, nil, nil, 308, nil,
+ 311, nil, nil, nil, 312, nil, nil, nil, 315, nil,
+ nil, nil, nil, 316, 317 ]
racc_goto_check = [
- 2, 31, 37, 4, 44, 42, 26, 5, 35, 5,
- 48, 21, 5, 46, 5, 5, 23, 23, 5, 31,
- 37, 5, 38, 5, 1, 6, 5, 39, 32, 41,
- 43, 3, 5, 5, 40, 45, 25, 5, 5, 47,
- 24, 49, nil, 4, nil, nil, nil, nil, nil, nil,
- nil, nil, 5, nil, nil, 2, nil, nil, nil, 2,
- nil, nil, nil, nil, nil, nil, nil, 4, nil, nil,
- nil, 5, nil, nil, 5, nil, nil, nil, nil, 38,
- 4, nil, 4, 35, nil, 44, 21, 3, 41, 5,
- 5, nil, nil, nil, nil, nil, nil, 23, 42, 38,
- nil, 2, nil, nil, nil, nil, 5, nil, nil, 5,
- nil, 48, nil, 2, 46, 5, 44, nil, nil, nil,
- nil, 5, 5, 5, nil, nil, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- nil, 5, 5, nil, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, nil, 21, nil, 5, 6, nil, 4, 32,
- nil, nil, nil, nil, 21, 21, 26, nil, nil, nil,
- nil, nil, 31, 37, nil, 2, 5, 5, 2, nil,
- nil, nil, 2, nil, 5, 5, nil, nil, nil, nil,
- nil, nil, 4, nil, nil, nil, nil, 5, 5, 4,
+ 2, 26, 44, 42, 4, 48, 31, 37, 5, 46,
+ 5, 3, 23, 5, 23, 5, 5, 21, 38, 5,
+ 31, 37, 41, 5, 6, 32, 5, 35, 5, 5,
+ 1, 39, 43, 40, 45, 25, 5, 47, 5, 24,
+ 49, 5, nil, nil, 5, nil, nil, 4, nil, nil,
+ 5, nil, nil, nil, nil, nil, 5, nil, nil, nil,
+ nil, nil, 2, nil, nil, nil, nil, 2, nil, nil,
+ 3, nil, nil, 4, 38, nil, nil, 5, nil, nil,
+ 41, nil, 4, 44, 4, nil, nil, nil, nil, 21,
+ nil, nil, 38, 23, 5, 5, 42, nil, nil, 35,
+ nil, nil, nil, 2, nil, 48, nil, nil, nil, 46,
+ 5, nil, 5, nil, 44, 2, nil, nil, nil, nil,
+ nil, 5, nil, nil, nil, 5, 5, 5, nil, 5,
+ 5, 5, 5, nil, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, nil, 5, 5,
+ 5, nil, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 21, 6, 32, nil,
+ 5, nil, nil, 4, 26, nil, 21, nil, 21, nil,
+ nil, nil, nil, nil, 31, 37, nil, 2, 2, 5,
+ 5, 2, nil, nil, nil, 5, nil, nil, 5, nil,
+ nil, nil, nil, nil, nil, 4, nil, nil, nil, nil,
+ 5, 5, 4, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, 21, nil, nil, nil, nil, nil,
- nil, nil, nil, nil, nil, 21, 2, 4, nil, nil,
- nil, nil, 5, nil, nil, nil, nil, nil, nil, nil,
- nil, nil, nil, 5, 5, 21, 5, nil, 4, 4,
- nil, nil, nil, nil, 5, 5, nil, nil, nil, nil,
- nil, nil, 4, nil, nil, nil, 4, 5, nil, nil,
- nil, nil, 5, nil, nil, nil, 2, nil, nil, nil,
- 5, nil, 5 ]
+ nil, nil, nil, nil, nil, nil, nil, 21, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, 21, 2, nil,
+ nil, 4, nil, nil, nil, 5, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, 5, 5, nil, 21, 5,
+ nil, 4, 4, nil, nil, nil, nil, nil, 5, 5,
+ nil, nil, nil, nil, nil, 4, nil, nil, 4, nil,
+ 5, nil, nil, nil, 5, nil, nil, nil, 2, nil,
+ nil, nil, nil, 5, 5 ]
racc_goto_pointer = [
- nil, 24, 0, 31, 3, 3, 6, nil, nil, nil,
+ nil, 30, 0, 11, 4, 4, 3, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
- nil, -13, nil, -171, 39, -136, 5, nil, nil, nil,
- nil, -64, 9, nil, nil, -16, nil, -63, -7, -232,
- -75, -33, -112, -146, -172, -130, -53, -27, -56, -25 ]
+ nil, -12, nil, -176, 38, -140, 0, nil, nil, nil,
+ nil, -64, 4, nil, nil, -2, nil, -63, -16, -230,
+ -78, -44, -116, -146, -176, -135, -62, -34, -66, -31 ]
racc_goto_default = [
- nil, nil, 191, nil, nil, 63, 65, 67, 70, 3,
- 8, 14, 17, 21, 25, 27, 33, 38, 42, 44,
- 47, 52, 57, 100, nil, 64, nil, 72, 5, 10,
- 16, 89, 22, 91, 93, nil, 36, 94, nil, nil,
- nil, nil, nil, nil, nil, 66, nil, nil, nil, nil ]
+ nil, nil, 194, nil, nil, 68, 70, 72, 3, 8,
+ 14, 18, 23, 26, 30, 36, 39, 45, 48, 50,
+ 55, 60, 63, 102, nil, 69, nil, 5, 10, 16,
+ 20, 94, 27, 96, 97, nil, 41, 89, nil, nil,
+ nil, nil, nil, nil, nil, 71, nil, nil, nil, nil ]
racc_reduce_table = [
0, 0, :racc_error,
- 0, 106, :_reduce_1,
- 1, 106, :_reduce_2,
- 1, 106, :_reduce_3,
- 2, 106, :_reduce_4,
- 1, 108, :_reduce_5,
- 3, 108, :_reduce_6,
- 2, 108, :_reduce_7,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 3, 109, :_reduce_24,
- 2, 109, :_reduce_25,
- 1, 107, :_reduce_none,
- 1, 107, :_reduce_none,
- 1, 127, :_reduce_28,
- 1, 127, :_reduce_29,
- 1, 127, :_reduce_30,
- 1, 127, :_reduce_31,
- 1, 127, :_reduce_32,
- 1, 127, :_reduce_33,
- 1, 127, :_reduce_34,
- 1, 127, :_reduce_35,
- 1, 127, :_reduce_36,
- 1, 127, :_reduce_37,
- 1, 127, :_reduce_38,
- 1, 127, :_reduce_39,
- 1, 127, :_reduce_40,
- 3, 115, :_reduce_41,
- 3, 128, :_reduce_42,
- 3, 128, :_reduce_43,
- 1, 128, :_reduce_44,
- 2, 119, :_reduce_45,
- 1, 119, :_reduce_46,
- 1, 126, :_reduce_47,
- 2, 114, :_reduce_48,
- 2, 114, :_reduce_49,
- 2, 114, :_reduce_50,
- 2, 114, :_reduce_51,
- 2, 114, :_reduce_52,
- 2, 114, :_reduce_53,
- 2, 114, :_reduce_54,
- 2, 114, :_reduce_55,
- 2, 114, :_reduce_56,
- 2, 114, :_reduce_57,
- 2, 114, :_reduce_58,
- 3, 114, :_reduce_59,
- 3, 114, :_reduce_60,
- 3, 114, :_reduce_61,
- 3, 114, :_reduce_62,
- 3, 114, :_reduce_63,
- 3, 114, :_reduce_64,
- 3, 114, :_reduce_65,
- 3, 114, :_reduce_66,
- 3, 114, :_reduce_67,
- 3, 114, :_reduce_68,
- 3, 114, :_reduce_69,
- 3, 114, :_reduce_70,
- 3, 114, :_reduce_71,
- 3, 114, :_reduce_72,
- 3, 114, :_reduce_73,
- 3, 114, :_reduce_74,
- 3, 114, :_reduce_75,
- 3, 114, :_reduce_76,
- 3, 114, :_reduce_77,
- 3, 114, :_reduce_78,
- 3, 114, :_reduce_79,
- 3, 114, :_reduce_80,
- 3, 114, :_reduce_81,
- 3, 114, :_reduce_82,
- 3, 114, :_reduce_83,
- 3, 114, :_reduce_84,
- 3, 114, :_reduce_85,
- 3, 114, :_reduce_86,
- 3, 114, :_reduce_87,
- 3, 114, :_reduce_88,
- 3, 114, :_reduce_89,
- 3, 114, :_reduce_90,
- 3, 114, :_reduce_91,
- 3, 114, :_reduce_92,
- 2, 125, :_reduce_93,
- 5, 113, :_reduce_94,
- 2, 113, :_reduce_95,
- 1, 130, :_reduce_96,
- 1, 130, :_reduce_97,
- 1, 129, :_reduce_98,
- 3, 129, :_reduce_99,
- 1, 131, :_reduce_none,
- 4, 131, :_reduce_101,
- 4, 124, :_reduce_102,
- 1, 111, :_reduce_103,
- 1, 111, :_reduce_104,
- 1, 111, :_reduce_105,
- 1, 111, :_reduce_106,
- 1, 111, :_reduce_107,
- 1, 111, :_reduce_108,
- 2, 111, :_reduce_109,
- 2, 111, :_reduce_110,
- 2, 136, :_reduce_111,
- 2, 136, :_reduce_112,
- 2, 136, :_reduce_113,
- 1, 136, :_reduce_114,
- 1, 136, :_reduce_115,
- 3, 138, :_reduce_116,
- 3, 133, :_reduce_117,
- 0, 140, :_reduce_118,
- 1, 140, :_reduce_119,
- 3, 140, :_reduce_120,
- 3, 140, :_reduce_121,
- 4, 140, :_reduce_122,
- 3, 140, :_reduce_123,
- 1, 112, :_reduce_124,
- 2, 112, :_reduce_125,
- 1, 112, :_reduce_126,
- 3, 123, :_reduce_127,
- 2, 137, :_reduce_128,
- 2, 137, :_reduce_129,
- 3, 142, :_reduce_130,
- 4, 141, :_reduce_131,
- 6, 135, :_reduce_132,
- 7, 135, :_reduce_133,
- 6, 139, :_reduce_134,
- 7, 139, :_reduce_135,
- 3, 132, :_reduce_136,
- 0, 143, :_reduce_137,
- 1, 143, :_reduce_138,
- 2, 143, :_reduce_139,
- 3, 143, :_reduce_140,
- 3, 143, :_reduce_141,
- 4, 143, :_reduce_142,
- 4, 143, :_reduce_143,
- 2, 143, :_reduce_144,
- 1, 144, :_reduce_145,
- 3, 144, :_reduce_146,
- 3, 117, :_reduce_147,
- 4, 117, :_reduce_148,
- 5, 117, :_reduce_149,
- 3, 145, :_reduce_150,
- 2, 118, :_reduce_151,
- 3, 134, :_reduce_152,
- 3, 120, :_reduce_153,
- 2, 120, :_reduce_154,
- 3, 120, :_reduce_155,
- 4, 121, :_reduce_156,
- 4, 121, :_reduce_157,
- 1, 146, :_reduce_158,
- 3, 146, :_reduce_159,
- 2, 147, :_reduce_160,
- 2, 147, :_reduce_161,
- 3, 147, :_reduce_162,
- 3, 147, :_reduce_163,
- 5, 122, :_reduce_164,
- 7, 122, :_reduce_165,
- 1, 148, :_reduce_166,
- 2, 148, :_reduce_167,
- 3, 149, :_reduce_168,
- 4, 149, :_reduce_169,
- 3, 149, :_reduce_170,
+ 0, 107, :_reduce_1,
+ 1, 107, :_reduce_2,
+ 1, 107, :_reduce_3,
+ 2, 107, :_reduce_4,
+ 1, 109, :_reduce_5,
+ 3, 109, :_reduce_6,
+ 2, 109, :_reduce_7,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 1, 111, :_reduce_none,
+ 3, 110, :_reduce_24,
+ 2, 110, :_reduce_25,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 128, :_reduce_28,
+ 1, 128, :_reduce_29,
+ 1, 128, :_reduce_30,
+ 1, 128, :_reduce_31,
+ 1, 128, :_reduce_32,
+ 1, 128, :_reduce_33,
+ 1, 128, :_reduce_34,
+ 1, 128, :_reduce_35,
+ 1, 128, :_reduce_36,
+ 1, 128, :_reduce_37,
+ 1, 128, :_reduce_38,
+ 1, 128, :_reduce_39,
+ 1, 128, :_reduce_40,
+ 3, 116, :_reduce_41,
+ 3, 129, :_reduce_42,
+ 3, 129, :_reduce_43,
+ 1, 129, :_reduce_44,
+ 2, 120, :_reduce_45,
+ 1, 120, :_reduce_46,
+ 1, 127, :_reduce_47,
+ 2, 115, :_reduce_48,
+ 2, 115, :_reduce_49,
+ 2, 115, :_reduce_50,
+ 2, 115, :_reduce_51,
+ 2, 115, :_reduce_52,
+ 2, 115, :_reduce_53,
+ 2, 115, :_reduce_54,
+ 2, 115, :_reduce_55,
+ 2, 115, :_reduce_56,
+ 2, 115, :_reduce_57,
+ 2, 115, :_reduce_58,
+ 2, 115, :_reduce_59,
+ 3, 115, :_reduce_60,
+ 3, 115, :_reduce_61,
+ 3, 115, :_reduce_62,
+ 3, 115, :_reduce_63,
+ 3, 115, :_reduce_64,
+ 3, 115, :_reduce_65,
+ 3, 115, :_reduce_66,
+ 3, 115, :_reduce_67,
+ 3, 115, :_reduce_68,
+ 3, 115, :_reduce_69,
+ 3, 115, :_reduce_70,
+ 3, 115, :_reduce_71,
+ 3, 115, :_reduce_72,
+ 3, 115, :_reduce_73,
+ 3, 115, :_reduce_74,
+ 3, 115, :_reduce_75,
+ 3, 115, :_reduce_76,
+ 3, 115, :_reduce_77,
+ 3, 115, :_reduce_78,
+ 3, 115, :_reduce_79,
+ 3, 115, :_reduce_80,
+ 3, 115, :_reduce_81,
+ 3, 115, :_reduce_82,
+ 3, 115, :_reduce_83,
+ 3, 115, :_reduce_84,
+ 3, 115, :_reduce_85,
+ 3, 115, :_reduce_86,
+ 3, 115, :_reduce_87,
+ 3, 115, :_reduce_88,
+ 3, 115, :_reduce_89,
+ 3, 115, :_reduce_90,
+ 3, 115, :_reduce_91,
+ 3, 115, :_reduce_92,
+ 3, 115, :_reduce_93,
+ 2, 126, :_reduce_94,
+ 5, 114, :_reduce_95,
+ 2, 114, :_reduce_96,
+ 1, 131, :_reduce_97,
+ 1, 131, :_reduce_98,
+ 1, 130, :_reduce_99,
+ 3, 130, :_reduce_100,
+ 1, 132, :_reduce_none,
+ 4, 132, :_reduce_102,
+ 4, 125, :_reduce_103,
+ 1, 112, :_reduce_104,
+ 1, 112, :_reduce_105,
+ 1, 112, :_reduce_106,
+ 1, 112, :_reduce_107,
+ 1, 112, :_reduce_108,
+ 1, 112, :_reduce_109,
+ 2, 112, :_reduce_110,
+ 2, 112, :_reduce_111,
+ 2, 137, :_reduce_112,
+ 2, 137, :_reduce_113,
+ 2, 137, :_reduce_114,
+ 1, 137, :_reduce_115,
+ 1, 137, :_reduce_116,
+ 3, 139, :_reduce_117,
+ 3, 134, :_reduce_118,
+ 0, 141, :_reduce_119,
+ 1, 141, :_reduce_120,
+ 3, 141, :_reduce_121,
+ 3, 141, :_reduce_122,
+ 4, 141, :_reduce_123,
+ 3, 141, :_reduce_124,
+ 1, 113, :_reduce_125,
+ 2, 113, :_reduce_126,
+ 1, 113, :_reduce_127,
+ 3, 124, :_reduce_128,
+ 2, 138, :_reduce_129,
+ 2, 138, :_reduce_130,
+ 3, 143, :_reduce_131,
+ 4, 142, :_reduce_132,
+ 6, 136, :_reduce_133,
+ 7, 136, :_reduce_134,
+ 6, 140, :_reduce_135,
+ 7, 140, :_reduce_136,
+ 3, 133, :_reduce_137,
+ 0, 144, :_reduce_138,
+ 1, 144, :_reduce_139,
+ 2, 144, :_reduce_140,
+ 3, 144, :_reduce_141,
+ 3, 144, :_reduce_142,
+ 4, 144, :_reduce_143,
+ 4, 144, :_reduce_144,
+ 2, 144, :_reduce_145,
+ 1, 145, :_reduce_146,
+ 3, 145, :_reduce_147,
+ 3, 118, :_reduce_148,
+ 4, 118, :_reduce_149,
+ 5, 118, :_reduce_150,
+ 3, 146, :_reduce_151,
+ 2, 119, :_reduce_152,
+ 3, 135, :_reduce_153,
+ 3, 121, :_reduce_154,
+ 2, 121, :_reduce_155,
+ 3, 121, :_reduce_156,
+ 4, 122, :_reduce_157,
+ 4, 122, :_reduce_158,
+ 1, 147, :_reduce_159,
+ 3, 147, :_reduce_160,
+ 2, 148, :_reduce_161,
+ 2, 148, :_reduce_162,
+ 3, 148, :_reduce_163,
+ 3, 148, :_reduce_164,
+ 5, 123, :_reduce_165,
+ 7, 123, :_reduce_166,
+ 1, 149, :_reduce_167,
+ 2, 149, :_reduce_168,
+ 3, 150, :_reduce_169,
+ 4, 150, :_reduce_170,
3, 150, :_reduce_171,
- 2, 151, :_reduce_172,
- 1, 152, :_reduce_173,
- 2, 152, :_reduce_174,
- 0, 153, :_reduce_175,
- 2, 153, :_reduce_176,
- 1, 154, :_reduce_177,
- 2, 154, :_reduce_178,
- 2, 116, :_reduce_179,
- 3, 116, :_reduce_180,
- 3, 116, :_reduce_181 ]
+ 3, 151, :_reduce_172,
+ 2, 152, :_reduce_173,
+ 1, 153, :_reduce_174,
+ 2, 153, :_reduce_175,
+ 0, 154, :_reduce_176,
+ 2, 154, :_reduce_177,
+ 1, 155, :_reduce_178,
+ 2, 155, :_reduce_179,
+ 2, 117, :_reduce_180,
+ 3, 117, :_reduce_181,
+ 3, 117, :_reduce_182 ]
-racc_reduce_n = 182
+racc_reduce_n = 183
-racc_shift_n = 319
+racc_shift_n = 321
racc_token_table = {
false => 0,
@@ -1089,58 +1105,59 @@ racc_token_table = {
:OUTDENT => 52,
"?" => 53,
:UMINUS => 54,
- :NOT => 55,
- "!" => 56,
- "!!" => 57,
- "~" => 58,
- "++" => 59,
- "--" => 60,
- "*" => 61,
- "/" => 62,
- "%" => 63,
- "+" => 64,
- "-" => 65,
- "<<" => 66,
- ">>" => 67,
- ">>>" => 68,
- "&" => 69,
- "|" => 70,
- "^" => 71,
- "<=" => 72,
- "<" => 73,
- ">" => 74,
- ">=" => 75,
- "==" => 76,
- "!=" => 77,
- :IS => 78,
- :ISNT => 79,
- "&&" => 80,
- "||" => 81,
- :AND => 82,
- :OR => 83,
- "-=" => 84,
- "+=" => 85,
- "/=" => 86,
- "*=" => 87,
- "%=" => 88,
- "." => 89,
- "||=" => 90,
- "&&=" => 91,
- "?=" => 92,
- :ASSIGN => 93,
- "->" => 94,
- "=>" => 95,
- "\n" => 96,
- ";" => 97,
- "," => 98,
- "{" => 99,
- "}" => 100,
- "[" => 101,
- "]" => 102,
- "(" => 103,
- ")" => 104 }
+ :UPLUS => 55,
+ :NOT => 56,
+ "!" => 57,
+ "!!" => 58,
+ "~" => 59,
+ "++" => 60,
+ "--" => 61,
+ "*" => 62,
+ "/" => 63,
+ "%" => 64,
+ "+" => 65,
+ "-" => 66,
+ "<<" => 67,
+ ">>" => 68,
+ ">>>" => 69,
+ "&" => 70,
+ "|" => 71,
+ "^" => 72,
+ "<=" => 73,
+ "<" => 74,
+ ">" => 75,
+ ">=" => 76,
+ "==" => 77,
+ "!=" => 78,
+ :IS => 79,
+ :ISNT => 80,
+ "&&" => 81,
+ "||" => 82,
+ :AND => 83,
+ :OR => 84,
+ "-=" => 85,
+ "+=" => 86,
+ "/=" => 87,
+ "*=" => 88,
+ "%=" => 89,
+ "." => 90,
+ "||=" => 91,
+ "&&=" => 92,
+ "?=" => 93,
+ :ASSIGN => 94,
+ "->" => 95,
+ "=>" => 96,
+ "\n" => 97,
+ ";" => 98,
+ "," => 99,
+ "{" => 100,
+ "}" => 101,
+ "[" => 102,
+ "]" => 103,
+ "(" => 104,
+ ")" => 105 }
-racc_nt_base = 105
+racc_nt_base = 106
racc_use_result_var = true
@@ -1216,6 +1233,7 @@ Racc_token_to_s_table = [
"OUTDENT",
"\"?\"",
"UMINUS",
+ "UPLUS",
"NOT",
"\"!\"",
"\"!!\"",
@@ -1627,7 +1645,7 @@ module_eval(<<'.,.,', 'grammar.y', 148)
module_eval(<<'.,.,', 'grammar.y', 149)
def _reduce_57(val, _values, result)
- result = OpNode.new(val[1], val[0], nil, true)
+ result = OpNode.new(val[0], val[1])
result
end
.,.,
@@ -1639,9 +1657,9 @@ module_eval(<<'.,.,', 'grammar.y', 150)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 152)
+module_eval(<<'.,.,', 'grammar.y', 151)
def _reduce_59(val, _values, result)
- result = OpNode.new(val[1], val[0], val[2])
+ result = OpNode.new(val[1], val[0], nil, true)
result
end
.,.,
@@ -1660,7 +1678,7 @@ module_eval(<<'.,.,', 'grammar.y', 154)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 156)
+module_eval(<<'.,.,', 'grammar.y', 155)
def _reduce_62(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1674,7 +1692,7 @@ module_eval(<<'.,.,', 'grammar.y', 157)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 159)
+module_eval(<<'.,.,', 'grammar.y', 158)
def _reduce_64(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1695,7 +1713,7 @@ module_eval(<<'.,.,', 'grammar.y', 161)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 163)
+module_eval(<<'.,.,', 'grammar.y', 162)
def _reduce_67(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1716,7 +1734,7 @@ module_eval(<<'.,.,', 'grammar.y', 165)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 167)
+module_eval(<<'.,.,', 'grammar.y', 166)
def _reduce_70(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1744,7 +1762,7 @@ module_eval(<<'.,.,', 'grammar.y', 170)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 172)
+module_eval(<<'.,.,', 'grammar.y', 171)
def _reduce_74(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1772,7 +1790,7 @@ module_eval(<<'.,.,', 'grammar.y', 175)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 177)
+module_eval(<<'.,.,', 'grammar.y', 176)
def _reduce_78(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1807,7 +1825,7 @@ module_eval(<<'.,.,', 'grammar.y', 181)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 183)
+module_eval(<<'.,.,', 'grammar.y', 182)
def _reduce_83(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1863,7 +1881,7 @@ module_eval(<<'.,.,', 'grammar.y', 190)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 192)
+module_eval(<<'.,.,', 'grammar.y', 191)
def _reduce_91(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1877,74 +1895,74 @@ module_eval(<<'.,.,', 'grammar.y', 193)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 198)
+module_eval(<<'.,.,', 'grammar.y', 194)
def _reduce_93(val, _values, result)
- result = ExistenceNode.new(val[0])
+ result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 204)
+module_eval(<<'.,.,', 'grammar.y', 199)
def _reduce_94(val, _values, result)
- result = CodeNode.new(val[1], val[4], val[3])
+ result = ExistenceNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 205)
def _reduce_95(val, _values, result)
- result = CodeNode.new([], val[1], val[0])
+ result = CodeNode.new(val[1], val[4], val[3])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 210)
+module_eval(<<'.,.,', 'grammar.y', 206)
def _reduce_96(val, _values, result)
- result = :func
+ result = CodeNode.new([], val[1], val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 211)
def _reduce_97(val, _values, result)
- result = :boundfunc
+ result = :func
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 216)
+module_eval(<<'.,.,', 'grammar.y', 212)
def _reduce_98(val, _values, result)
- result = val
+ result = :boundfunc
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 217)
def _reduce_99(val, _values, result)
+ result = val
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 218)
+ def _reduce_100(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
-# reduce 100 omitted
+# reduce 101 omitted
-module_eval(<<'.,.,', 'grammar.y', 223)
- def _reduce_101(val, _values, result)
- result = SplatNode.new(val[0])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 228)
+module_eval(<<'.,.,', 'grammar.y', 224)
def _reduce_102(val, _values, result)
result = SplatNode.new(val[0])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 233)
+module_eval(<<'.,.,', 'grammar.y', 229)
def _reduce_103(val, _values, result)
- result = ValueNode.new(val[0])
+ result = SplatNode.new(val[0])
result
end
.,.,
@@ -1986,84 +2004,84 @@ module_eval(<<'.,.,', 'grammar.y', 238)
module_eval(<<'.,.,', 'grammar.y', 239)
def _reduce_109(val, _values, result)
- result = val[0] << val[1]
+ result = ValueNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 240)
def _reduce_110(val, _values, result)
- result = ValueNode.new(val[0], [val[1]])
+ result = val[0] << val[1]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 245)
+module_eval(<<'.,.,', 'grammar.y', 241)
def _reduce_111(val, _values, result)
- result = AccessorNode.new(val[1])
+ result = ValueNode.new(val[0], [val[1]])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 246)
def _reduce_112(val, _values, result)
- result = AccessorNode.new(val[1], :prototype)
+ result = AccessorNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 247)
def _reduce_113(val, _values, result)
- result = AccessorNode.new(val[1], :soak)
+ result = AccessorNode.new(val[1], :prototype)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 248)
def _reduce_114(val, _values, result)
- result = val[0]
+ result = AccessorNode.new(val[1], :soak)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 249)
def _reduce_115(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 250)
+ def _reduce_116(val, _values, result)
result = SliceNode.new(val[0])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 254)
- def _reduce_116(val, _values, result)
+module_eval(<<'.,.,', 'grammar.y', 255)
+ def _reduce_117(val, _values, result)
result = IndexNode.new(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 259)
- def _reduce_117(val, _values, result)
- result = ObjectNode.new(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 264)
+module_eval(<<'.,.,', 'grammar.y', 260)
def _reduce_118(val, _values, result)
- result = []
+ result = ObjectNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 265)
def _reduce_119(val, _values, result)
- result = val
+ result = []
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 266)
def _reduce_120(val, _values, result)
- result = val[0] << val[2]
+ result = val
result
end
.,.,
@@ -2075,51 +2093,51 @@ module_eval(<<'.,.,', 'grammar.y', 267)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 269)
+module_eval(<<'.,.,', 'grammar.y', 268)
def _reduce_122(val, _values, result)
- result = val[0] << val[3]
+ result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 270)
def _reduce_123(val, _values, result)
- result = val[1]
+ result = val[0] << val[3]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 275)
+module_eval(<<'.,.,', 'grammar.y', 271)
def _reduce_124(val, _values, result)
- result = val[0]
+ result = val[1]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 276)
def _reduce_125(val, _values, result)
- result = val[1].new_instance
+ result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 277)
def _reduce_126(val, _values, result)
+ result = val[1].new_instance
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 278)
+ def _reduce_127(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 282)
- def _reduce_127(val, _values, result)
- result = ExtendsNode.new(val[0], val[2])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 287)
+module_eval(<<'.,.,', 'grammar.y', 283)
def _reduce_128(val, _values, result)
- result = CallNode.new(val[0], val[1])
+ result = ExtendsNode.new(val[0], val[2])
result
end
.,.,
@@ -2131,365 +2149,372 @@ module_eval(<<'.,.,', 'grammar.y', 288)
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 293)
+module_eval(<<'.,.,', 'grammar.y', 289)
def _reduce_130(val, _values, result)
+ result = CallNode.new(val[0], val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 294)
+ def _reduce_131(val, _values, result)
result = val[1]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 299)
- def _reduce_131(val, _values, result)
+ def _reduce_132(val, _values, result)
result = CallNode.new(Value.new('super'), val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 305)
- def _reduce_132(val, _values, result)
+ def _reduce_133(val, _values, result)
result = RangeNode.new(val[1], val[4])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 307)
- def _reduce_133(val, _values, result)
+ def _reduce_134(val, _values, result)
result = RangeNode.new(val[1], val[5], true)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 313)
- def _reduce_134(val, _values, result)
+ def _reduce_135(val, _values, result)
result = RangeNode.new(val[1], val[4])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 315)
- def _reduce_135(val, _values, result)
+ def _reduce_136(val, _values, result)
result = RangeNode.new(val[1], val[5], true)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 320)
- def _reduce_136(val, _values, result)
+ def _reduce_137(val, _values, result)
result = ArrayNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 325)
- def _reduce_137(val, _values, result)
+ def _reduce_138(val, _values, result)
result = []
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 326)
- def _reduce_138(val, _values, result)
+ def _reduce_139(val, _values, result)
result = val
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 327)
- def _reduce_139(val, _values, result)
+ def _reduce_140(val, _values, result)
result = [val[1]]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 328)
- def _reduce_140(val, _values, result)
- result = val[0] << val[2]
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 329)
def _reduce_141(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 330)
+module_eval(<<'.,.,', 'grammar.y', 329)
def _reduce_142(val, _values, result)
- result = val[0] << val[3]
+ result = val[0] << val[2]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 331)
+module_eval(<<'.,.,', 'grammar.y', 330)
def _reduce_143(val, _values, result)
result = val[0] << val[3]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 332)
+module_eval(<<'.,.,', 'grammar.y', 331)
def _reduce_144(val, _values, result)
- result = val[0]
+ result = val[0] << val[3]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 337)
+module_eval(<<'.,.,', 'grammar.y', 332)
def _reduce_145(val, _values, result)
result = val[0]
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 338)
+module_eval(<<'.,.,', 'grammar.y', 337)
def _reduce_146(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 338)
+ def _reduce_147(val, _values, result)
result = ([val[0]] << val[2]).flatten
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 343)
- def _reduce_147(val, _values, result)
+ def _reduce_148(val, _values, result)
result = TryNode.new(val[1], val[2][0], val[2][1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 344)
- def _reduce_148(val, _values, result)
+ def _reduce_149(val, _values, result)
result = TryNode.new(val[1], nil, nil, val[3])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 346)
- def _reduce_149(val, _values, result)
+ def _reduce_150(val, _values, result)
result = TryNode.new(val[1], val[2][0], val[2][1], val[4])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 351)
- def _reduce_150(val, _values, result)
+ def _reduce_151(val, _values, result)
result = [val[1], val[2]]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 356)
- def _reduce_151(val, _values, result)
+ def _reduce_152(val, _values, result)
result = ThrowNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 361)
- def _reduce_152(val, _values, result)
+ def _reduce_153(val, _values, result)
result = ParentheticalNode.new(val[1], val[0].line)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 366)
- def _reduce_153(val, _values, result)
+ def _reduce_154(val, _values, result)
result = WhileNode.new(val[1], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 367)
- def _reduce_154(val, _values, result)
+ def _reduce_155(val, _values, result)
result = WhileNode.new(val[1], nil)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 368)
- def _reduce_155(val, _values, result)
+ def _reduce_156(val, _values, result)
result = WhileNode.new(val[2], Expressions.wrap(val[0]))
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 375)
- def _reduce_156(val, _values, result)
+ def _reduce_157(val, _values, result)
result = ForNode.new(val[0], val[3], val[2][0], val[2][1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 376)
- def _reduce_157(val, _values, result)
+ def _reduce_158(val, _values, result)
result = ForNode.new(val[3], val[2], val[1][0], val[1][1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 381)
- def _reduce_158(val, _values, result)
+ def _reduce_159(val, _values, result)
result = val
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 382)
- def _reduce_159(val, _values, result)
+ def _reduce_160(val, _values, result)
result = [val[0], val[2]]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 387)
- def _reduce_160(val, _values, result)
+ def _reduce_161(val, _values, result)
result = {:source => val[1]}
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 388)
- def _reduce_161(val, _values, result)
+ def _reduce_162(val, _values, result)
result = {:source => val[1], :object => true}
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 390)
- def _reduce_162(val, _values, result)
+ def _reduce_163(val, _values, result)
result = val[0].merge(:filter => val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 392)
- def _reduce_163(val, _values, result)
+ def _reduce_164(val, _values, result)
result = val[0].merge(:step => val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 398)
- def _reduce_164(val, _values, result)
+ def _reduce_165(val, _values, result)
result = val[3].rewrite_condition(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 400)
- def _reduce_165(val, _values, result)
+ def _reduce_166(val, _values, result)
result = val[3].rewrite_condition(val[1]).add_else(val[5])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 405)
- def _reduce_166(val, _values, result)
+ def _reduce_167(val, _values, result)
result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 406)
- def _reduce_167(val, _values, result)
+ def _reduce_168(val, _values, result)
result = val[0] << val[1]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 411)
- def _reduce_168(val, _values, result)
- result = IfNode.new(val[1], val[2], nil, {:statement => true})
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 413)
def _reduce_169(val, _values, result)
result = IfNode.new(val[1], val[2], nil, {:statement => true})
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 414)
+module_eval(<<'.,.,', 'grammar.y', 413)
def _reduce_170(val, _values, result)
+ result = IfNode.new(val[1], val[2], nil, {:statement => true})
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 414)
+ def _reduce_171(val, _values, result)
result = val[2].add_comment(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 419)
- def _reduce_171(val, _values, result)
+ def _reduce_172(val, _values, result)
result = IfNode.new(val[1], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 424)
- def _reduce_172(val, _values, result)
+ def _reduce_173(val, _values, result)
result = val[1].force_statement
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 429)
- def _reduce_173(val, _values, result)
+ def _reduce_174(val, _values, result)
result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 430)
- def _reduce_174(val, _values, result)
+ def _reduce_175(val, _values, result)
result = val[0].add_else(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 435)
- def _reduce_175(val, _values, result)
+ def _reduce_176(val, _values, result)
result = nil
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 436)
- def _reduce_176(val, _values, result)
+ def _reduce_177(val, _values, result)
result = val[1]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 441)
- def _reduce_177(val, _values, result)
+ def _reduce_178(val, _values, result)
result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 442)
- def _reduce_178(val, _values, result)
- result = val[0].add_else(val[1])
- result
- end
-.,.,
-
-module_eval(<<'.,.,', 'grammar.y', 447)
def _reduce_179(val, _values, result)
result = val[0].add_else(val[1])
result
end
.,.,
-module_eval(<<'.,.,', 'grammar.y', 448)
+module_eval(<<'.,.,', 'grammar.y', 447)
def _reduce_180(val, _values, result)
+ result = val[0].add_else(val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.y', 448)
+ def _reduce_181(val, _values, result)
result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true})
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 449)
- def _reduce_181(val, _values, result)
+ def _reduce_182(val, _values, result)
result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true, :invert => true})
result
end