shithub: purgatorio

Download patch

ref: 06fac9885c8349fe2e06ffdd36817f65adc0fd66
parent: d3d1b3b47ff80f451c6c9f8b7f1262fef6545f2b
author: henesy <devnull@localhost>
date: Sat Feb 29 11:34:34 EST 2020

add dangling files

--- a/emu/Linux/emu.c
+++ b/emu/Linux/emu.c
@@ -6,7 +6,7 @@
 
 #include "emu.root.h"
 
-ulong ndevs = 28;
+ulong ndevs = 29;
 
 extern Dev rootdevtab;
 extern Dev consdevtab;
@@ -22,6 +22,7 @@
 extern Dev fsdevtab;
 extern Dev cmddevtab;
 extern Dev indirdevtab;
+extern Dev dsdevtab;
 extern Dev drawdevtab;
 extern Dev pointerdevtab;
 extern Dev snarfdevtab;
@@ -43,6 +44,7 @@
 	&fsdevtab,
 	&cmddevtab,
 	&indirdevtab,
+	&dsdevtab,
 	&drawdevtab,
 	&pointerdevtab,
 	&snarfdevtab,
--- a/limbo/y.tab.c
+++ b/limbo/y.tab.c
@@ -100,7 +100,7 @@
 #define YYEOFCODE 1
 #define YYERRCODE 2
 
-#line	1596	"limbo.y"
+#line	1600	"limbo.y"
 
 
 static	char	*mkfileext(char*, char*, char*);
@@ -513,7 +513,7 @@
 	50, 62,
 	54, 88,
 	99, 62,
-	-2, 250,
+	-2, 251,
 -1, 209,
 	59, 29,
 	71, 29,
@@ -521,15 +521,15 @@
 -1, 228,
 	1, 2,
 	-2, 0,
--1, 271,
+-1, 272,
 	50, 176,
-	-2, 255,
--1, 305,
+	-2, 256,
+-1, 306,
 	59, 41,
 	71, 41,
 	91, 41,
 	-2, 0,
--1, 307,
+-1, 308,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -538,11 +538,11 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 376,
+-1, 377,
 	50, 62,
 	99, 62,
-	-2, 250,
--1, 377,
+	-2, 251,
+-1, 378,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -551,15 +551,15 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 383,
+-1, 384,
 	53, 71,
 	54, 71,
 	-2, 110,
--1, 385,
+-1, 386,
 	53, 72,
 	54, 72,
 	-2, 112,
--1, 417,
+-1, 418,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -568,7 +568,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 424,
+-1, 425,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -577,19 +577,19 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 439,
+-1, 440,
 	53, 71,
 	54, 71,
 	-2, 111,
--1, 440,
+-1, 441,
 	53, 72,
 	54, 72,
 	-2, 113,
--1, 448,
-	71, 277,
-	99, 277,
+-1, 449,
+	71, 278,
+	99, 278,
 	-2, 163,
--1, 465,
+-1, 466,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -598,23 +598,23 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 482,
+-1, 483,
 	50, 126,
 	99, 126,
-	-2, 239,
--1, 487,
-	71, 274,
+	-2, 240,
+-1, 488,
+	71, 275,
 	-2, 0,
--1, 499,
+-1, 500,
 	59, 47,
 	71, 47,
 	-2, 0,
--1, 504,
+-1, 505,
 	59, 41,
 	71, 41,
 	91, 41,
 	-2, 0,
--1, 510,
+-1, 511,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -623,7 +623,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 544,
+-1, 545,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -632,7 +632,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 550,
+-1, 551,
 	71, 154,
 	72, 175,
 	85, 150,
@@ -642,11 +642,11 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 558,
+-1, 559,
 	56, 59,
 	62, 59,
 	-2, 62,
--1, 564,
+-1, 565,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -655,7 +655,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 569,
+-1, 570,
 	71, 157,
 	72, 175,
 	85, 150,
@@ -665,10 +665,10 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 573,
+-1, 574,
 	72, 176,
 	-2, 163,
--1, 592,
+-1, 593,
 	71, 160,
 	72, 175,
 	85, 150,
@@ -678,7 +678,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 598,
+-1, 599,
 	71, 168,
 	72, 175,
 	85, 150,
@@ -688,7 +688,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 602,
+-1, 603,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -697,362 +697,365 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 605,
+-1, 606,
 	50, 62,
 	56, 171,
 	62, 171,
 	99, 62,
-	-2, 250,
+	-2, 251,
 };
-#define	YYNPROD	282
+#define	YYNPROD	283
 #define	YYPRIVATE 57344
-#define	YYLAST	2674
+#define	YYLAST	2707
 short	yyact[] =
 {
- 375, 587, 449, 360, 501, 380, 408, 307, 365, 311,
- 355, 447, 428, 295, 445, 184, 268,  15,  83,   8,
- 101,  49,  82,   4, 317,  12,  42,  23,  48,  77,
-  78,  79, 109,  35, 196,  51, 540, 487, 359,   6,
- 482,   3,   6, 396, 455, 454, 361,  14, 346,  21,
-  14, 378, 349, 290, 419, 283, 117, 223, 327,  31,
- 284, 224, 221,  46, 461, 111, 104,  11, 513, 595,
-  40, 208, 597, 185, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175,  43, 116, 581,
- 181, 182, 183,  71,  10, 284, 203,  10, 206, 284,
-  92, 345, 345, 418, 207, 345,  32, 113,  32, 543,
- 118, 291, 291,  44, 284, 118, 424, 423, 422, 481,
- 426, 425, 427, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 238, 239, 240, 509, 242, 243, 244, 245,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 257, 258, 259, 260, 261, 262, 263, 185,   6,
- 200, 271, 228, 479, 478, 305,  22,  14,  22, 269,
- 477, 210, 434, 265, 216, 192, 193, 277, 561,  22,
- 406, 282, 306, 420, 192, 193, 226, 285, 405, 205,
- 403, 350, 286,  93, 555, 267, 215,  47, 411,  26,
- 411,  25,  24, 508, 309, 308, 300, 591, 568,  63,
- 553, 549, 227,   5,  10, 416, 415, 414, 192, 193,
-  75,  74,  69,  68,  73, 532,  18,  54,  55,  62,
-  60,  61,  64, 521, 294, 486, 213, 531, 192, 193,
- 464, 310, 323, 302,  65,  66,  67, 111, 320, 395,
-  19, 379,  23, 562, 315, 576,  86, 204, 296, 504,
-  76, 191, 494,  84, 313, 475,  89,   6, 463, 394,
-  17, 357, 192, 193,  18,  14,  91,  81, 192, 193,
- 280, 185,  43, 217,   2, 337,  13, 444, 209, 113,
-  80, 526,  19,  96, 575, 181, 335, 491,  87,  88,
-  85, 333, 314, 600, 212, 192, 193,  19,  44, 610,
- 192, 193,  45, 107,  76, 344,  18, 377,  19, 489,
- 483, 354,  10, 353, 298, 608,  86, 114, 389, 190,
-  33, 115, 484,  84, 214, 387,  89, 385, 114, 398,
- 535, 383, 115, 194, 388, 197,  91,  81, 321, 560,
- 352, 279, 322, 202,  45, 399, 400,   5,  18, 600,
- 381, 503, 536, 495, 218, 599, 496, 412,  87,  88,
-  85, 417, 432, 558, 489, 185, 539, 489, 500, 431,
- 596, 433, 430, 593,  76, 489, 489, 437, 102,  86,
- 435, 584, 570,  22,  19, 448,  84, 337, 182,  89,
- 489,  72, 410, 440, 313, 489, 551, 439, 590,  91,
-  81, 490, 333, 476,  17, 429,  70, 288,  18,  75,
-  74,  45, 469,  73, 465,  18, 474, 438, 472, 496,
-  13,  87,  88,  85, 287, 503, 266, 156, 281, 119,
- 589, 103,  86, 192, 193, 448,  39,  76,  90,  84,
- 158,  90,  89, 506, 289, 483, 564, 292, 293, 485,
- 493,  36,  91,  81, 514, 588, 462, 197, 185, 413,
- 404, 473, 167, 280, 326, 222, 519, 105, 518, 511,
- 512, 316, 319, 507,  87,  88,  85,  86, 448, 523,
- 519, 525, 524,  34,  84, 397, 529,  89, 176, 522,
-  76,  90, 328,  90, 528, 533, 393,  91,  81, 180,
- 541,  90, 332, 179, 542, 537, 519, 329, 548, 176,
- 199, 552,  90, 177, 198, 550, 195, 402, 178,  87,
-  88,  85, 157, 442, 160, 330, 161, 162, 556, 559,
- 437, 313, 441, 325, 225,  76, 159, 158, 566, 342,
- 343, 573, 565, 571, 567, 569, 347, 473, 137, 138,
- 139, 136, 134, 519, 341, 579,  41, 201, 580, 602,
- 573, 582, 583, 544, 382, 324, 220, 386, 219, 545,
- 557, 471, 470, 467, 410, 421, 592, 391, 392,  39,
- 594, 473, 186, 573, 598, 601,  90, 136, 134, 520,
- 603,  19, 607, 241, 401,  29, 609,  27, 356, 534,
- 304, 473,  90, 364, 120,  90,  90,  30,  90,  28,
-   1, 460, 270, 272,  86,  90, 312, 182, 167, 538,
- 578,  84, 577, 409,  89, 499, 498, 586, 585,  90,
-  90,  16, 407, 194,  91,  81, 303, 351,   9, 473,
- 547, 546, 443, 517,  50, 516, 452, 211,   7, 446,
- 334, 456, 264, 457, 297, 502,  87,  88,  85,  52,
-  53,  56,  96, 367, 108,  59,  72, 106, 468, 112,
-  57,  58,  76,  63, 143, 142, 140, 141, 137, 138,
- 139, 136, 134,  90,  75,  74,  69, 273,  73, 110,
-  18,  54,  55,  62,  60,  61,  64,  20,  90,  37,
-  38,   0,   0,   0,  90,   0, 276, 492, 274, 275,
-  67, 497, 140, 141, 137, 138, 139, 136, 134,   0,
-   0,   0,   0,   0,  76,  90,   0,   0,   0,   0,
-   0,   0, 497,   0,   0,  90,  90,   0,   0,   0,
-   0,   0,   0,   0,   0, 530,   0,   0,  90,  90,
-   0,   0,  90, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 135,   0, 155, 154, 153,
- 152, 151, 150, 148, 149, 144, 145, 146, 147, 143,
- 142, 140, 141, 137, 138, 139, 136, 134,   0, 339,
-   0,  90,   0,   0,   0,   0,  86,   0,   0,   0,
-  90,   0,   0,  84,  90,   0,  89,   0,  98,  90,
-   0,  90,   0,   0,   0, 362,  91,  81,   0,   0,
-  90,   0,   0,   0,   0,   0,  90,   0,   0,   0,
-  50,  95,   0,  97,  94,  99,   0, 100,  87,  88,
-  85,   0,   0,   0,   0,  52,  53,  56, 338,   0,
-   0,  59, 374,   0,  76,   0,  57,  58,   0,  63,
- 366,   0,   0,   0,   0,  90,   0,   0,   0,  90,
-  75,  74, 376,  68,  73,   0,  18,  54,  55,  62,
-  60,  61,  64, 363, 505, 362,   0,   0,  13,   0,
-  90,   0,   0,   0,  65,  66,  67,   0,   0,   0,
-  50, 368,   0,  90,   0, 369, 370, 373, 371, 372,
-  76,   0,   0,   0,   0,  52,  53,  56,   0,   0,
-   0,  59, 374,   0,   0,   0,  57,  58,   0,  63,
- 366,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-  75,  74, 376,  68,  73,   0,  18,  54,  55,  62,
-  60,  61,  64, 363, 466, 362,   0,   0,  13,   0,
-   0,   0,   0,   0,  65,  66,  67,   0,   0,   0,
-  50, 368,   0,   0,   0, 369, 370, 373, 371, 372,
-  76,   0,   0,   0,   0,  52,  53,  56,   0,   0,
-   0,  59, 374,   0,   0,   0,  57,  58,   0,  63,
- 366,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-  75,  74, 376,  68,  73,   0,  18,  54,  55,  62,
-  60,  61,  64, 363, 436, 362,   0,   0,  13,   0,
-   0,   0,   0,   0,  65,  66,  67,   0,   0,   0,
-  50, 368,   0,   0,   0, 369, 370, 373, 371, 372,
-  76,   0,   0,   0,   0,  52,  53,  56,   0,   0,
-   0,  59, 374,   0,   0,   0,  57,  58,   0,  63,
- 366,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-  75,  74, 376,  68,  73,   0,  18,  54,  55,  62,
-  60,  61,  64, 363, 358, 604,   0,   0,  13,   0,
-   0,   0,   0,   0,  65,  66,  67,   0,   0,   0,
-  50, 368,   0,   0,   0, 369, 370, 373, 371, 372,
-  76,   0,   0,   0,   0,  52,  53, 606,   0,   0,
-   0,  59, 374,   0,   0,   0,  57,  58,   0,  63,
- 366,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-  75,  74, 605,  68,  73,   0,  18,  54,  55,  62,
-  60,  61,  64, 363, 572,   0,   0,   0,  13,   0,
-   0,   0,   0,   0,  65,  66,  67,   0,   0,  50,
-   0, 368,   0,   0,   0, 369, 370, 373, 371, 372,
-  76,   0,   0,   0,  52,  53, 450,   0,   0,   0,
-  59, 374,   0,   0,   0,  57,  58,   0,  63, 366,
-   0,   0,   0,   0,   0,   0,   0,   0,   0,  75,
-  74, 376,  68,  73,   0,  18,  54,  55,  62,  60,
-  61,  64, 363, 362,   0,   0,   0,  13,   0,   0,
-   0,   0,   0,  65,  66,  67,   0,   0,  50,   0,
- 368,   0,   0,   0, 369, 370, 373, 371, 372,  76,
-   0,   0,   0,  52,  53,  56,   0,   0,   0,  59,
- 374,   0,   0,   0,  57,  58,   0,  63, 366,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,  75,  74,
- 376,  68,  73,   0,  18,  54,  55,  62,  60,  61,
-  64, 363, 451,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,  65,  66,  67,   0,   0,  50,   0, 368,
-   0,   0,   0, 369, 370, 373, 371, 372,  76,   0,
-   0,   0,  52,  53, 450,  86,   0,   0,  59,  72,
-   0,   0,  84,  57,  58,  89,  63,   0,   0,   0,
-   0,   0,   0,   0,   0,  91,  81,  75,  74,  69,
-  68,  73,   0,  18,  54,  55,  62,  60,  61,  64,
-   0,   0,   0,  50,   0,   0,   0,  87,  88,  85,
- 318,  65,  66,  67,   0,   0,   0,   0,  52,  53,
-  56,   0,   0,  76,  59,  72,   0,  76, 278,  57,
-  58,   0,  63,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,  75,  74,  69,  68,  73,   0,  18,
-  54,  55,  62,  60,  61,  64,   0,   0,  50,   0,
+ 376, 588, 450, 361, 502, 381, 409, 308, 366, 312,
+ 356, 448, 446, 184,  83,  82, 429, 296, 269,  15,
+   8,  49,   4, 101, 318,  12,  23, 109,  48,  77,
+  78,  79, 196,  35,  51,  42, 541, 488, 360,   6,
+ 397,   3,   6, 456, 483, 379, 362,  14, 455,  21,
+  14, 350, 420, 291, 347, 284, 117, 223,  31, 328,
+ 285, 224, 221,  46, 462, 111, 425, 424, 423,  11,
+ 427, 426, 428, 185, 163, 164, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 104, 116,  43,
+ 181, 182, 183,  71,  10, 285, 203,  10, 206,  40,
+ 346, 419,  92, 285, 118, 346,  32,  32, 514, 113,
+ 292, 346, 292,  44, 285, 118, 417, 416, 415, 596,
+ 582, 544, 482, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 242, 243, 244, 245, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264, 185,   6,
+ 480, 272, 228, 306, 192, 193,  22,  14, 208, 270,
+ 479, 266,  22, 478, 192, 193, 435, 278, 562, 598,
+ 307, 283, 421, 556, 407, 563, 406, 286, 226, 200,
+ 192, 193, 287, 532, 268,  86, 215, 404, 412,  22,
+ 210, 207,  84, 216, 412,  89, 301,  98,  63, 527,
+  93, 351, 227,  47,  10,  91,  81, 310, 309,  75,
+  74,  69,  68,  73,  26,  18,  54,  55,  62,  60,
+  61,  64, 460, 459, 295,  25, 100,  87,  88,  85,
+  24, 303, 324,  65,  66,  67, 592, 111, 321, 316,
+ 311,  23, 569,  76, 554, 192, 193, 550, 533,  76,
+ 510, 522, 487, 465, 314, 396, 380,   6, 505,  86,
+ 213, 205, 577,  86, 492,  14,  84, 495, 476,  89,
+  84,  98, 185,  89,  43, 464, 338, 395, 358,  91,
+  81, 113, 281,  91,  81, 336, 181, 217, 209, 322,
+ 576, 536, 334, 323,  95, 382,  97,  94,  44, 192,
+ 193,  87,  88,  85,  33,  87,  88,  85, 378, 345,
+ 192, 193,  10,  86, 355, 354,  19,  76, 509, 390,
+  84,  76, 214,  89, 386, 384, 388, 501, 212, 204,
+ 399, 280, 601,  91,  81, 484,  45, 389, 611, 561,
+  18, 353,  45,   5, 537, 504,  18, 485, 192, 193,
+ 400, 401, 559, 497,  86,  87,  88,  85, 413, 191,
+ 540,  84, 418, 433,  89,   5, 185, 299,  22, 477,
+ 432,  76, 434, 430,  91,  81, 315, 431, 438, 436,
+  19,  19, 289, 288, 504, 445, 449, 267, 338, 182,
+ 441, 440, 156, 411, 119, 314,  87,  88,  85, 103,
+  17, 114,  19, 334,  18, 115, 107,  70, 192, 193,
+  72,  19,  76, 470,   2, 466,  13, 475, 439, 473,
+ 192, 193,  17, 158, 484, 102,  18, 190,  75,  74,
+  45, 114,  73,  86,  18, 115, 449, 507,  13,  90,
+  84, 490,  90,  89, 601, 515, 490, 609, 486, 490,
+ 600, 494, 597,  91,  81, 594, 463, 591, 490, 185,
+ 490, 414, 474, 167, 585, 405, 571, 520, 490, 519,
+ 512, 513, 508, 403, 552,  87,  88,  85,  86, 449,
+ 524, 520, 526, 525, 327,  84, 222, 530,  89, 590,
+ 523,  76,  90,  39,  90, 529, 534, 490,  91,  81,
+ 105, 542,  90, 491, 565, 543, 538, 520,  36, 549,
+  34, 398, 553,  90, 589, 496, 551, 394, 497, 333,
+  87,  88,  85, 157, 330, 160, 199, 161, 162, 557,
+ 560, 438, 314, 198, 195, 178,  76, 159, 158, 567,
+ 443, 442, 574, 566, 572, 568, 570, 176, 474, 180,
+ 343, 329, 326, 179, 520, 225, 580, 342, 176, 581,
+ 297, 574, 177, 584, 140, 141, 137, 138, 139, 136,
+ 134, 558,  41, 546, 201, 411, 603, 593, 583, 545,
+ 383, 595, 474, 325, 574, 599, 602,  90, 220, 219,
+ 472, 604,  80, 608,  86,  96, 471, 610, 468, 422,
+  39,  84, 474,  90,  89, 186,  90,  90,  19,  90,
+ 136, 134, 452, 134,  91,  81,  90,  29, 182, 167,
+ 137, 138, 139, 136, 134, 521, 357,  50, 535,  30,
+  90,  90, 305, 365, 298, 120,  87,  88,  85,  27,
+ 474,   1,  52,  53, 451, 194, 461, 197,  59,  72,
+ 271,  28,  76,  57,  58, 202,  63, 143, 142, 140,
+ 141, 137, 138, 139, 136, 134, 218,  75,  74,  69,
+  68,  73, 273,  18,  54,  55,  62,  60,  61,  64,
+ 313, 539,  50, 579, 578,  90, 410, 500, 499, 587,
+ 586,  65,  66,  67,  16, 408, 304,  52,  53,  56,
+  90, 352,   9,  59,  72, 548,  90,  76,  57,  58,
+ 547,  63, 518, 517, 211,   7, 447, 335, 265, 503,
+ 368, 108,  75,  74,  69, 274,  73,  90,  18,  54,
+  55,  62,  60,  61,  64, 106, 112,  90,  90, 110,
+ 282,  20,  37,  38, 277,  86, 275, 276,  67,   0,
+  90,  90,  84,   0,  90,  89, 290,   0,   0, 293,
+ 294,   0,  76,   0,   0,  91,  81,   0,   0, 197,
+   0,   0,   0,   0,   0,   0, 281,   0,   0,   0,
+   0,   0,   0, 317, 320,   0,   0,  87,  88,  85,
+   0,   0,   0,  90,   0,   0,   0,   0,  52,  53,
+  56,   0,  90,  76,  59,  72,  90,   0,   0,  57,
+  58,  90,  63,  90,   0,   0,   0,   0,   0,   0,
+   0,   0,  90,  75,  74,  69,  68,  73,  90,  18,
+  54,  55,  62,  60,  61,  64,   0,   0, 331,   0,
+   0,   0,   0,   0,  86,   0,   0,  65,  66,  67,
+   0,  84,   0, 344,  89,   0,  98,   0,   0, 348,
+   0,   0,   0,  76,  91,  81,   0,  90,   0,   0,
+   0,  90,   0,   0,   0,   0,   0,   0,   0,  95,
+ 387,  97,  94,  99,   0, 100,  87,  88,  85,   0,
+ 392, 393,  90,   0,   0,   0,   0,   0,   0,   0,
+   0,   0,  76,   0,   0,  90,   0, 402, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 135,   0, 155, 154, 153, 152, 151, 150, 148, 149,
+ 144, 145, 146, 147, 143, 142, 140, 141, 137, 138,
+ 139, 136, 134,   0, 340,   0, 194,  86,   0,   0,
+   0,  86,   0,   0,  84, 444,   0,  89,  84, 453,
+   0,  89,   0,   0, 457,   0, 458,  91,  81,   0,
+ 363,  91, 391,   0,   0,  96,   0,   0,   0,   0,
+   0, 469,   0,   0,   0,  50,   0,   0,   0,  87,
+  88,  85, 319,  87,  88,  85,   0,   0,   0,   0,
+  52,  53,  56, 339,   0,  76,  59, 375,   0,  76,
+   0,  57,  58,   0,  63, 367,   0,   0,   0,   0,
+ 493,   0,   0,   0, 498,  75,  74, 377,  68,  73,
+   0,  18,  54,  55,  62,  60,  61,  64, 364, 506,
+ 363,   0,   0,  13,   0, 498,   0,   0,   0,  65,
+  66,  67,   0,   0,   0,  50, 369,   0, 531,   0,
+ 370, 371, 374, 372, 373,  76,   0,   0,   0,   0,
+  52,  53,  56,   0,   0,   0,  59, 375,   0,   0,
+   0,  57,  58,   0,  63, 367,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,  75,  74, 377,  68,  73,
+   0,  18,  54,  55,  62,  60,  61,  64, 364, 467,
+ 363,   0,   0,  13,   0,   0,   0,   0,   0,  65,
+  66,  67,   0,   0,   0,  50, 369,   0,   0,   0,
+ 370, 371, 374, 372, 373,  76,   0,   0,   0,   0,
+  52,  53,  56,   0,   0,   0,  59, 375,   0,   0,
+   0,  57,  58,   0,  63, 367,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,  75,  74, 377,  68,  73,
+   0,  18,  54,  55,  62,  60,  61,  64, 364, 437,
+ 363,   0,   0,  13,   0,   0,   0,   0,   0,  65,
+  66,  67,   0,   0,   0,  50, 369,   0,   0,   0,
+ 370, 371, 374, 372, 373,  76,   0,   0,   0,   0,
+  52,  53,  56,   0,   0,   0,  59, 375,   0,   0,
+   0,  57,  58,   0,  63, 367,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,  75,  74, 377,  68,  73,
+   0,  18,  54,  55,  62,  60,  61,  64, 364, 359,
+ 605,   0,   0,  13,   0,   0,   0,   0,   0,  65,
+  66,  67,   0,   0,   0,  50, 369,   0,   0,   0,
+ 370, 371, 374, 372, 373,  76,   0,   0,   0,   0,
+  52,  53, 607,   0,   0,   0,  59, 375,   0,   0,
+   0,  57,  58,   0,  63, 367,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,  75,  74, 606,  68,  73,
+   0,  18,  54,  55,  62,  60,  61,  64, 364, 573,
+   0,   0,   0,  13,   0,   0,   0,   0,   0,  65,
+  66,  67,   0,   0,  50,   0, 369,   0,   0,   0,
+ 370, 371, 374, 372, 373,  76,   0,   0,   0,  52,
+  53, 451,   0,   0,   0,  59, 375,   0,   0,   0,
+  57,  58,   0,  63, 367,   0,   0,   0,   0,   0,
+   0,   0,   0,   0,  75,  74, 377,  68,  73,   0,
+  18,  54,  55,  62,  60,  61,  64, 364, 363,   0,
+   0,   0,  13,   0,   0,   0,   0,   0,  65,  66,
+  67,   0,   0,  50,   0, 369,   0,   0,   0, 370,
+ 371, 374, 372, 373,  76,   0,   0,   0,  52,  53,
+  56,   0,   0,   0,  59, 375,   0,   0,   0,  57,
+  58,   0,  63, 367,   0,   0,   0,   0,   0,   0,
+   0,   0,   0,  75,  74, 377,  68,  73,   0,  18,
+  54,  55,  62,  60,  61,  64, 364,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,  65,  66,  67,
-   0,   0,   0,  52,  53,  56,   0,   0,   0,  59,
-  72,   0,   0,  76,  57,  58,   0,  63,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,  75,  74,
-  69,  68,  73,   0,  18,  54,  55,  62,  60,  61,
-  64,   0,   0,   0,  52,  53,  56,   0,   0,   0,
-  59,  72,  65,  66,  67,  57,  58,   0,  63,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,  76,  75,
-  74,  69,  68,  73,   0,  18,  54,  55,  62,  60,
-  61,  64,   0,   0,   0,   0,   0,   0,   0,   0,
-  86,   0,   0,  65,  66,  67,   0,  84,   0,   0,
-  89,   0,  98,   0,   0,   0,   0,   0,   0,  76,
-  91,  81,   0,   0,   0,   0,   0,   0,   0,  86,
-   0,   0,   0,   0,   0,  95,  84,  97,  94,  89,
-   0,  98,  87,  88,  85,   0,   0,   0,   0,  91,
-  81,   0,   0,   0,   0,   0,   0,   0,  76,   0,
-   0,   0,   0,   0,   0,   0, 459, 458,   0,   0,
- 100,  87,  88,  85, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 135,  76, 155, 154,
- 153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
- 143, 142, 140, 141, 137, 138, 139, 136, 134, 154,
- 153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
- 143, 142, 140, 141, 137, 138, 139, 136, 134, 122,
+  50,   0,   0,   0, 369,   0,   0,   0, 370, 371,
+ 374, 372, 373,  76,   0,  52,  53,  56,   0,   0,
+   0,  59,  72,   0,   0, 279,  57,  58,   0,  63,
+   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  75,  74,  69,  68,  73,   0,  18,  54,  55,  62,
+  60,  61,  64,   0, 241,   0,   0,   0,   0,   0,
+   0,   0,   0,   0,  65,  66,  67,  50,   0,   0,
+   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  76,   0,  52,  53,  56,   0,   0,   0,  59,  72,
+   0,   0,   0,  57,  58,   0,  63,   0,   0,   0,
+   0,   0,   0,   0,   0,   0,   0,  75,  74,  69,
+  68,  73,   0,  18,  54,  55,  62,  60,  61,  64,
+   0,   0,  50,   0,   0,   0,   0,   0,   0,   0,
+   0,  65,  66,  67,   0,   0,   0,  52,  53,  56,
+   0,   0,   0,  59,  72,   0,   0,  76,  57,  58,
+   0,  63,   0,   0,   0,   0,   0,   0,   0,   0,
+   0,   0,  75,  74,  69,  68,  73,   0,  18,  54,
+  55,  62,  60,  61,  64,   0,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,   0,  65,  66,  67, 122,
  123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 563, 155, 154, 153, 152, 151, 150, 148,
+ 133, 135,  76, 155, 154, 153, 152, 151, 150, 148,
  149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
- 138, 139, 136, 134, 153, 152, 151, 150, 148, 149,
- 144, 145, 146, 147, 143, 142, 140, 141, 137, 138,
- 139, 136, 134,   0, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 135, 554, 155, 154,
+ 138, 139, 136, 134, 154, 153, 152, 151, 150, 148,
+ 149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
+ 138, 139, 136, 134, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 135, 564, 155, 154,
  153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
- 143, 142, 140, 141, 137, 138, 139, 136, 134, 151,
- 150, 148, 149, 144, 145, 146, 147, 143, 142, 140,
- 141, 137, 138, 139, 136, 134,   0,   0,   0, 122,
+ 143, 142, 140, 141, 137, 138, 139, 136, 134, 153,
+ 152, 151, 150, 148, 149, 144, 145, 146, 147, 143,
+ 142, 140, 141, 137, 138, 139, 136, 134,   0, 122,
  123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 527, 155, 154, 153, 152, 151, 150, 148,
+ 133, 135, 555, 155, 154, 153, 152, 151, 150, 148,
  149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
- 138, 139, 136, 134, 150, 148, 149, 144, 145, 146,
- 147, 143, 142, 140, 141, 137, 138, 139, 136, 134,
-   0,   0,   0,   0, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 135, 480, 155, 154,
+ 138, 139, 136, 134, 151, 150, 148, 149, 144, 145,
+ 146, 147, 143, 142, 140, 141, 137, 138, 139, 136,
+ 134,   0,   0,   0, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 135, 528, 155, 154,
  153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
- 143, 142, 140, 141, 137, 138, 139, 136, 134, 148,
- 149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
- 138, 139, 136, 134,   0,   0,   0,   0,   0, 122,
+ 143, 142, 140, 141, 137, 138, 139, 136, 134, 150,
+ 148, 149, 144, 145, 146, 147, 143, 142, 140, 141,
+ 137, 138, 139, 136, 134,   0,   0,   0,   0, 122,
  123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 348, 155, 154, 153, 152, 151, 150, 148,
+ 133, 135, 481, 155, 154, 153, 152, 151, 150, 148,
  149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
- 138, 139, 136, 134, 144, 145, 146, 147, 143, 142,
- 140, 141, 137, 138, 139, 136, 134,   0,   0,   0,
+ 138, 139, 136, 134, 148, 149, 144, 145, 146, 147,
+ 143, 142, 140, 141, 137, 138, 139, 136, 134,   0,
    0,   0,   0,   0, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 135, 340, 155, 154,
+ 128, 129, 130, 131, 132, 133, 135, 349, 155, 154,
  153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
- 143, 142, 140, 141, 137, 138, 139, 136, 134,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0, 122,
+ 143, 142, 140, 141, 137, 138, 139, 136, 134, 144,
+ 145, 146, 147, 143, 142, 140, 141, 137, 138, 139,
+ 136, 134,   0,   0,   0,   0,   0,   0,   0, 122,
  123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 301, 155, 154, 153, 152, 151, 150, 148,
+ 133, 135, 341, 155, 154, 153, 152, 151, 150, 148,
  149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
  138, 139, 136, 134,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 135, 299, 155, 154,
+ 128, 129, 130, 131, 132, 133, 135, 302, 155, 154,
  153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
  143, 142, 140, 141, 137, 138, 139, 136, 134,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0, 122,
  123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 189, 155, 154, 153, 152, 151, 150, 148,
+ 133, 135, 300, 155, 154, 153, 152, 151, 150, 148,
  149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
  138, 139, 136, 134,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 135, 188, 155, 154,
+ 128, 129, 130, 131, 132, 133, 135, 189, 155, 154,
  153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
  143, 142, 140, 141, 137, 138, 139, 136, 134,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0, 122,
  123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 187, 155, 154, 153, 152, 151, 150, 148,
+ 133, 135, 188, 155, 154, 153, 152, 151, 150, 148,
  149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
- 138, 139, 136, 134,   0,  86,   0,   0,   0,  86,
-   0,   0,  84,  86,   0,  89,  84,   0,   0,  89,
- 384,   0,   0,  89,   0,  91,  81,   0,   0,  91,
- 390,   0,   0,  91,  81,   0,   0, 121,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,  87,  88,  85,
-   0,  87,  88,  85,   0,  87,  88,  85,   0,   0,
-   0,   0,   0,  76,   0,   0,   0,  76,   0,   0,
-   0,  76, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 135,   0, 155, 154, 153, 152,
- 151, 150, 148, 149, 144, 145, 146, 147, 143, 142,
- 140, 141, 137, 138, 139, 136, 134,   0,   0,   0,
+ 138, 139, 136, 134,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 135, 574, 155,
+   0,   0,   0,   0, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 135, 187, 155, 154,
+ 153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
+ 143, 142, 140, 141, 137, 138, 139, 136, 134,   0,
+  86,   0,   0,   0,   0,   0,   0, 385,   0,   0,
+  89,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  91,  81,   0,   0,   0,   0,   0,   0,   0,   0,
+   0,   0, 121,   0,   0,   0,   0,   0,   0,   0,
+   0,   0,  87,  88,  85, 122, 123, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 135,  76, 155,
  154, 153, 152, 151, 150, 148, 149, 144, 145, 146,
  147, 143, 142, 140, 141, 137, 138, 139, 136, 134,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0, 122, 123,
  124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 135, 515, 155, 154, 153, 152, 151, 150, 148, 149,
+ 135, 575, 155, 154, 153, 152, 151, 150, 148, 149,
  144, 145, 146, 147, 143, 142, 140, 141, 137, 138,
- 139, 136, 134,   0,   0,   0, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 135, 488,
- 155, 154, 153, 152, 151, 150, 148, 149, 144, 145,
- 146, 147, 143, 142, 140, 141, 137, 138, 139, 136,
- 134,   0,   0,   0, 336, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 135,   0, 155,
- 154, 153, 152, 151, 150, 148, 149, 144, 145, 146,
- 147, 143, 142, 140, 141, 137, 138, 139, 136, 134,
-   0,   0,   0, 331, 122, 123, 124, 125, 126, 127,
+ 139, 136, 134,   0,   0,   0,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+   0, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 135, 516, 155, 154, 153, 152, 151,
+ 150, 148, 149, 144, 145, 146, 147, 143, 142, 140,
+ 141, 137, 138, 139, 136, 134,   0,   0,   0, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 135, 489, 155, 154, 153, 152, 151, 150, 148,
+ 149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
+ 138, 139, 136, 134,   0,   0,   0, 337, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 135,   0, 155, 154, 153, 152, 151, 150, 148, 149,
+ 144, 145, 146, 147, 143, 142, 140, 141, 137, 138,
+ 139, 136, 134,   0,   0,   0, 332, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 135,
+   0, 155, 154, 153, 152, 151, 150, 148, 149, 144,
+ 145, 146, 147, 143, 142, 140, 141, 137, 138, 139,
+ 136, 134,   0, 511, 122, 123, 124, 125, 126, 127,
  128, 129, 130, 131, 132, 133, 135,   0, 155, 154,
  153, 152, 151, 150, 148, 149, 144, 145, 146, 147,
  143, 142, 140, 141, 137, 138, 139, 136, 134,   0,
- 510, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 454, 122, 123, 124, 125, 126, 127, 128, 129, 130,
  131, 132, 133, 135,   0, 155, 154, 153, 152, 151,
  150, 148, 149, 144, 145, 146, 147, 143, 142, 140,
- 141, 137, 138, 139, 136, 134,   0, 453, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 135,   0, 155, 154, 153, 152, 151, 150, 148, 149,
- 144, 145, 146, 147, 143, 142, 140, 141, 137, 138,
- 139, 136, 134, 155, 154, 153, 152, 151, 150, 148,
- 149, 144, 145, 146, 147, 143, 142, 140, 141, 137,
- 138, 139, 136, 134
+ 141, 137, 138, 139, 136, 134, 155, 154, 153, 152,
+ 151, 150, 148, 149, 144, 145, 146, 147, 143, 142,
+ 140, 141, 137, 138, 139, 136, 134
 };
 short	yypact[] =
 {
- 211,-1000, 334, 355,-1000, 130,-1000,-1000, 129, 127,
- 603, 601,   9, 269, 443,-1000, 407, 525,-1000, 253,
- -36, 125,-1000,-1000,-1000,-1000,-1000,1421,1421,1421,
-1421,2216, 562, 121, 767, 336, 382, -21, 427, 279,
--1000, 334,  16,-1000,-1000,-1000, 380,-1000,2215,-1000,
- 378, 493,1462,1462,1462,1462,1462,1462,1462,1462,
-1462,1462,1462,1462,1462, 478, 483, 468,1462, 163,
-1462,-1000,1421,-1000,-1000,-1000, 553,2160,2105,2050,
- 257,-1000,-1000,-1000,2216, 481,2216, 479, 475, 525,
--1000, 526,-1000,-1000,2216,1421, 185,1421,  32, 218,
- 525, 234, 295, 525, 213,2216, 538, 536, -37,-1000,
- 425,   7, -38,-1000,-1000,-1000, 502,-1000, 253,-1000,
- 355,-1000,1421,1421,1421,1421,1421,1421,1421,1421,
-1421,1421,1421,1421, 599,1421,1421,1421,1421,1421,
-1421,1421,1421,1421,1421,1421,1421,1421,1421,1421,
-1421,1421,1421,1421,1421,1421,1421,1421, 377, 362,
- 637,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
--1000,-1000,-1000,-1000,-1000,-1000,1366, 291, 210,2216,
-1421,-1000,-1000,-1000,  15,2614,1421,-1000,-1000,-1000,
--1000,1421, 375, 358, 390,2216,  13, 390,2216,2216,
- 550, 585, 252,1995,-1000,1421,1940,-1000,2216, 608,
-  95,-1000,-1000, 134, 253,-1000,-1000, 334, 390,-1000,
--1000, 268,1306,1306, 289,-1000,-1000,-1000, 355,2614,
-2614,2614,2614,2614,2614,2614,2614,2614,2614,2614,
-2614,1421,2614, 560, 560, 560, 560, 524, 524, 690,
- 690, 654, 654, 654, 654,1898,1898,1845,1791,1737,
-1684,1684,1630,2635, 535, -39,-1000, 396, 501, 424,
- -41,2614,-1000,1462, 457, 472,2216,2501, 467,1462,
-1421, 390,2462,-1000,1421, 759,1885, 523, 508, 390,
--1000,2216, 390, 390, 336,   6, 390,2216,-1000,-1000,
-1830,-1000,  12, 120,-1000, 606, 201,1033,-1000,-1000,
-  11, 180,-1000, 298, 534,-1000, 390,-1000,2224, 390,
--1000,-1000,-1000,2614,-1000,-1000,1421, 637,2220, 403,
- 390, 461, 199,-1000, 178, -56, 450,2614,1421,-1000,
--1000, 585, 585, 390,-1000, 448,-1000, 390,-1000, 118,
--1000,-1000, 420, 116,-1000, 109,-1000, 334,-1000,-1000,
--1000, 419, 145,-1000,   4, 111, 546,  31, 356, 356,
-1421,1421,1421, 100,1421,2614, 163, 963,-1000,-1000,
- 334,-1000,-1000,-1000,2216,-1000, 390, 500, 491,2614,
-1462, 390, 390, 217,1310,-1000,1421,2216,2577,   3,
-   2, 390,2216,-1000,1530,-1000, -23,-1000,-1000,-1000,
- 416, 198, 169,1501,-1000,-1000,-1000, 893, 544,2216,
--1000,1421, 543, 542,1241,1421, 195, 354,  98,-1000,
-  92,  91,1775,  47,-1000,   0,-1000,-1000, 270,-1000,
--1000,-1000,-1000, 390,1310, 164, -62,-1000,2424, 349,
-1462,-1000, 390,-1000,-1000,-1000, 390, 225,2216,1421,
--1000, 192, 287, 376, 189, 823, 402,1421, 131,2540,
-1421,1421, -18, 414,2371,1310, 583,-1000,-1000,-1000,
--1000,-1000,-1000, 350,-1000, 162,-1000,1310,1421,1310,
-1421,-1000, 219,1720, 334,1421,2216, 165, 154, 607,
--1000, 278, 306,-1000, 606,-1000, 317,  -4,-1000,1421,
-1241,  37, 533, 540,-1000,1310, 140,-1000, 344,2424,
-1421,-1000,-1000,2614,-1000,2614,-1000,-1000, 139,1665,
- 122,-1000,-1000, 314, 302,-1000, 290, 107, 183,-1000,
--1000,1610, 408,1421,1241,1421, 137,-1000, 330,-1000,
-1172,-1000,2318,-1000,-1000,-1000, 232, 405,-1000, 193,
--1000,-1000,1310,-1000,1241,  17,-1000, 531,-1000,1172,
--1000, 329, 145,2424, 406,-1000,-1000, 136,-1000, 321,
--1000,1421,  -3, 318,-1000,   1,-1000, 303,-1000,-1000,
--1000,-1000,1172,-1000, 529,-1000,-1000,-1000,1103,-1000,
- 406, 263,1241, 247, 145, 163,1462,-1000,-1000,-1000,
--1000
+ 351,-1000, 319, 373,-1000, 168,-1000,-1000, 163, 152,
+ 645, 623,   8, 253, 470,-1000, 464, 541,-1000, 287,
+ -36, 141,-1000,-1000,-1000,-1000,-1000,1585,1585,1585,
+1585, 234, 579, 138, 815, 383, 350,   0, 460, 382,
+-1000, 319,  16,-1000,-1000,-1000, 345,-1000,2270,-1000,
+ 343, 494, 776, 776, 776, 776, 776, 776, 776, 776,
+ 776, 776, 776, 776, 776, 527, 500, 518, 776, 162,
+ 776,-1000,1585,-1000,-1000,-1000, 576,2215,2160,2105,
+ 365,-1000,-1000,-1000, 234, 499, 234, 498, 491, 541,
+-1000, 543,-1000,-1000, 234,1585, 267,1585, 129, 228,
+ 541, 268, 293, 541, 227, 234, 559, 558, -37,-1000,
+ 446,   7, -38,-1000,-1000,-1000, 523,-1000, 287,-1000,
+ 373,-1000,1585,1585,1585,1585,1585,1585,1585,1585,
+1585,1585,1585,1585,1530,1585,1585,1585,1585,1585,
+1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,
+1585,1585,1585,1585,1585,1585,1585,1585, 338, 381,
+ 675,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+-1000,-1000,-1000,-1000,-1000,-1000,1463, 281, 222, 234,
+1585,-1000,-1000,-1000,  15,2647,1585,-1000,-1000,-1000,
+-1000,1585, 334, 333, 377, 234,  13, 377, 234, 234,
+ 571, 565, 305,2050,-1000,1585,1995,-1000, 234, 640,
+  93,-1000,-1000, 147, 287,-1000,-1000, 319, 377,-1000,
+-1000, 352, 918, 918, 240,-1000,-1000,-1000, 373,2647,
+2647,2647,2647,2647,2647,2647,2647,2647,2647,2647,
+2647,1585, 585,2647, 583, 583, 583, 583, 596, 596,
+ 542, 542, 637, 637, 637, 637,1953,1953,1900,1846,
+1792,1739,1739,1685,2668, 553, -39,-1000, 379, 520,
+ 444, -40,2647,-1000, 776, 516, 489, 234,2534, 484,
+ 776,1585, 377,2495,-1000,1585, 914,1940, 526, 519,
+ 377,-1000, 234, 377, 377, 383,  12, 377, 234,-1000,
+-1000,1885,-1000,  11, 140,-1000, 634, 218,1188,-1000,
+-1000,   5, 195,-1000, 243, 550,-1000, 377,-1000,2271,
+ 377,-1000,-1000,-1000,2647,-1000,-1000,1585, 675, 922,
+ 716, 377, 482, 217,-1000, 194, -59, 476,2647,1585,
+-1000,-1000, 565, 565, 377,-1000, 404,-1000, 377,-1000,
+ 125,-1000,-1000, 425, 114,-1000, 113,-1000, 319,-1000,
+-1000,-1000, 421,  46,-1000,   2, 110, 570, -19, 324,
+ 324,1585,1585,1585, 104,1585,2647, 162,1118,-1000,
+-1000, 319,-1000,-1000,-1000, 234,-1000, 377, 509, 508,
+2647, 776, 377, 377, 325, 620,-1000,1585, 234,2610,
+   6,   1, 377, 234,-1000, 156,-1000, -23,-1000,-1000,
+-1000, 416, 215, 192, 230,-1000,-1000,-1000,1048, 569,
+ 234,-1000,1585, 567, 561,1396,1585, 208, 320, 101,
+-1000,  98,  88,1830,  50,-1000,   4,-1000,-1000, 295,
+-1000,-1000,-1000,-1000, 377, 620, 191, -62,-1000,2457,
+ 451, 776,-1000, 377,-1000,-1000,-1000, 377, 202, 234,
+1585,-1000, 207, 449, 335, 198, 978, 396,1585, 256,
+2573,1585,1585,  22, 405,2404, 620, 619,-1000,-1000,
+-1000,-1000,-1000,-1000, 284,-1000, 190,-1000, 620,1585,
+ 620,1585,-1000, 137,1775, 319,1585, 234, 121, 187,
+ 636,-1000, 239, 298,-1000, 634,-1000, 311,  -4,-1000,
+1585,1396,  49, 549, 544,-1000, 620, 186,-1000, 422,
+2457,1585,-1000,-1000,2647,-1000,2647,-1000,-1000, 183,
+1720, 111,-1000,-1000, 303, 296,-1000, 290, 107, 115,
+-1000,-1000,1665, 466,1585,1396,1585, 181,-1000, 414,
+-1000,1327,-1000,2351,-1000,-1000,-1000, 238, 384,-1000,
+ 210,-1000,-1000, 620,-1000,1396,  48,-1000, 548,-1000,
+1327,-1000, 412,  46,2457, 465,-1000,-1000, 175,-1000,
+ 403,-1000,1585,  47, 400,-1000, 108,-1000, 398,-1000,
+-1000,-1000,-1000,1327,-1000, 546,-1000,-1000,-1000,1258,
+-1000, 465, 395,1396, 286,  46, 162, 776,-1000,-1000,
+-1000,-1000
 };
 short	yypgo[] =
 {
-   0, 258, 710, 709,  33,  24, 416,  22,  18,  46,
- 707, 699, 679,  34, 677, 674,  32, 673,  12,   4,
- 665,  70,   8,   0,  21,  35,  15, 662, 660,  93,
-  25,  67,  26,  14, 659,  11,   2,  38,  41,  23,
- 658, 657,   3,   7, 655, 653, 651, 650, 648,  19,
- 647, 646, 642,  10, 641, 638, 637,   1, 636, 635,
- 633,   6,   5, 632, 630, 629,  17,  20, 626,   9,
- 623,  16, 622, 621,  13, 620, 614, 613
+   0, 570, 753, 752,  33,  24, 417,  15,  14,  46,
+ 751, 749, 746,  32, 745, 731,  27, 730,  16,   4,
+ 729,  99,   8,   0,  21,  34,  13, 728, 727,  93,
+  25,  69,  35,  12, 726,  11,   2,  38,  41,  22,
+ 725, 724,   3,   7, 723, 722, 720, 715, 712,  20,
+ 711, 706, 705,  10, 704, 700, 699,   1, 698, 697,
+ 696,   6,   5, 694, 693, 691,  19,  23, 690,   9,
+ 682,  18, 660, 656,  17, 651, 645, 643
 };
 short	yyr1[] =
 {
@@ -1077,14 +1080,14 @@
   23,  23,  23,  23,  23,  23,  23,  23,  23,  23,
   23,  23,  23,  23,  23,  23,  23,  23,  23,  23,
   23,  23,  23,  23,  23,  23,  23,  23,  23,  23,
-  23,  23,  23,  24,  24,  24,  24,  24,  24,  24,
+  23,  23,  23,  23,  24,  24,  24,  24,  24,  24,
   24,  24,  24,  24,  24,  24,  24,  24,  24,  24,
-  24,  24,  24,  24,  24,  24,  24,  25,  25,  25,
+  24,  24,  24,  24,  24,  24,  24,  24,  25,  25,
   25,  25,  25,  25,  25,  25,  25,  25,  25,  25,
-  29,  29,  31,  72,  72,  71,  71,  70,  70,  70,
-  70,  65,  65,  32,  32,  32,  32,  27,  27,  28,
-  28,  26,  26,  33,  33,  34,  34,  35,  35,  69,
-  68,  68
+  25,  29,  29,  31,  72,  72,  71,  71,  70,  70,
+  70,  70,  65,  65,  32,  32,  32,  32,  27,  27,
+  28,  28,  26,  26,  33,  33,  34,  34,  35,  35,
+  69,  68,  68
 };
 short	yyr2[] =
 {
@@ -1109,14 +1112,14 @@
    3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
    4,   3,   3,   3,   3,   3,   3,   3,   3,   3,
    3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
-   3,   3,   3,   1,   2,   2,   2,   2,   2,   2,
-   2,   2,   2,   2,   2,   2,   2,   6,   8,   7,
-   5,   3,   6,   4,   2,   2,   2,   1,   4,   3,
-   3,   3,   4,   6,   2,   2,   1,   1,   1,   6,
-   1,   1,   3,   1,   3,   1,   1,   1,   3,   3,
-   2,   1,   0,   1,   1,   3,   3,   0,   1,   1,
-   2,   1,   3,   1,   2,   1,   3,   1,   3,   2,
-   2,   4
+   3,   3,   3,   3,   1,   2,   2,   2,   2,   2,
+   2,   2,   2,   2,   2,   2,   2,   2,   6,   8,
+   7,   5,   3,   6,   4,   2,   2,   2,   1,   4,
+   3,   3,   3,   4,   6,   2,   2,   1,   1,   1,
+   6,   1,   1,   3,   1,   3,   1,   1,   1,   3,
+   3,   2,   1,   0,   1,   1,   3,   3,   0,   1,
+   1,   2,   1,   3,   1,   2,   1,   3,   1,   3,
+   2,   2,   4
 };
 short	yychk[] =
 {
@@ -1146,107 +1149,107 @@
  -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
  -23,   4, -23, -23, -23, -23, -23, -23, -23, -23,
  -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
- -23, -23, -23, -23, -27, -26,  59, -25, -71, -22,
- -72, -23, -70,  60,  81,  82,  79, -23,  42,  60,
-  70,  -1, -23,  40,  99, -23, -23,  59,  59,  -1,
-  40,  99,  -1,  -1,  -4, -74,  -1,  79,  72,  72,
- -23,  72, -13, -51,   2,  70,  87, -43,  71,  70,
- -32, -69, -68,  -9,  34, -16,  -1,  -5,  84,  -1,
-  -5,  59,  63, -23,  40,  42,  50,  99,  45,  45,
-  -1,  42,  45, -24, -28, -26,  42, -23,  99,  40,
-  72,  41,  41,  -1, -67,  99,  42,  -1,  72,  40,
-  71, -50,  -9, -49, -66, -53,   2,  70,  71, -37,
- -42,  -9,   2,  70, -77, -22,  47, -17,  88,  92,
-  93,  95,  96,  94,  39, -23,  59, -43,  40,  71,
- -62,  62,  40,  -7,  46,  -8,  -1, -22, -71, -23,
-  60,  -1,  -1,  45,  70,  71,  99,  45, -23, -74,
- -74,  -1,  79,  72,  50,  72,  71, -52, -61, -60,
-  -9,  91, -69,  50,  72,  71,  70, -43,  99,  50,
-  72,  39,  87,  86,  85,  90,  89,  91, -18,  59,
- -18, -22, -23, -22,  72, -26,  71, -61,  -9,  -7,
-  -8,  42,  42,  -1,  70, -33, -34, -35, -23, -36,
-  34,   2,  -1,  40,  42,  42,  -1,  -1,  77,  76,
- -73,  87,  50,  70,  71, -43,  71,  39,  -1, -23,
-  39,  39, -42,  -9, -23,  70,  59,  72,  72,  72,
-  72,  72,  40,  50,  62, -33,  71,  99,  55,  56,
-  62,  72,  -1, -23,  70,  76,  79,  -1, -58, -59,
-   2, -19, -20,  59,  70,  71,  51, -26,  72,   4,
-  40, -22, -22,  86,  50,  70, -44, -45, -36, -23,
-  16,  71, -35, -23, -36, -23,  72,  72, -69, -23,
-  -1,  72,  71, -62,   2,  62,  56, -53, -65,  59,
-  40, -23, -42,  72,  40,  39, -46, -47, -36,  71,
- -43,  62, -23,  71,  72,  72, -19,  -9,  59, -19,
-  59,  71,  70,  72,  48, -22, -42, -22,  71, -43,
-  62, -36,   2, -23,  70,  62,  62, -63, -64, -36,
- -42,  72,  40, -36,  62, -55, -56, -57,  59,  34,
-   2,  71, -43,  62, -22,  72,  62,  71, -43,  62,
-  56, -36,  40, -57,   2,  59,  34, -57,  62, -42,
-  62
+ -23, -23, -23, -23, -23, -27, -26,  59, -25, -71,
+ -22, -72, -23, -70,  60,  81,  82,  79, -23,  42,
+  60,  70,  -1, -23,  40,  99, -23, -23,  59,  59,
+  -1,  40,  99,  -1,  -1,  -4, -74,  -1,  79,  72,
+  72, -23,  72, -13, -51,   2,  70,  87, -43,  71,
+  70, -32, -69, -68,  -9,  34, -16,  -1,  -5,  84,
+  -1,  -5,  59,  63, -23,  40,  42,  50,  99,  45,
+  45,  -1,  42,  45, -24, -28, -26,  42, -23,  99,
+  40,  72,  41,  41,  -1, -67,  99,  42,  -1,  72,
+  40,  71, -50,  -9, -49, -66, -53,   2,  70,  71,
+ -37, -42,  -9,   2,  70, -77, -22,  47, -17,  88,
+  92,  93,  95,  96,  94,  39, -23,  59, -43,  40,
+  71, -62,  62,  40,  -7,  46,  -8,  -1, -22, -71,
+ -23,  60,  -1,  -1,  45,  70,  71,  99,  45, -23,
+ -74, -74,  -1,  79,  72,  50,  72,  71, -52, -61,
+ -60,  -9,  91, -69,  50,  72,  71,  70, -43,  99,
+  50,  72,  39,  87,  86,  85,  90,  89,  91, -18,
+  59, -18, -22, -23, -22,  72, -26,  71, -61,  -9,
+  -7,  -8,  42,  42,  -1,  70, -33, -34, -35, -23,
+ -36,  34,   2,  -1,  40,  42,  42,  -1,  -1,  77,
+  76, -73,  87,  50,  70,  71, -43,  71,  39,  -1,
+ -23,  39,  39, -42,  -9, -23,  70,  59,  72,  72,
+  72,  72,  72,  40,  50,  62, -33,  71,  99,  55,
+  56,  62,  72,  -1, -23,  70,  76,  79,  -1, -58,
+ -59,   2, -19, -20,  59,  70,  71,  51, -26,  72,
+   4,  40, -22, -22,  86,  50,  70, -44, -45, -36,
+ -23,  16,  71, -35, -23, -36, -23,  72,  72, -69,
+ -23,  -1,  72,  71, -62,   2,  62,  56, -53, -65,
+  59,  40, -23, -42,  72,  40,  39, -46, -47, -36,
+  71, -43,  62, -23,  71,  72,  72, -19,  -9,  59,
+ -19,  59,  71,  70,  72,  48, -22, -42, -22,  71,
+ -43,  62, -36,   2, -23,  70,  62,  62, -63, -64,
+ -36, -42,  72,  40, -36,  62, -55, -56, -57,  59,
+  34,   2,  71, -43,  62, -22,  72,  62,  71, -43,
+  62,  56, -36,  40, -57,   2,  59,  34, -57,  62,
+ -42,  62
 };
 short	yydef[] =
 {
    0,  -2,   0,  -2,   4,   0,   7,   8,   0,   0,
-   0,  17,   0,   0,   0,  25,   0,  -2, 251,   0,
+   0,  17,   0,   0,   0,  25,   0,  -2, 252,   0,
   61,   0,  62,   5,   6,   9,  10,   0,   0,   0,
    0,   0,   0,   0,   0, 117,   0,  95,  93,  97,
- 121,   0,   0, 263, 264, 250,   0,   1,   0, 177,
-   0, 213,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0, 250,
-   0, 237,   0, 246, 247, 248,   0,   0,   0,   0,
+ 121,   0,   0, 264, 265, 251,   0,   1,   0, 177,
+   0, 214,   0,   0,   0,   0,   0,   0,   0,   0,
+   0,   0,   0,   0,   0,   0,   0,   0,   0, 251,
+   0, 238,   0, 247, 248, 249,   0,   0,   0,   0,
    0,  70,  71,  72,   0,   0,   0,   0,   0,  88,
   81,  82,  18,  19,   0,   0,   0,   0,   0,   0,
   88,   0,   0,  88,   0,   0,   0,   0,  98,  99,
-   0,   0, 105,  17, 106, 107,   0, 252,   0,  63,
+   0,   0, 105,  17, 106, 107,   0, 253,   0,  63,
    0,  11,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0, 267,   0,   0,
- 175, 244, 245, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226,   0,   0,   0,   0,
-   0, 234, 235, 236,   0, 271,   0,  13,  12,  14,
+   0,   0,   0,   0,   0,   0,   0, 268,   0,   0,
+ 175, 245, 246, 215, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227,   0,   0,   0,   0,
+   0, 235, 236, 237,   0, 272,   0,  13,  12,  14,
   15,   0,   0,   0,  75,   0,   0,  86,   0,   0,
    0,   0,   0,   0,  22,   0,   0,  26,   0,  -2,
    0, 114, 123,   0,   0, 116, 122,   0,  94,  90,
-  91,   0,   0,   0,   0,  89, 265, 266,  -2, 178,
+  91,   0,   0,   0,   0,  89, 266, 267,  -2, 178,
  179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189,   0, 191, 193, 194, 195, 196, 197, 198, 199,
+ 189,   0, 191, 192, 194, 195, 196, 197, 198, 199,
  200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 212, 192,   0, 268, 240, 241, 253,   0,
-   0,  -2, 256, 257,   0,   0,   0,   0,   0,   0,
-   0, 231,   0, 239,   0,   0,   0,  73,  84,  76,
-  77,   0,  78,  79, 117,   0,  66,   0,  20,  21,
-   0,  24,   0,   0,  31,  -2,   0,  -2, 119, 123,
-   0,   0,  47,   0,   0, 100, 101, 102,   0, 103,
- 104, 108, 109, 190, 238, 242, 175,   0,   0,   0,
- 260,   0,   0, 233,   0, 269,   0, 272,   0,  65,
-  16,   0,   0,  87,  80,   0,  83,  67,  23,   0,
-  28,  30,   0,   0,  36,   0,  43,   0, 118, 124,
- 125,   0,   0, 123,   0,   0,   0,   0, 152, 152,
- 175,   0, 175,   0,   0, 176,  -2,  -2, 115,  96,
- 279, 280,  92,  -2,   0,  -2,   0,   0, 254, 255,
-  70, 258, 259,   0,   0, 230, 270,   0,   0,   0,
-   0,  68,   0,  27,   0,  33,  39,  42,  44,  45,
-   0,   0,   0, 151, 128, 129, 123,  -2,   0,   0,
- 134,   0,   0,   0,  -2,   0,   0,   0,   0, 153,
-   0,   0,   0,   0, 148,   0, 120,  48,   0,  -2,
-  -2, 243, 249, 227,   0,   0, 273, 275,  -2,   0,
- 165, 167, 232,  64,  74,  85,  69,   0,   0,   0,
-  37,   0,   0,   0,   0,  -2, 131,   0,   0,   0,
- 175, 175,   0,   0,   0,   0,   0, 140, 141, 142,
- 143, 144,  -2,   0, 281,   0, 229,  -2,   0,   0,
-   0,  32,   0,   0,   0,   0,   0,   0,   0,  -2,
-  54,   0,  58,  59,  -2, 130, 262,   0, 132,   0,
-  -2,   0,   0,   0, 151,   0,   0, 123,   0, 163,
-   0, 228, 276, 164, 166, 278,  34,  35,   0,   0,
-   0,  50,  51,  52,  53,  55,   0,   0,   0, 261,
- 127,   0, 135, 175,  -2, 175,   0, 123,   0, 146,
-  -2, 155,   0,  40,  46,  49,   0,   0,  -2,   0,
-  60,  38,   0, 133,  -2,   0, 138,   0, 145,  -2,
- 158,   0, 167,  -2,   0,  56,  57,   0, 123,   0,
- 136, 175,   0,   0, 156,   0, 123,   0, 171, 172,
- 174, 149,  -2, 161,   0, 139, 159, 147,  -2, 169,
-   0,   0,  -2,   0, 174,  -2, 172, 173, 162, 137,
- 170
+ 210, 211, 212, 213, 193,   0, 269, 241, 242, 254,
+   0,   0,  -2, 257, 258,   0,   0,   0,   0,   0,
+   0,   0, 232,   0, 240,   0,   0,   0,  73,  84,
+  76,  77,   0,  78,  79, 117,   0,  66,   0,  20,
+  21,   0,  24,   0,   0,  31,  -2,   0,  -2, 119,
+ 123,   0,   0,  47,   0,   0, 100, 101, 102,   0,
+ 103, 104, 108, 109, 190, 239, 243, 175,   0,   0,
+   0, 261,   0,   0, 234,   0, 270,   0, 273,   0,
+  65,  16,   0,   0,  87,  80,   0,  83,  67,  23,
+   0,  28,  30,   0,   0,  36,   0,  43,   0, 118,
+ 124, 125,   0,   0, 123,   0,   0,   0,   0, 152,
+ 152, 175,   0, 175,   0,   0, 176,  -2,  -2, 115,
+  96, 280, 281,  92,  -2,   0,  -2,   0,   0, 255,
+ 256,  70, 259, 260,   0,   0, 231, 271,   0,   0,
+   0,   0,  68,   0,  27,   0,  33,  39,  42,  44,
+  45,   0,   0,   0, 151, 128, 129, 123,  -2,   0,
+   0, 134,   0,   0,   0,  -2,   0,   0,   0,   0,
+ 153,   0,   0,   0,   0, 148,   0, 120,  48,   0,
+  -2,  -2, 244, 250, 228,   0,   0, 274, 276,  -2,
+   0, 165, 167, 233,  64,  74,  85,  69,   0,   0,
+   0,  37,   0,   0,   0,   0,  -2, 131,   0,   0,
+   0, 175, 175,   0,   0,   0,   0,   0, 140, 141,
+ 142, 143, 144,  -2,   0, 282,   0, 230,  -2,   0,
+   0,   0,  32,   0,   0,   0,   0,   0,   0,   0,
+  -2,  54,   0,  58,  59,  -2, 130, 263,   0, 132,
+   0,  -2,   0,   0,   0, 151,   0,   0, 123,   0,
+ 163,   0, 229, 277, 164, 166, 279,  34,  35,   0,
+   0,   0,  50,  51,  52,  53,  55,   0,   0,   0,
+ 262, 127,   0, 135, 175,  -2, 175,   0, 123,   0,
+ 146,  -2, 155,   0,  40,  46,  49,   0,   0,  -2,
+   0,  60,  38,   0, 133,  -2,   0, 138,   0, 145,
+  -2, 158,   0, 167,  -2,   0,  56,  57,   0, 123,
+   0, 136, 175,   0,   0, 156,   0, 123,   0, 171,
+ 172, 174, 149,  -2, 161,   0, 139, 159, 147,  -2,
+ 169,   0,   0,  -2,   0, 174,  -2, 172, 173, 162,
+ 137, 170
 };
 short	yytok1[] =
 {
@@ -2571,210 +2574,215 @@
 case 191:
 #line	1132	"limbo.y"
 {
-		yyval.node = mkbin(Odas, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Osnd, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 192:
 #line	1136	"limbo.y"
 {
+		yyval.node = mkbin(Odas, yypt[-2].yyv.node, yypt[-0].yyv.node);
+	} break;
+case 193:
+#line	1140	"limbo.y"
+{
 		yyval.node = mkn(Oload, yypt[-0].yyv.node, nil);
 		yyval.node->src.start = yypt[-2].yyv.tok.src.start;
 		yyval.node->src.stop = yypt[-0].yyv.node->src.stop;
 		yyval.node->ty = mkidtype(&yypt[-1].yyv.tok.src, yypt[-1].yyv.tok.v.idval);
 	} break;
-case 193:
-#line	1143	"limbo.y"
-{
-		yyval.node = mkbin(Oexp, yypt[-2].yyv.node, yypt[-0].yyv.node);
-	} break;
 case 194:
 #line	1147	"limbo.y"
 {
-		yyval.node = mkbin(Omul, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oexp, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 195:
 #line	1151	"limbo.y"
 {
-		yyval.node = mkbin(Odiv, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Omul, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 196:
 #line	1155	"limbo.y"
 {
-		yyval.node = mkbin(Omod, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Odiv, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 197:
 #line	1159	"limbo.y"
 {
-		yyval.node = mkbin(Oadd, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Omod, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 198:
 #line	1163	"limbo.y"
 {
-		yyval.node = mkbin(Osub, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oadd, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 199:
 #line	1167	"limbo.y"
 {
-		yyval.node = mkbin(Orsh, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Osub, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 200:
 #line	1171	"limbo.y"
 {
-		yyval.node = mkbin(Olsh, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Orsh, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 201:
 #line	1175	"limbo.y"
 {
-		yyval.node = mkbin(Olt, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Olsh, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 202:
 #line	1179	"limbo.y"
 {
-		yyval.node = mkbin(Ogt, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Olt, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 203:
 #line	1183	"limbo.y"
 {
-		yyval.node = mkbin(Oleq, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Ogt, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 204:
 #line	1187	"limbo.y"
 {
-		yyval.node = mkbin(Ogeq, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oleq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 205:
 #line	1191	"limbo.y"
 {
-		yyval.node = mkbin(Oeq, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Ogeq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 206:
 #line	1195	"limbo.y"
 {
-		yyval.node = mkbin(Oneq, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oeq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 207:
 #line	1199	"limbo.y"
 {
-		yyval.node = mkbin(Oand, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oneq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 208:
 #line	1203	"limbo.y"
 {
-		yyval.node = mkbin(Oxor, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oand, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 209:
 #line	1207	"limbo.y"
 {
-		yyval.node = mkbin(Oor, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oxor, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 210:
 #line	1211	"limbo.y"
 {
-		yyval.node = mkbin(Ocons, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Oor, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 211:
 #line	1215	"limbo.y"
 {
-		yyval.node = mkbin(Oandand, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Ocons, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 212:
 #line	1219	"limbo.y"
 {
+		yyval.node = mkbin(Oandand, yypt[-2].yyv.node, yypt[-0].yyv.node);
+	} break;
+case 213:
+#line	1223	"limbo.y"
+{
 		yyval.node = mkbin(Ooror, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
-case 214:
-#line	1226	"limbo.y"
+case 215:
+#line	1230	"limbo.y"
 {
 		yypt[-0].yyv.node->src.start = yypt[-1].yyv.tok.src.start;
 		yyval.node = yypt[-0].yyv.node;
 	} break;
-case 215:
-#line	1231	"limbo.y"
+case 216:
+#line	1235	"limbo.y"
 {
 		yyval.node = mkunary(Oneg, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 216:
-#line	1236	"limbo.y"
+case 217:
+#line	1240	"limbo.y"
 {
 		yyval.node = mkunary(Onot, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 217:
-#line	1241	"limbo.y"
+case 218:
+#line	1245	"limbo.y"
 {
 		yyval.node = mkunary(Ocomp, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 218:
-#line	1246	"limbo.y"
+case 219:
+#line	1250	"limbo.y"
 {
 		yyval.node = mkunary(Oind, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 219:
-#line	1251	"limbo.y"
+case 220:
+#line	1255	"limbo.y"
 {
 		yyval.node = mkunary(Opreinc, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 220:
-#line	1256	"limbo.y"
+case 221:
+#line	1260	"limbo.y"
 {
 		yyval.node = mkunary(Opredec, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 221:
-#line	1261	"limbo.y"
+case 222:
+#line	1265	"limbo.y"
 {
 		yyval.node = mkunary(Orcv, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 222:
-#line	1266	"limbo.y"
+case 223:
+#line	1270	"limbo.y"
 {
 		yyval.node = mkunary(Ohd, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 223:
-#line	1271	"limbo.y"
+case 224:
+#line	1275	"limbo.y"
 {
 		yyval.node = mkunary(Otl, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 224:
-#line	1276	"limbo.y"
+case 225:
+#line	1280	"limbo.y"
 {
 		yyval.node = mkunary(Olen, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 225:
-#line	1281	"limbo.y"
+case 226:
+#line	1285	"limbo.y"
 {
 		yyval.node = mkunary(Oref, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 226:
-#line	1286	"limbo.y"
+case 227:
+#line	1290	"limbo.y"
 {
 		yyval.node = mkunary(Otagof, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 	} break;
-case 227:
-#line	1291	"limbo.y"
+case 228:
+#line	1295	"limbo.y"
 {
 		yyval.node = mkn(Oarray, yypt[-3].yyv.node, nil);
 		yyval.node->ty = mktype(&yypt[-5].yyv.tok.src.start, &yypt[-0].yyv.type->src.stop, Tarray, yypt[-0].yyv.type, nil);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 228:
-#line	1297	"limbo.y"
+case 229:
+#line	1301	"limbo.y"
 {
 		yyval.node = mkn(Oarray, yypt[-5].yyv.node, yypt[-1].yyv.node);
 		yyval.node->src.start = yypt[-7].yyv.tok.src.start;
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 229:
-#line	1303	"limbo.y"
+case 230:
+#line	1307	"limbo.y"
 {
 		yyval.node = mkn(Onothing, nil, nil);
 		yyval.node->src.start = yypt[-5].yyv.tok.src.start;
@@ -2783,64 +2791,64 @@
 		yyval.node->src.start = yypt[-6].yyv.tok.src.start;
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 230:
-#line	1312	"limbo.y"
+case 231:
+#line	1316	"limbo.y"
 {
 		yyval.node = etolist(yypt[-1].yyv.node);
 		yyval.node->src.start = yypt[-4].yyv.tok.src.start;
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 231:
-#line	1318	"limbo.y"
+case 232:
+#line	1322	"limbo.y"
 {
 		yyval.node = mkn(Ochan, nil, nil);
 		yyval.node->ty = mktype(&yypt[-2].yyv.tok.src.start, &yypt[-0].yyv.type->src.stop, Tchan, yypt[-0].yyv.type, nil);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 232:
-#line	1324	"limbo.y"
+case 233:
+#line	1328	"limbo.y"
 {
 		yyval.node = mkn(Ochan, yypt[-3].yyv.node, nil);
 		yyval.node->ty = mktype(&yypt[-5].yyv.tok.src.start, &yypt[-0].yyv.type->src.stop, Tchan, yypt[-0].yyv.type, nil);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 233:
-#line	1330	"limbo.y"
+case 234:
+#line	1334	"limbo.y"
 {
 		yyval.node = mkunary(Ocast, yypt[-0].yyv.node);
 		yyval.node->ty = mktype(&yypt[-3].yyv.tok.src.start, &yypt[-0].yyv.node->src.stop, Tarray, mkidtype(&yypt[-1].yyv.tok.src, yypt[-1].yyv.tok.v.idval), nil);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 234:
-#line	1336	"limbo.y"
+case 235:
+#line	1340	"limbo.y"
 {
 		yyval.node = mkunary(Ocast, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 		yyval.node->ty = mkidtype(&yyval.node->src, yypt[-1].yyv.tok.v.idval);
 	} break;
-case 235:
-#line	1342	"limbo.y"
+case 236:
+#line	1346	"limbo.y"
 {
 		yyval.node = mkunary(Ocast, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 		yyval.node->ty = mkidtype(&yyval.node->src, yypt[-1].yyv.tok.v.idval);
 	} break;
-case 236:
-#line	1348	"limbo.y"
+case 237:
+#line	1352	"limbo.y"
 {
 		yyval.node = mkunary(Ocast, yypt[-0].yyv.node);
 		yyval.node->src.start = yypt[-1].yyv.tok.src.start;
 		yyval.node->ty = yypt[-1].yyv.type;
 	} break;
-case 238:
-#line	1357	"limbo.y"
+case 239:
+#line	1361	"limbo.y"
 {
 		yyval.node = mkn(Ocall, yypt[-3].yyv.node, yypt[-1].yyv.node);
 		yyval.node->src.start = yypt[-3].yyv.node->src.start;
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 239:
-#line	1363	"limbo.y"
+case 240:
+#line	1367	"limbo.y"
 {
 		yyval.node = yypt[-1].yyv.node;
 		if(yypt[-1].yyv.node->op == Oseq)
@@ -2850,24 +2858,24 @@
 		yyval.node->src.start = yypt[-2].yyv.tok.src.start;
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 240:
-#line	1373	"limbo.y"
-{
-		yyval.node = mkbin(Odot, yypt[-2].yyv.node, mkname(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.idval));
-	} break;
 case 241:
 #line	1377	"limbo.y"
 {
-		yyval.node = mkbin(Omdot, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = mkbin(Odot, yypt[-2].yyv.node, mkname(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.idval));
 	} break;
 case 242:
 #line	1381	"limbo.y"
 {
+		yyval.node = mkbin(Omdot, yypt[-2].yyv.node, yypt[-0].yyv.node);
+	} break;
+case 243:
+#line	1385	"limbo.y"
+{
 		yyval.node = mkbin(Oindex, yypt[-3].yyv.node, yypt[-1].yyv.node);
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 243:
-#line	1386	"limbo.y"
+case 244:
+#line	1390	"limbo.y"
 {
 		if(yypt[-3].yyv.node->op == Onothing)
 			yypt[-3].yyv.node->src = yypt[-2].yyv.tok.src;
@@ -2876,25 +2884,25 @@
 		yyval.node = mkbin(Oslice, yypt[-5].yyv.node, mkbin(Oseq, yypt[-3].yyv.node, yypt[-1].yyv.node));
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 244:
-#line	1395	"limbo.y"
+case 245:
+#line	1399	"limbo.y"
 {
 		yyval.node = mkunary(Oinc, yypt[-1].yyv.node);
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 245:
-#line	1400	"limbo.y"
+case 246:
+#line	1404	"limbo.y"
 {
 		yyval.node = mkunary(Odec, yypt[-1].yyv.node);
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 246:
-#line	1405	"limbo.y"
+case 247:
+#line	1409	"limbo.y"
 {
 		yyval.node = mksconst(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.idval);
 	} break;
-case 247:
-#line	1409	"limbo.y"
+case 248:
+#line	1413	"limbo.y"
 {
 		yyval.node = mkconst(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.ival);
 		if(yypt[-0].yyv.tok.v.ival > 0x7fffffff || yypt[-0].yyv.tok.v.ival < -0x7fffffff)
@@ -2901,62 +2909,62 @@
 			yyval.node->ty = tbig;
 		yyval.node = yyval.node;
 	} break;
-case 248:
-#line	1416	"limbo.y"
+case 249:
+#line	1420	"limbo.y"
 {
 		yyval.node = mkrconst(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.rval);
 	} break;
-case 249:
-#line	1420	"limbo.y"
+case 250:
+#line	1424	"limbo.y"
 {
 		yyval.node = mkbin(Oindex, yypt[-5].yyv.node, rotater(mkbin(Oseq, yypt[-3].yyv.node, yypt[-1].yyv.node)));
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 250:
-#line	1427	"limbo.y"
+case 251:
+#line	1431	"limbo.y"
 {
 		yyval.node = mkname(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.idval);
 	} break;
-case 251:
-#line	1431	"limbo.y"
+case 252:
+#line	1435	"limbo.y"
 {
 		yyval.node = mknil(&yypt[-0].yyv.tok.src);
 	} break;
-case 252:
-#line	1437	"limbo.y"
+case 253:
+#line	1441	"limbo.y"
 {
 		yyval.node = mkn(Otuple, rotater(yypt[-1].yyv.node), nil);
 		yyval.node->src.start = yypt[-2].yyv.tok.src.start;
 		yyval.node->src.stop = yypt[-0].yyv.tok.src.stop;
 	} break;
-case 254:
-#line	1446	"limbo.y"
+case 255:
+#line	1450	"limbo.y"
 {
 		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
-case 257:
-#line	1456	"limbo.y"
+case 258:
+#line	1460	"limbo.y"
 {
 		yyval.node = mkn(Otype, nil, nil);
 		yyval.node->ty = mkidtype(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.idval);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 258:
-#line	1462	"limbo.y"
+case 259:
+#line	1466	"limbo.y"
 {
 		yyval.node = mkn(Otype, nil, nil);
 		yyval.node->ty = mktype(&yypt[-2].yyv.tok.src.start, &yypt[-0].yyv.type->src.stop, Tarray, yypt[-0].yyv.type, nil);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 259:
-#line	1468	"limbo.y"
+case 260:
+#line	1472	"limbo.y"
 {
 		yyval.node = mkn(Otype, nil, nil);
 		yyval.node->ty = mktype(&yypt[-2].yyv.tok.src.start, &yypt[-0].yyv.type->src.stop, Tlist, yypt[-0].yyv.type, nil);
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 260:
-#line	1474	"limbo.y"
+case 261:
+#line	1478	"limbo.y"
 {
 		yyval.node = mkn(Otype, nil ,nil);
 		yyval.node->ty = yypt[-0].yyv.type;
@@ -2963,21 +2971,16 @@
 		yyval.node->ty->flags |= CYCLIC;
 		yyval.node->src = yyval.node->ty->src;
 	} break;
-case 261:
-#line	1483	"limbo.y"
+case 262:
+#line	1487	"limbo.y"
 {
 		yyval.node = mkname(&yypt[-0].yyv.tok.src, yypt[-0].yyv.tok.v.idval);
 	} break;
-case 262:
-#line	1487	"limbo.y"
+case 263:
+#line	1491	"limbo.y"
 {
 		yyval.node = nil;
 	} break;
-case 265:
-#line	1495	"limbo.y"
-{
-		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
-	} break;
 case 266:
 #line	1499	"limbo.y"
 {
@@ -2984,48 +2987,53 @@
 		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 267:
-#line	1505	"limbo.y"
+#line	1503	"limbo.y"
 {
-		yyval.node = nil;
+		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 268:
 #line	1509	"limbo.y"
 {
-		yyval.node = rotater(yypt[-0].yyv.node);
+		yyval.node = nil;
 	} break;
-case 272:
-#line	1520	"limbo.y"
+case 269:
+#line	1513	"limbo.y"
 {
-		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
+		yyval.node = rotater(yypt[-0].yyv.node);
 	} break;
 case 273:
-#line	1526	"limbo.y"
+#line	1524	"limbo.y"
 {
-		yyval.node = rotater(yypt[-0].yyv.node);
+		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
 case 274:
 #line	1530	"limbo.y"
 {
+		yyval.node = rotater(yypt[-0].yyv.node);
+	} break;
+case 275:
+#line	1534	"limbo.y"
+{
 		yyval.node = rotater(yypt[-1].yyv.node);
 	} break;
-case 276:
-#line	1537	"limbo.y"
+case 277:
+#line	1541	"limbo.y"
 {
 		yyval.node = mkbin(Oseq, yypt[-2].yyv.node, yypt[-0].yyv.node);
 	} break;
-case 277:
-#line	1543	"limbo.y"
+case 278:
+#line	1547	"limbo.y"
 {
 		yyval.node = mkn(Oelem, nil, yypt[-0].yyv.node);
 		yyval.node->src = yypt[-0].yyv.node->src;
 	} break;
-case 278:
-#line	1548	"limbo.y"
+case 279:
+#line	1552	"limbo.y"
 {
 		yyval.node = mkbin(Oelem, rotater(yypt[-2].yyv.node), yypt[-0].yyv.node);
 	} break;
-case 279:
-#line	1573	"limbo.y"
+case 280:
+#line	1577	"limbo.y"
 {
 		if(yypt[-1].yyv.node->op == Oseq)
 			yypt[-1].yyv.node->right->left = rotater(yypt[-0].yyv.node);
@@ -3033,13 +3041,13 @@
 			yypt[-1].yyv.node->left = rotater(yypt[-0].yyv.node);
 		yyval.node = yypt[-1].yyv.node;
 	} break;
-case 280:
-#line	1583	"limbo.y"
+case 281:
+#line	1587	"limbo.y"
 {
 		yyval.node = typedecl(yypt[-1].yyv.ids, mktype(&yypt[-1].yyv.ids->src.start, &yypt[-0].yyv.tok.src.stop, Tpoly, nil, nil));
 	} break;
-case 281:
-#line	1587	"limbo.y"
+case 282:
+#line	1591	"limbo.y"
 {
 		if(yypt[-3].yyv.node->op == Oseq)
 			yypt[-3].yyv.node->right->left = rotater(yypt[-2].yyv.node);