[Scummvm-git-logs] scummvm master -> 8689ca4bf2a98a6ea15c77fd6794d0d39730b854

djsrv dservilla at gmail.com
Mon Jul 13 15:45:19 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
33f399c16c DIRECTOR: LINGO: Fix handlers with reference names
8689ca4bf2 DIRECTOR: LINGO: Add reference tests


Commit: 33f399c16c5996c660ddb9db23b764cfcd0c2795
    https://github.com/scummvm/scummvm/commit/33f399c16c5996c660ddb9db23b764cfcd0c2795
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-13T11:30:59-04:00

Commit Message:
DIRECTOR: LINGO: Fix handlers with reference names

Changed paths:
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.y


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index b897f33f21..496de2d837 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -811,18 +811,18 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  125
+#define YYFINAL  116
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2593
+#define YYLAST   2623
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  102
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  58
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  181
+#define YYNRULES  182
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  381
+#define YYNSTATES  385
 
 #define YYMAXUTOK   341
 
@@ -886,18 +886,18 @@ static const yytype_int16 yyrline[] =
      445,   431,   475,   483,   486,   487,   489,   491,   493,   500,
      508,   509,   511,   517,   521,   525,   529,   532,   534,   535,
      536,   538,   541,   544,   548,   552,   556,   564,   570,   571,
-     572,   583,   584,   585,   588,   591,   597,   597,   602,   605,
-     608,   614,   615,   616,   617,   618,   619,   620,   621,   622,
-     623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
-     633,   634,   635,   636,   638,   639,   640,   641,   642,   643,
-     644,   645,   647,   650,   652,   653,   654,   655,   663,   664,
-     664,   665,   665,   666,   666,   667,   670,   673,   676,   680,
-     683,   687,   690,   694,   697,   708,   709,   710,   711,   715,
-     719,   724,   725,   727,   731,   735,   739,   739,   769,   769,
-     775,   776,   776,   782,   790,   796,   796,   798,   799,   800,
-     802,   803,   804,   806,   808,   816,   817,   818,   820,   821,
-     823,   825,   826,   827,   828,   830,   831,   833,   834,   836,
-     840,   844
+     572,   583,   584,   587,   590,   593,   596,   602,   602,   607,
+     610,   613,   619,   620,   621,   622,   623,   624,   625,   626,
+     627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+     637,   638,   639,   640,   641,   643,   644,   645,   646,   647,
+     648,   649,   650,   652,   655,   657,   658,   659,   660,   668,
+     669,   669,   670,   670,   671,   671,   672,   675,   678,   681,
+     685,   688,   692,   695,   699,   702,   713,   714,   715,   716,
+     720,   724,   729,   730,   732,   736,   740,   744,   744,   774,
+     774,   780,   781,   781,   787,   795,   801,   801,   803,   804,
+     805,   807,   808,   809,   811,   813,   821,   822,   823,   825,
+     826,   828,   830,   831,   832,   833,   835,   836,   838,   839,
+     841,   845,   849
 };
 #endif
 
@@ -961,12 +961,12 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-325)
+#define YYPACT_NINF (-319)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-172)
+#define YYTABLE_NINF (-173)
 
 #define yytable_value_is_error(Yyn) \
   0
@@ -975,45 +975,45 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     785,   -79,  -325,  -325,    52,  -325,   611,   333,    52,   -39,
-     514,  -325,  -325,  -325,  -325,  -325,    -4,  -325,  1781,  -325,
-    -325,  -325,    -2,  1933,    98,   124,    29,    31,  2013,  1817,
-    -325,  2013,  2013,  2013,  2013,  2013,  2013,  2013,  -325,  -325,
-    2013,  2013,  2013,   426,    50,   -15,  -325,  -325,  -325,  -325,
-    2013,  -325,  2487,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
-    -325,  -325,  -325,  -325,  -325,   -44,  1933,   233,  2487,   -10,
-     233,   -10,  -325,    52,  1897,  2487,    14,   698,  -325,  -325,
-      68,  2013,  -325,    74,  -325,  2068,  -325,    95,  -325,   119,
-     399,   121,  -325,   -43,    52,    52,    24,    32,   114,  -325,
-    2404,  2068,  -325,   166,  -325,  2101,  2134,  2167,  2200,  2454,
-    2365,   170,   184,  -325,  -325,  2417,   -87,   110,   112,  -325,
-    2487,   115,   116,   118,  -325,  -325,   785,  2487,  2013,  2013,
-    2013,  2013,  2013,  2013,  2013,  2013,  2013,  2013,  2013,  2013,
-    2013,  2013,  2013,  2013,  2013,   186,  1897,   399,  2417,    62,
-    2013,    78,  -325,   102,   108,  2013,   -10,   186,  -325,   120,
-    2487,  2013,  -325,  -325,    52,    25,    30,    39,   -18,  2013,
-    2013,  2013,    93,   172,  2013,  2013,  2013,  2013,  2013,  2013,
-    -325,  -325,   122,  2013,  2013,  2013,  2013,  2013,  2013,  2013,
-    2013,  2013,  2013,  -325,  -325,  -325,   123,  -325,  -325,  2013,
-    2013,  2013,  -325,  2013,    91,  -325,   165,   -50,   -50,   -50,
-     -50,  2500,  2500,  -325,    18,   -50,   -50,   -50,   -50,    18,
-      -1,    -1,  -325,  -325,  -325,   -36,  -325,  2487,  -325,  -325,
-    -325,  -325,  2487,    63,   196,  2487,   186,   180,  -325,  -325,
-    -325,  -325,  -325,  -325,  2013,  2013,  2487,  2487,   -50,  2013,
-    2013,   198,  2487,   -50,  2487,   -50,  2487,  2487,   199,  2487,
-    2233,  2487,  2266,  2487,  2299,  2487,  2332,  2487,  2487,  1701,
-    -325,   202,  2487,  2487,  2487,  2487,   128,   110,   112,  -325,
-    -325,  -325,   204,  2013,  -325,  -325,    92,  2013,  2487,  2034,
-    -325,  2487,   -50,    52,  -325,  2013,  2013,  2013,  2013,  -325,
-    1202,  -325,  1118,  -325,  -325,   111,  -325,  -325,  2487,  -325,
-    -325,  -325,  -325,    99,  2487,  2487,  2487,  2487,  -325,  -325,
-    -325,   145,  -325,   869,  -325,   952,  -325,  -325,  -325,  -325,
-    1285,  2013,  2013,  -325,   153,   206,  1035,  -325,   182,   203,
-     148,  2487,   -50,  -325,  2013,  -325,   156,  -325,   143,  -325,
-    2013,   189,  -325,  1368,  2487,  -325,   219,  -325,  2487,  2013,
-     162,   197,  -325,  -325,  -325,  2487,  -325,  -325,  1452,  -325,
-    -325,  1118,  -325,  -325,  -325,  -325,  1535,  -325,  -325,  1618,
-    -325
+     894,   -50,  -319,  -319,    55,  -319,   720,   341,   442,   -11,
+     623,  -319,  -319,  -319,  -319,  -319,    18,  -319,  1890,  -319,
+    -319,  -319,    24,  2074,   -17,   190,    73,    79,  2110,  1926,
+    -319,  2110,  2110,  2110,  -319,  -319,  2110,  2110,  2110,   535,
+     107,    17,  -319,  -319,  -319,  -319,  2110,  -319,  2517,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,    37,
+    2074,  1982,  2517,    45,  1982,    45,  1982,    45,    55,  2018,
+    2517,    47,   807,  -319,  -319,   113,  2110,  -319,   108,  -319,
+    2131,  -319,   132,  -319,   142,   508,   145,  -319,   -47,    55,
+      55,   -42,   -12,   124,  -319,  2434,  2131,  -319,   156,  -319,
+    2484,  1792,   162,   170,  -319,  -319,  2447,   -37,    96,    97,
+    -319,  2517,   100,   114,   115,  -319,  -319,   894,  2517,  2110,
+    2110,  2110,  2110,  2110,  2110,  2110,  2110,  2110,  2110,  2110,
+    2110,  2110,  2110,  2110,  2110,  2110,   180,  2018,   508,  2447,
+     -45,  2110,    13,    40,  -319,   -78,    69,  2110,    45,   180,
+    -319,   116,  2517,  2110,  -319,  -319,    55,    11,   110,   118,
+     -29,  2110,  2110,  2110,    38,   163,  2110,  2110,  2110,  2110,
+    2110,  2110,  -319,  -319,   117,  2110,  2110,  -319,  -319,  -319,
+     119,  -319,  -319,  2110,  2110,  2110,  -319,  2110,   123,  -319,
+     159,   112,   112,   112,   112,  2530,  2530,  -319,   -44,   112,
+     112,   112,   112,   -44,    -3,    -3,  -319,  -319,  -319,   -15,
+    -319,  2517,  -319,  -319,  -319,  -319,  -319,  2517,     0,   192,
+    2517,   180,   184,    55,  -319,  2110,  2110,  2110,  2110,  -319,
+    -319,  -319,  -319,  -319,  -319,  2110,  2110,  2517,  2517,   112,
+    2110,  2110,   205,  2517,   112,  2517,   112,  2517,  2517,   206,
+    2517,  2517,  1810,  -319,   207,  2517,  2517,  2517,  2517,   135,
+      96,    97,  -319,  -319,  -319,   211,  2110,  -319,  -319,     8,
+    2110,  -319,  2164,  2197,  2230,  2263,  2517,   244,  -319,  2517,
+     112,    55,  -319,  -319,  1311,  -319,  1227,  -319,  -319,    76,
+    -319,  -319,  2517,  2110,  2110,  2110,  2110,  2110,  2110,  2110,
+    2110,  -319,  -319,  -319,  -319,    41,  -319,  -319,  -319,   152,
+    -319,   978,  -319,  1061,  -319,  2517,  2296,  2517,  2329,  2517,
+    2362,  2517,  2395,  -319,  -319,  -319,  1394,  2110,  2110,  -319,
+      43,   213,  1144,  2110,  2110,  2110,  2110,  -319,   187,   209,
+     160,  2517,   112,  -319,  2110,  -319,   157,  -319,   146,  2517,
+    2517,  2517,  2517,  -319,  2110,   193,  -319,  1477,  2517,  -319,
+     221,  -319,  2517,  2110,   164,   197,  -319,  -319,  -319,  2517,
+    -319,  -319,  1561,  -319,  -319,  1227,  -319,  -319,  -319,  -319,
+    1644,  -319,  -319,  1727,  -319
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1022,66 +1022,66 @@ static const yytype_int16 yypact[] =
 static const yytype_uint8 yydefact[] =
 {
        0,     0,    61,    66,     0,    62,     0,     0,     0,     0,
-       0,    64,    63,   146,   151,    80,   118,   119,     0,   135,
-      56,   148,     0,     0,     0,     0,     0,     0,     0,     0,
-     123,     0,     0,     0,     0,     0,     0,     0,   121,   155,
-       0,     0,     0,     0,     0,     2,    81,    27,     6,    28,
-       0,    71,    25,   113,    72,    26,   115,   116,     5,    57,
-      24,    69,    70,    65,    67,    65,     0,     0,   166,   126,
-       0,    74,   112,     0,     0,   168,   164,     0,    57,   117,
-       0,     0,   136,     0,   137,   138,   140,     0,    42,     0,
-     114,     0,    57,     0,     0,     0,     0,     0,     0,   150,
-     128,   143,   145,     0,    95,     0,     0,     0,     0,     0,
-       0,     0,     0,   100,   101,     0,    65,    64,    63,   172,
-     175,     0,   174,   173,   177,     1,     0,    53,     0,     0,
+       0,    64,    63,   147,   152,    81,   119,   120,     0,   136,
+      56,   149,     0,     0,     0,     0,     0,     0,     0,     0,
+     124,     0,     0,     0,   122,   156,     0,     0,     0,     0,
+       0,     2,    82,    27,     6,    28,     0,    71,    25,    26,
+     116,   117,     5,    57,    24,    69,    70,    65,    67,    65,
+       0,     0,   167,   127,     0,    73,     0,    75,     0,     0,
+     169,   165,     0,    57,   118,     0,     0,   137,     0,   138,
+     139,   141,     0,    42,     0,   115,     0,    57,     0,     0,
+       0,     0,     0,     0,   151,   129,   144,   146,     0,    96,
+       0,     0,     0,     0,   101,   102,     0,    65,    64,    63,
+     173,   176,     0,   175,   174,   178,     1,     0,    53,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   157,     0,     0,   166,     0,
-       0,     0,    79,    65,     0,     0,   147,   157,   129,   120,
-     142,     0,   139,    57,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   158,     0,     0,   167,
+       0,     0,     0,     0,    80,    65,     0,     0,   148,   158,
+     130,   121,   143,     0,   140,    57,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     144,   133,   124,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    47,    47,   131,   122,   156,    68,     0,
-       0,     0,   170,     0,     0,     3,     0,    91,    92,    89,
-      90,    93,    94,    86,    97,    98,    99,    88,    87,    96,
-      82,    83,    84,    85,   158,     0,   125,   167,    73,    75,
-      76,    78,   169,     0,     0,   141,   157,     0,     7,     8,
-      10,    11,    12,    13,     0,     0,    53,    17,    15,     0,
-       0,     0,    16,    14,    22,    23,    43,   127,     0,   104,
-       0,   106,     0,   108,     0,   110,     0,   102,   103,     0,
-      58,     0,   181,   180,   179,   176,     0,     0,     0,   178,
-      58,   163,     0,     0,   163,   130,     0,     0,    38,    30,
-      46,    18,    19,     0,   134,     0,     0,     0,     0,    57,
-       0,   132,     0,    58,   159,     0,    58,   163,     9,    57,
-      55,    55,    58,     0,   105,   107,   109,   111,    45,    59,
-      60,     0,    50,     0,    77,     0,    58,    39,    31,    35,
-       0,     0,     0,    44,    57,   160,     0,    53,     0,     0,
-       0,    20,    21,    58,     0,    51,     0,   161,   153,    40,
-       0,     0,    29,     0,    53,    48,     0,    46,    32,     0,
-       0,     0,   162,    58,    53,    36,    49,    58,     0,    46,
-      53,     0,    41,    58,    46,    52,     0,    58,    33,     0,
-      37
+       0,     0,   145,   134,   125,     0,     0,    47,    47,   132,
+     123,   157,    68,     0,     0,     0,   171,     0,     0,     3,
+       0,    92,    93,    90,    91,    94,    95,    87,    98,    99,
+     100,    89,    88,    97,    83,    84,    85,    86,   159,     0,
+     126,   168,    72,    74,    76,    77,    79,   170,     0,     0,
+     142,   158,     0,     0,     7,     0,     0,     0,     0,   114,
+       8,    10,    11,    12,    13,     0,     0,    53,    17,    15,
+       0,     0,     0,    16,    14,    22,    23,    43,   128,     0,
+     103,   104,     0,    58,     0,   182,   181,   180,   177,     0,
+       0,     0,   179,    58,   164,     0,     0,   164,   131,     0,
+       0,   113,     0,     0,     0,     0,    38,    30,    46,    18,
+      19,     0,   135,    57,     0,   133,     0,    58,   160,     0,
+      58,   164,     9,     0,     0,     0,     0,     0,     0,     0,
+       0,    57,    55,    55,    58,     0,    45,    59,    60,     0,
+      50,     0,    78,     0,    58,   105,     0,   107,     0,   109,
+       0,   111,     0,    39,    31,    35,     0,     0,     0,    44,
+      57,   161,     0,     0,     0,     0,     0,    53,     0,     0,
+       0,    20,    21,    58,     0,    51,     0,   162,   154,   106,
+     108,   110,   112,    40,     0,     0,    29,     0,    53,    48,
+       0,    46,    32,     0,     0,     0,   163,    58,    53,    36,
+      49,    58,     0,    46,    53,     0,    41,    58,    46,    52,
+       0,    58,    33,     0,    37
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -325,   126,  -325,  -325,   -21,    13,  -325,  -325,  -325,  -325,
-    -325,  -325,  -325,  -325,  -325,  -285,    59,  -325,  -325,  -325,
-    -163,  -324,   -56,  -325,   -73,  1700,     3,    -6,  -325,  -325,
-      37,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,   -27,
-    -325,  -325,  -325,  -325,  -325,  -325,  -325,  -154,  -325,  -269,
-    -325,    26,   -20,  -325,  -325,  -325,  -325,    60
+    -319,   133,  -319,  -319,    -1,    15,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -311,    75,  -319,  -319,  -319,
+    -228,  -318,   -49,  -319,   -59,  -115,     3,    -6,  -319,  -319,
+      32,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,   -19,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,  -146,  -319,  -262,
+    -319,    36,    -9,  -319,  -319,  -319,  -319,    67
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    44,    45,    46,    47,   320,   310,   338,   364,   311,
-     339,   370,   309,   337,   357,   312,   269,    49,   334,   345,
-     206,   322,   328,    50,   145,   300,    51,    52,   283,    53,
-      54,    55,    80,   111,   103,   159,   196,   182,    56,    86,
-      57,    77,    58,    87,    78,    59,   112,   225,   348,   303,
-      60,   154,    76,    61,   121,   122,   123,   124
+      -1,    40,    41,    42,    43,   308,   302,   338,   368,   303,
+     339,   374,   301,   337,   361,   304,   252,    45,   330,   345,
+     190,   310,   324,    46,   136,   284,    47,    48,   266,   229,
+     230,    49,    75,   102,    98,   151,   180,   174,    50,    81,
+      51,    72,    52,    82,    73,    53,   103,   209,   348,   287,
+      54,   146,    71,    55,   112,   113,   114,   115
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1089,488 +1089,494 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      68,    68,   102,   233,    75,   157,   340,    64,    73,   146,
-     170,    72,    85,    48,   199,   306,    62,    90,   134,   169,
-     171,   135,   100,   101,   244,   104,   105,   106,   107,   108,
-     109,   110,    69,    71,   113,   114,   115,   120,   326,   140,
-     141,   142,   143,   144,   127,   245,    79,   375,    88,     8,
-     125,   238,   146,     1,     8,    98,   240,    99,   162,   281,
-     147,   148,   282,     8,   148,   242,     2,   134,   148,     3,
-       4,    68,   363,     5,   180,   160,   152,   174,    63,    11,
-     126,    12,   286,   290,   373,   176,   134,   175,   150,   377,
-     236,   143,   144,   149,   158,   177,   151,   172,   173,    32,
-      33,    34,    35,   156,    32,    33,    34,    35,   141,   142,
-     143,   144,   155,    32,    33,    34,    35,   276,   277,   161,
-     278,   163,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,    48,
-      68,    93,    94,    95,   227,   164,   249,   168,    42,   232,
-      96,    43,   331,    91,    92,   235,   250,    97,   284,   226,
-     150,   282,   332,   246,   247,   248,   178,   237,   252,   253,
-     254,   255,   256,   257,   349,   228,   150,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   307,   343,   344,
-     282,   361,   181,   272,   273,   274,   195,   275,   146,   229,
-     230,   369,   239,   241,   243,   231,   150,   374,   324,   155,
-     197,   200,   224,   201,   203,   202,   204,   280,   234,   251,
-     258,   271,   285,   287,   293,   294,   318,   321,   301,   199,
-     304,   333,   347,   352,     1,   350,   327,   351,   288,   289,
-     355,   356,   359,   291,   292,   362,   366,     2,   299,   367,
-       3,     4,   205,   270,     5,   329,     7,     8,     9,    65,
-      11,   346,    12,   305,   279,     0,    15,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    75,     0,     0,
-     360,   308,    66,     0,    25,     0,     0,     0,     0,   314,
-     315,   316,   317,     0,     0,     0,   313,     0,     0,     0,
-      31,     0,     0,     0,     0,     0,     0,    32,    33,    34,
-      35,    36,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    40,    41,   341,   342,     0,     0,    42,
-    -165,  -165,    43,  -165,     1,     0,     0,     0,   354,     0,
-       0,     0,     0,     0,   358,     0,     0,     2,     0,     0,
-       3,     4,     0,   365,     5,  -165,     7,     8,     9,    65,
-      11,     0,    12,  -165,  -165,     0,    15,  -165,  -165,  -165,
-    -165,  -165,  -165,  -165,  -165,     0,  -165,     0,  -165,  -165,
-    -165,     0,    66,  -165,    25,  -165,  -165,  -165,  -165,     0,
-       0,  -165,  -165,  -165,  -165,  -165,  -165,  -165,  -165,  -165,
-      31,  -165,  -165,  -165,  -165,  -165,  -165,    32,    33,    34,
-      35,    36,  -165,  -165,  -165,  -165,     0,  -165,  -165,  -165,
-    -165,  -165,  -165,    40,    41,  -165,  -165,     1,  -165,    70,
-    -165,  -165,    43,  -165,     0,     0,     0,     0,     0,     0,
-       2,     0,   165,     3,     4,     0,     0,     5,     0,     7,
-       8,     9,   116,   117,     0,   118,     0,     0,     0,    15,
-     128,   129,   130,   131,   132,   133,     0,   134,   166,   167,
-     135,   136,   137,     0,     0,    66,     0,    25,     0,     0,
-       0,     0,     0,     0,     0,     0,   138,   139,   140,   141,
-     142,   143,   144,    31,     0,     0,     0,     0,     0,     0,
-      32,    33,    34,    35,    36,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   -65,     1,    40,    41,     0,     0,
-       0,     0,    42,     0,     0,    43,  -171,   119,     2,     0,
-       0,     3,     4,     0,     0,     5,   -65,     7,     8,     9,
-      65,    11,     0,    12,   -65,   -65,     0,    15,     0,   -65,
-     -65,   -65,   -65,   -65,   -65,   -65,     0,     0,     0,     0,
-     -65,     0,     0,    66,   -65,    25,     0,     0,   -65,     0,
-       0,     0,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
-     -65,    31,   -65,     0,     0,   -65,   -65,   -65,    32,    33,
-      34,    35,    36,     0,     0,   -65,   -65,     0,   -65,   -65,
-     -65,   -65,   -65,   -65,    40,    41,   -65,   -65,     0,   -65,
-      74,  -165,     1,    43,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     2,     0,     0,     3,     4,
-       0,     0,     5,  -165,     7,     8,     9,    65,    11,     0,
-      12,  -165,  -165,     0,    15,     0,  -165,  -165,  -165,  -165,
-    -165,  -165,  -165,     0,     0,     0,     0,  -165,     0,     0,
-      66,  -165,    25,     0,     0,  -165,     0,     0,     0,  -165,
-    -165,  -165,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,  -165,  -165,     0,  -165,  -165,  -165,  -165,     1,
-       0,    40,    41,     0,     0,     0,  -165,    67,     0,  -165,
-      43,     0,     2,     0,     0,     3,     4,     0,     0,     5,
-    -165,     7,     8,     9,    65,    11,     0,    12,  -165,  -165,
-       0,    15,     0,  -165,  -165,  -165,  -165,  -165,  -165,  -165,
-       0,     0,     0,     0,  -165,     0,     0,    66,  -165,    25,
-       0,     0,  -165,     0,     0,     0,  -165,  -165,  -165,     0,
-       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,  -165,
-    -165,     0,  -165,  -165,  -165,    -4,     1,     0,    40,    41,
-       0,     0,     0,  -165,    42,     0,  -165,    43,     0,     2,
-       0,     0,     3,     4,     0,     0,     5,     6,     7,     8,
-       9,    10,    11,     0,    12,     0,    13,    14,    15,     0,
-       0,     0,    16,    17,    18,    19,    20,     0,     0,    21,
-       0,    22,     0,     0,    23,    24,    25,     0,     0,    26,
-       0,     0,    27,    28,    29,    30,     0,     0,     0,     0,
-       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,    37,    38,    39,  -154,
-       1,     0,     0,     0,     0,    40,    41,     0,     0,     0,
-      -4,    42,     0,     2,    43,     0,     3,     4,     0,     0,
-       5,     6,     7,     8,     9,    10,    11,     0,    12,   335,
-      13,     0,    15,     0,     0,     0,    16,    17,    18,    19,
-      20,     0,     0,     0,     0,    22,     0,     0,    23,    24,
-      25,     0,     0,    26,     0,     0,     0,    28,    29,    30,
-       0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
-       0,     0,     0,    32,    33,    34,    35,    36,     0,     0,
-      37,    38,  -152,     1,     0,     0,     0,     0,     0,    40,
-      41,     0,     0,     0,   319,    42,     2,     0,    43,     3,
-       4,     0,     0,     5,     6,     7,     8,     9,    10,    11,
-       0,    12,     0,    13,     0,    15,     0,     0,     0,    16,
-      17,    18,    19,    20,     0,     0,     0,     0,    22,     0,
-       0,    23,    24,    25,     0,     0,    26,     0,     0,     0,
-      28,    29,    30,     0,     0,     0,     0,     0,     0,    31,
-       0,     0,     0,     0,     0,     0,    32,    33,    34,    35,
-      36,     0,     0,    37,    38,  -149,     1,     0,     0,     0,
-       0,     0,    40,    41,     0,     0,     0,   319,    42,     2,
-       0,    43,     3,     4,     0,     0,     5,     6,     7,     8,
-       9,    10,    11,     0,    12,     0,    13,     0,    15,     0,
-       0,     0,    16,    17,    18,    19,    20,     0,     0,     0,
-       0,    22,     0,     0,    23,    24,    25,     0,     0,    26,
-       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
-       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,    37,    38,     0,     1,
-       0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
-     319,    42,     2,     0,    43,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
-       0,    15,     0,   -54,   -54,    16,    17,    18,    19,    20,
-       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
-       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
-       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
-      38,     0,   -54,     1,     0,     0,     0,     0,    40,    41,
-       0,     0,     0,   319,    42,     0,     2,    43,     0,     3,
-       4,     0,     0,     5,     6,     7,     8,     9,    10,    11,
-       0,    12,     0,    13,     0,    15,     0,     0,     0,    16,
-      17,    18,    19,    20,     0,     0,     0,     0,    22,     0,
-       0,    23,    24,    25,     0,     0,    26,     0,     0,     0,
-      28,    29,    30,     0,     0,     0,     0,     0,     0,    31,
-       0,     0,     0,     0,     0,     0,    32,    33,    34,    35,
-      36,     0,     0,    37,    38,     0,     1,     0,   -57,     0,
-       0,     0,    40,    41,     0,     0,     0,   319,    42,     2,
-       0,    43,     3,     4,     0,     0,     5,     6,     7,     8,
-       9,    10,    11,     0,    12,     0,    13,     0,    15,     0,
-       0,     0,    16,    17,    18,    19,    20,     0,     0,     0,
-       0,    22,     0,     0,    23,    24,    25,     0,     0,    26,
-       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
-       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,    37,    38,     0,     1,
-     -54,     0,     0,     0,     0,    40,    41,     0,     0,     0,
-     319,    42,     2,     0,    43,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
+      62,    62,    62,   218,    70,   290,   162,    58,   340,   278,
+      97,   166,    80,   235,   149,    44,   163,    85,   137,   214,
+     215,   167,    95,    96,   125,    99,   100,   101,   161,   314,
+     104,   105,   106,   111,   236,   223,    68,   224,    86,    87,
+     118,   168,    63,    65,    67,    56,   132,   133,   134,   135,
+     367,   169,   210,   141,   138,   139,     1,   379,   139,   137,
+     139,   154,   377,   139,   183,   125,    62,   381,    74,     2,
+     152,   144,     3,     4,    83,   269,     5,   172,   343,   344,
+     264,    57,    11,   265,    12,   225,   226,   227,   228,   134,
+     135,   240,   164,   165,   327,   267,   221,   140,   265,    93,
+     142,   241,   143,   291,   328,    94,   265,   116,   148,   353,
+     212,   141,   117,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     365,    62,    44,   137,   223,   211,   231,   213,   141,   150,
+     373,   217,   223,   141,   233,   147,   378,   220,   286,   259,
+     260,    38,   261,   153,    39,   237,   238,   239,   155,   222,
+     243,   244,   245,   246,   247,   248,   216,   141,   156,   250,
+     251,   160,   311,   312,   147,   313,   170,   255,   256,   257,
+     125,   258,   173,   126,   225,   226,   227,   228,   179,   326,
+     232,   234,   225,   226,   227,   228,   181,   184,   185,   332,
+     186,   131,   132,   133,   134,   135,   208,    88,    89,    90,
+     242,   263,   187,   188,   219,   249,    91,   254,   268,   272,
+     273,   274,   275,    92,   306,   309,   271,   270,   357,   276,
+     277,   281,   282,   285,   279,   280,   183,   288,   329,   347,
+     354,   359,   323,   355,   360,   356,   363,   366,   370,   371,
+     189,   283,   372,   253,   325,   262,   375,   289,     0,     0,
+      70,     0,   380,     0,   292,     0,   383,     0,     0,     0,
+       0,   346,     0,     0,     0,     0,     0,     0,   -34,     0,
+       0,     0,     0,     0,   305,     0,     0,   315,   316,   317,
+     318,   319,   320,   321,   322,     0,     0,     0,   364,     0,
+       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
+     124,     0,   125,     0,     0,   126,   127,   128,     0,     0,
+       0,   341,   342,     0,     0,     0,     0,   349,   350,   351,
+     352,   129,   130,   131,   132,   133,   134,   135,   358,     0,
+       0,  -166,     1,     0,     0,     0,     0,     0,   362,     0,
+       0,     0,     0,     0,     0,     2,     0,   369,     3,     4,
+       0,     0,     5,  -166,     7,     8,     9,    59,    11,     0,
+      12,  -166,  -166,     0,    15,  -166,  -166,  -166,  -166,  -166,
+    -166,  -166,  -166,     0,  -166,     0,  -166,  -166,  -166,     0,
+      60,  -166,    25,  -166,  -166,  -166,  -166,     0,     0,  -166,
+    -166,  -166,  -166,  -166,  -166,  -166,  -166,  -166,    31,  -166,
+    -166,  -166,  -166,  -166,  -166,     0,     0,     0,     0,    32,
+    -166,  -166,  -166,  -166,     0,  -166,  -166,  -166,  -166,  -166,
+    -166,    36,    37,  -166,  -166,     0,  -166,    64,  -166,  -166,
+      39,  -166,  -166,     1,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     2,     0,     0,     3,
+       4,     0,     0,     5,  -166,     7,     8,     9,    59,    11,
+       0,    12,  -166,  -166,     0,    15,  -166,  -166,  -166,  -166,
+    -166,  -166,  -166,  -166,     0,  -166,     0,  -166,  -166,  -166,
+       0,    60,  -166,    25,  -166,  -166,  -166,  -166,     0,     0,
+    -166,  -166,  -166,  -166,  -166,  -166,  -166,  -166,  -166,    31,
+    -166,  -166,  -166,  -166,  -166,  -166,     0,     0,     0,     0,
+      32,  -166,  -166,  -166,  -166,     0,  -166,  -166,  -166,  -166,
+    -166,  -166,    36,    37,  -166,  -166,     1,  -166,    66,  -166,
+    -166,    39,  -166,     0,     0,     0,     0,     0,     0,     2,
+       0,   157,     3,     4,     0,     0,     5,     0,     7,     8,
+       9,   107,   108,     0,   109,     0,     0,     0,    15,   119,
+     120,   121,   122,   123,   124,     0,   125,   158,   159,   126,
+     127,   128,     0,     0,    60,     0,    25,     0,     0,     0,
+       0,     0,     0,     0,     0,   129,   130,   131,   132,   133,
+     134,   135,    31,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   -65,     1,    36,    37,     0,     0,     0,
+       0,    38,     0,     0,    39,  -172,   110,     2,     0,     0,
+       3,     4,     0,     0,     5,   -65,     7,     8,     9,    59,
+      11,     0,    12,   -65,   -65,     0,    15,     0,   -65,   -65,
+     -65,   -65,   -65,   -65,   -65,     0,     0,     0,     0,   -65,
+       0,     0,    60,   -65,    25,     0,     0,   -65,     0,     0,
+       0,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
+      31,   -65,     0,     0,   -65,   -65,   -65,     0,     0,     0,
+       0,    32,     0,     0,   -65,   -65,     0,   -65,   -65,   -65,
+     -65,   -65,   -65,    36,    37,   -65,   -65,     0,   -65,    69,
+    -166,     1,    39,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     2,     0,     0,     3,     4,     0,
+       0,     5,  -166,     7,     8,     9,    59,    11,     0,    12,
+    -166,  -166,     0,    15,     0,  -166,  -166,  -166,  -166,  -166,
+    -166,  -166,     0,     0,     0,     0,  -166,     0,     0,    60,
+    -166,    25,     0,     0,  -166,     0,     0,     0,  -166,  -166,
+    -166,     0,     0,     0,     0,     0,     0,    31,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
+       0,  -166,  -166,     0,  -166,  -166,  -166,  -166,     1,     0,
+      36,    37,     0,     0,     0,  -166,    61,     0,  -166,    39,
+       0,     2,     0,     0,     3,     4,     0,     0,     5,  -166,
+       7,     8,     9,    59,    11,     0,    12,  -166,  -166,     0,
+      15,     0,  -166,  -166,  -166,  -166,  -166,  -166,  -166,     0,
+       0,     0,     0,  -166,     0,     0,    60,  -166,    25,     0,
+       0,  -166,     0,     0,     0,  -166,  -166,  -166,     0,     0,
+       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    32,     0,     0,  -166,  -166,
+       0,  -166,  -166,  -166,    -4,     1,     0,    36,    37,     0,
+       0,     0,  -166,    38,     0,  -166,    39,     0,     2,     0,
+       0,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,    14,    15,     0,     0,
+       0,    16,    17,    18,    19,    20,     0,     0,    21,     0,
+      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
+       0,    27,    28,    29,    30,     0,     0,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,    33,    34,    35,  -155,     1,
+       0,     0,     0,     0,    36,    37,     0,     0,     0,    -4,
+      38,     0,     2,    39,     0,     3,     4,     0,     0,     5,
+       6,     7,     8,     9,    10,    11,     0,    12,   331,    13,
        0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
        0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
        0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
        0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
-      38,     0,   -57,     1,     0,     0,     0,     0,    40,    41,
-       0,     0,     0,   319,    42,     0,     2,    43,     0,     3,
-       4,     0,     0,     5,     6,     7,     8,     9,    10,    11,
-       0,    12,     0,    13,     0,    15,     0,     0,     0,    16,
-      17,    18,    19,    20,     0,     0,     0,     0,    22,     0,
-       0,    23,    24,    25,     0,     0,    26,     0,     0,     0,
-      28,    29,    30,     0,     0,     0,     0,     0,     0,    31,
-       0,     0,     0,     0,     0,     0,    32,    33,    34,    35,
-      36,     0,     0,    37,    38,     0,     1,   372,     0,     0,
-       0,     0,    40,    41,     0,     0,     0,   319,    42,     2,
-       0,    43,     3,     4,     0,     0,     5,     6,     7,     8,
-       9,    10,    11,     0,    12,     0,    13,     0,    15,     0,
-       0,     0,    16,    17,    18,    19,    20,     0,     0,     0,
-       0,    22,     0,     0,    23,    24,    25,     0,     0,    26,
-       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
-       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,    37,    38,     0,     1,
-     378,     0,     0,     0,     0,    40,    41,     0,     0,     0,
-     319,    42,     2,     0,    43,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
-       0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
-       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
-       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
-       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
-      38,     0,     1,   380,     0,     0,     0,     0,    40,    41,
-       0,     0,     0,   319,    42,     2,     0,    43,     3,     4,
+       0,     0,     0,     0,     0,     0,    32,     0,     0,    33,
+      34,  -153,     1,     0,     0,     0,     0,     0,    36,    37,
+       0,     0,     0,   307,    38,     2,     0,    39,     3,     4,
        0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
       12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
-      18,    19,     0,     0,     0,     0,     0,     0,     0,     0,
-      23,     0,    25,     0,     0,     0,     0,     0,     0,    28,
+      18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
+      23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
       29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,     1,    38,     0,     0,     0,     0,     0,     0,
-       0,    40,    41,     0,     0,     2,     0,    42,     3,     4,
-      43,     0,     5,     0,     7,     8,     9,    65,    11,     0,
-      12,     0,     0,     0,    15,     0,     0,     0,     1,     0,
-       0,     0,     0,     0,     0,     0,    81,    82,    83,    84,
-      66,     2,    25,     0,     3,     4,     0,     0,     5,     0,
-       7,     8,     9,    65,    11,     0,    12,     0,    31,     0,
-      15,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,    81,     0,    83,     0,    66,     0,    25,     0,
-       0,    40,    41,     0,     0,     0,     0,    42,     0,     0,
-      43,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,    32,    33,    34,    35,    36,     0,     0,     1,     0,
-       0,     0,     0,     0,     0,     0,     0,    40,    41,     0,
-       0,     2,     0,    42,     3,     4,    43,     0,     5,     0,
-       7,     8,     9,   153,    11,     0,    12,     0,     0,     0,
-      15,     0,     0,     0,     1,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    66,     2,    25,     0,
-       3,     4,     0,    89,     5,     0,     7,     8,     9,    65,
-      11,     0,    12,     0,    31,     0,    15,     0,     0,     0,
-       0,    32,    33,    34,    35,    36,     0,     0,     0,     0,
-     302,     0,    66,     0,    25,     0,     0,    40,    41,     0,
-       0,     0,     0,    42,  -165,  -165,    43,     0,     0,     0,
-      31,     0,     0,   323,     0,     0,   325,    32,    33,    34,
-      35,    36,   330,     0,     1,     0,     0,     0,     0,     0,
-       0,     0,     0,    40,    41,     0,   336,     2,     0,    42,
-       3,     4,    43,     0,     5,     0,     7,     8,     9,    65,
-      11,     0,    12,   353,     0,     0,    15,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    66,   368,    25,     0,     0,   371,   -34,     0,
-       0,     0,     0,   376,     0,     0,     0,   379,     0,     0,
-      31,     0,     0,     0,     0,     0,     0,    32,    33,    34,
-      35,    36,     0,     0,     0,   128,   129,   130,   131,   132,
-     133,     0,   134,    40,    41,   135,   136,   137,     0,    42,
-       0,     0,    43,    81,     0,    83,     0,     0,     0,     0,
-       0,   138,   139,   140,   141,   142,   143,   144,     0,   128,
-     129,   130,   131,   132,   133,     0,   134,     0,     0,   135,
-     136,   137,     0,     0,     0,     0,     0,     0,   183,     0,
-       0,     0,     0,     0,   184,   138,   139,   140,   141,   142,
-     143,   144,   128,   129,   130,   131,   132,   133,     0,   134,
-       0,     0,   135,   136,   137,     0,     0,     0,     0,     0,
-       0,   185,     0,     0,     0,     0,     0,   186,   138,   139,
-     140,   141,   142,   143,   144,   128,   129,   130,   131,   132,
-     133,     0,   134,     0,     0,   135,   136,   137,     0,     0,
-       0,     0,     0,     0,   187,     0,     0,     0,     0,     0,
-     188,   138,   139,   140,   141,   142,   143,   144,   128,   129,
-     130,   131,   132,   133,     0,   134,     0,     0,   135,   136,
-     137,     0,     0,     0,     0,     0,     0,   189,     0,     0,
-       0,     0,     0,   190,   138,   139,   140,   141,   142,   143,
-     144,   128,   129,   130,   131,   132,   133,     0,   134,     0,
-       0,   135,   136,   137,     0,     0,     0,     0,     0,     0,
-     295,     0,     0,     0,     0,     0,     0,   138,   139,   140,
-     141,   142,   143,   144,   128,   129,   130,   131,   132,   133,
-       0,   134,     0,     0,   135,   136,   137,     0,     0,     0,
-       0,     0,     0,   296,     0,     0,     0,     0,     0,     0,
-     138,   139,   140,   141,   142,   143,   144,   128,   129,   130,
-     131,   132,   133,     0,   134,     0,     0,   135,   136,   137,
-       0,     0,     0,     0,     0,     0,   297,     0,     0,     0,
-       0,     0,     0,   138,   139,   140,   141,   142,   143,   144,
-     128,   129,   130,   131,   132,   133,     0,   134,     0,     0,
-     135,   136,   137,     0,     0,     0,     0,     0,     0,   298,
-       0,     0,     0,     0,     0,     0,   138,   139,   140,   141,
-     142,   143,   144,   128,   129,   130,   131,   132,   133,     0,
-     134,     0,     0,   135,   136,   137,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   193,   138,
-     139,   140,   141,   142,   143,   144,   128,   129,   130,   131,
-     132,   133,     0,   134,     0,     0,   135,   136,   137,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
+       0,     0,    33,    34,  -150,     1,     0,     0,     0,     0,
+       0,    36,    37,     0,     0,     0,   307,    38,     2,     0,
+      39,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
+       0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
+      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
+       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,    33,    34,     0,     1,     0,
+       0,     0,     0,     0,    36,    37,     0,     0,     0,   307,
+      38,     2,     0,    39,     3,     4,     0,     0,     5,     6,
+       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
+      15,     0,   -54,   -54,    16,    17,    18,    19,    20,     0,
+       0,     0,     0,    22,     0,     0,    23,    24,    25,     0,
+       0,    26,     0,     0,     0,    28,    29,    30,     0,     0,
+       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    32,     0,     0,    33,    34,
+       0,   -54,     1,     0,     0,     0,     0,    36,    37,     0,
+       0,     0,   307,    38,     0,     2,    39,     0,     3,     4,
+       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
+      12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
+      18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
+      23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
+      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
+       0,     0,    33,    34,     0,     1,     0,   -57,     0,     0,
+       0,    36,    37,     0,     0,     0,   307,    38,     2,     0,
+      39,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
+       0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
+      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
+       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,    33,    34,     0,     1,   -54,
+       0,     0,     0,     0,    36,    37,     0,     0,     0,   307,
+      38,     2,     0,    39,     3,     4,     0,     0,     5,     6,
+       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
+      15,     0,     0,     0,    16,    17,    18,    19,    20,     0,
+       0,     0,     0,    22,     0,     0,    23,    24,    25,     0,
+       0,    26,     0,     0,     0,    28,    29,    30,     0,     0,
+       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    32,     0,     0,    33,    34,
+       0,   -57,     1,     0,     0,     0,     0,    36,    37,     0,
+       0,     0,   307,    38,     0,     2,    39,     0,     3,     4,
+       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
+      12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
+      18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
+      23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
+      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
+       0,     0,    33,    34,     0,     1,   376,     0,     0,     0,
+       0,    36,    37,     0,     0,     0,   307,    38,     2,     0,
+      39,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
+       0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
+      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
+       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,    33,    34,     0,     1,   382,
+       0,     0,     0,     0,    36,    37,     0,     0,     0,   307,
+      38,     2,     0,    39,     3,     4,     0,     0,     5,     6,
+       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
+      15,     0,     0,     0,    16,    17,    18,    19,    20,     0,
+       0,     0,     0,    22,     0,     0,    23,    24,    25,     0,
+       0,    26,     0,     0,     0,    28,    29,    30,     0,     0,
+       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    32,     0,     0,    33,    34,
+       0,     1,   384,     0,     0,     0,     0,    36,    37,     0,
+       0,     0,   307,    38,     2,     0,    39,     3,     4,     0,
+       0,     5,     6,     7,     8,     9,    10,    11,     0,    12,
+       0,    13,     0,    15,     0,   177,     0,    16,    17,    18,
+      19,     0,     0,   119,   120,   121,   122,   123,   124,    23,
+     125,    25,     0,   126,   127,   128,     0,     0,    28,    29,
+      30,     0,     0,     0,     0,     0,     0,    31,     0,   129,
+     130,   131,   132,   133,   134,   135,     0,   178,    32,     0,
+       0,     1,    34,     0,     0,     0,     0,     0,     0,     0,
+      36,    37,     0,     0,     2,     0,    38,     3,     4,    39,
+       0,     5,     0,     7,     8,     9,    59,    11,     0,    12,
+       0,     0,     0,    15,     0,     0,     0,     1,     0,     0,
+       0,     0,     0,     0,     0,    76,    77,    78,    79,    60,
+       2,    25,     0,     3,     4,     0,     0,     5,     0,     7,
+       8,     9,    59,    11,     0,    12,     0,    31,     0,    15,
+       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
+       0,    76,     0,    78,     0,    60,     0,    25,     0,     0,
+      36,    37,     0,     1,     0,     0,    38,     0,     0,    39,
+       0,     0,     0,    31,     0,     0,     2,     0,     0,     3,
+       4,     0,     0,     5,    32,     7,     8,     9,    59,    11,
+       0,    12,     0,     0,     0,    15,    36,    37,     0,     1,
+       0,     0,    38,     0,     0,    39,     0,     0,     0,     0,
+       0,    60,     2,    25,     0,     3,     4,     0,     0,     5,
+       0,     7,     8,     9,   145,    11,     0,    12,     0,    31,
+       0,    15,     0,     0,     0,     0,     0,     0,     0,     0,
+      32,     0,     0,     0,     0,     0,     0,    60,     0,    25,
+       0,     0,    36,    37,     0,     1,     0,     0,    38,  -166,
+    -166,    39,     0,     0,     0,    31,     0,     0,     2,     0,
+       0,     3,     4,     0,    84,     5,    32,     7,     8,     9,
+      59,    11,     0,    12,     0,     0,     0,    15,    36,    37,
+       0,     1,     0,     0,    38,  -166,  -166,    39,     0,     0,
+       0,     0,     0,    60,     2,    25,     0,     3,     4,     0,
+       0,     5,     0,     7,     8,     9,    59,    11,     0,    12,
+       0,    31,     0,    15,     0,     0,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,     0,     0,     0,     0,    60,
+       0,    25,     0,     0,    36,    37,     0,     0,     0,     0,
+      38,     0,     0,    39,     0,     0,    76,    31,    78,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
+       0,     0,   119,   120,   121,   122,   123,   124,     0,   125,
+      36,    37,   126,   127,   128,     0,    38,     0,     0,    39,
+       0,   293,     0,     0,     0,     0,     0,   294,   129,   130,
+     131,   132,   133,   134,   135,   119,   120,   121,   122,   123,
+     124,     0,   125,     0,     0,   126,   127,   128,     0,     0,
+       0,     0,     0,     0,   295,     0,     0,     0,     0,     0,
+     296,   129,   130,   131,   132,   133,   134,   135,   119,   120,
+     121,   122,   123,   124,     0,   125,     0,     0,   126,   127,
+     128,     0,     0,     0,     0,     0,     0,   297,     0,     0,
+       0,     0,     0,   298,   129,   130,   131,   132,   133,   134,
+     135,   119,   120,   121,   122,   123,   124,     0,   125,     0,
+       0,   126,   127,   128,     0,     0,     0,     0,     0,     0,
+     299,     0,     0,     0,     0,     0,   300,   129,   130,   131,
+     132,   133,   134,   135,   119,   120,   121,   122,   123,   124,
+       0,   125,     0,     0,   126,   127,   128,     0,     0,     0,
+       0,     0,     0,   333,     0,     0,     0,     0,     0,     0,
+     129,   130,   131,   132,   133,   134,   135,   119,   120,   121,
+     122,   123,   124,     0,   125,     0,     0,   126,   127,   128,
+       0,     0,     0,     0,     0,     0,   334,     0,     0,     0,
+       0,     0,     0,   129,   130,   131,   132,   133,   134,   135,
+     119,   120,   121,   122,   123,   124,     0,   125,     0,     0,
+     126,   127,   128,     0,     0,     0,     0,     0,     0,   335,
+       0,     0,     0,     0,     0,     0,   129,   130,   131,   132,
+     133,   134,   135,   119,   120,   121,   122,   123,   124,     0,
+     125,     0,     0,   126,   127,   128,     0,     0,     0,     0,
+       0,     0,   336,     0,     0,     0,     0,     0,     0,   129,
+     130,   131,   132,   133,   134,   135,   119,   120,   121,   122,
+     123,   124,     0,   125,     0,     0,   126,   127,   128,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   138,   139,   140,   141,   142,   143,   144,   179,
-     194,     0,     0,     0,     0,   128,   129,   130,   131,   132,
-     133,     0,   134,     0,     0,   135,   136,   137,   128,   129,
-     130,   131,   132,   133,     0,   134,     0,     0,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,     0,     0,
-       0,     0,     0,     0,   138,   139,   140,   141,   142,   143,
-     144,     0,     0,     0,   198,   128,   129,   130,   131,   132,
-     133,     0,   134,     0,     0,   135,   136,   137,     0,     0,
-       0,     0,     0,   191,   192,     0,     0,     0,     0,     0,
-       0,   138,   139,   140,   141,   142,   143,   144,   128,   129,
-     130,   131,   132,   133,     0,   134,     0,     0,   135,   136,
-     137,   128,   129,   130,   131,     0,     0,     0,   134,     0,
-       0,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,     0,     0,     0,     0,     0,     0,   138,   139,   140,
-     141,   142,   143,   144
+       0,     0,   129,   130,   131,   132,   133,   134,   135,   171,
+       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
+     124,     0,   125,     0,     0,   126,   127,   128,   119,   120,
+     121,   122,   123,   124,     0,   125,     0,     0,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,     0,     0,
+       0,     0,     0,     0,   129,   130,   131,   132,   133,   134,
+     135,     0,     0,     0,   182,   119,   120,   121,   122,   123,
+     124,     0,   125,     0,     0,   126,   127,   128,     0,     0,
+       0,     0,     0,   175,   176,     0,     0,     0,     0,     0,
+       0,   129,   130,   131,   132,   133,   134,   135,   119,   120,
+     121,   122,   123,   124,     0,   125,     0,     0,   126,   127,
+     128,   119,   120,   121,   122,     0,     0,     0,   125,     0,
+       0,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,     0,     0,     0,     0,     0,     0,   129,   130,   131,
+     132,   133,   134,   135
 };
 
 static const yytype_int16 yycheck[] =
 {
-       6,     7,    29,   157,    10,    78,   330,     4,    47,    96,
-      53,     8,    18,     0,   101,   284,    95,    23,    68,    92,
-      63,    71,    28,    29,    42,    31,    32,    33,    34,    35,
-      36,    37,     6,     7,    40,    41,    42,    43,   307,    89,
-      90,    91,    92,    93,    50,    63,    50,   371,    50,    24,
-       0,    26,    96,     1,    24,    26,    26,    26,    85,    95,
-      66,    67,    98,    24,    70,    26,    14,    68,    74,    17,
-      18,    77,   357,    21,   101,    81,    73,    53,    26,    27,
-      95,    29,   236,   246,   369,    53,    68,    63,    98,   374,
-     163,    92,    93,    67,    26,    63,    70,    94,    95,    74,
-      75,    76,    77,    77,    74,    75,    76,    77,    90,    91,
-      92,    93,    98,    74,    75,    76,    77,    26,    27,    45,
-      29,    26,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   126,
-     146,    17,    18,    19,   150,    26,    53,    26,    96,   155,
-      26,    99,    53,    55,    56,   161,    63,    33,    95,    97,
-      98,    98,    63,   169,   170,   171,    52,   164,   174,   175,
-     176,   177,   178,   179,   337,    97,    98,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,    95,    35,    36,
-      98,   354,    26,   199,   200,   201,    26,   203,    96,    97,
-      98,   364,   165,   166,   167,    97,    98,   370,    97,    98,
-      26,   101,    26,   101,    98,   100,    98,    52,    98,    47,
-      98,    98,    26,    43,    26,    26,   299,   300,    26,   101,
-      26,    86,    26,    85,     1,    53,   309,    34,   244,   245,
-      84,    98,    53,   249,   250,    26,    84,    14,   269,    52,
-      17,    18,   126,   194,    21,   311,    23,    24,    25,    26,
-      27,   334,    29,   283,   204,    -1,    33,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   283,    -1,    -1,
-     353,   287,    49,    -1,    51,    -1,    -1,    -1,    -1,   295,
-     296,   297,   298,    -1,    -1,    -1,   293,    -1,    -1,    -1,
-      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,
-      77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    90,    91,   331,   332,    -1,    -1,    96,
-      97,    98,    99,     0,     1,    -1,    -1,    -1,   344,    -1,
-      -1,    -1,    -1,    -1,   350,    -1,    -1,    14,    -1,    -1,
-      17,    18,    -1,   359,    21,    22,    23,    24,    25,    26,
-      27,    -1,    29,    30,    31,    -1,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    -1,    43,    -1,    45,    46,
-      47,    -1,    49,    50,    51,    52,    53,    54,    55,    -1,
+       6,     7,     8,   149,    10,   267,    53,     4,   326,   237,
+      29,    53,    18,    42,    73,     0,    63,    23,    96,    97,
+      98,    63,    28,    29,    68,    31,    32,    33,    87,   291,
+      36,    37,    38,    39,    63,    24,    47,    26,    55,    56,
+      46,    53,     6,     7,     8,    95,    90,    91,    92,    93,
+     361,    63,    97,    98,    60,    61,     1,   375,    64,    96,
+      66,    80,   373,    69,   101,    68,    72,   378,    50,    14,
+      76,    68,    17,    18,    50,   221,    21,    96,    35,    36,
+      95,    26,    27,    98,    29,    74,    75,    76,    77,    92,
+      93,    53,    89,    90,    53,    95,   155,    61,    98,    26,
+      64,    63,    66,    95,    63,    26,    98,     0,    72,   337,
+      97,    98,    95,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
+     358,   137,   117,    96,    24,   141,    26,    97,    98,    26,
+     368,   147,    24,    98,    26,    98,   374,   153,   263,    26,
+      27,    96,    29,    45,    99,   161,   162,   163,    26,   156,
+     166,   167,   168,   169,   170,   171,    97,    98,    26,   175,
+     176,    26,   287,    97,    98,   290,    52,   183,   184,   185,
+      68,   187,    26,    71,    74,    75,    76,    77,    26,   304,
+     158,   159,    74,    75,    76,    77,    26,   101,   101,   314,
+     100,    89,    90,    91,    92,    93,    26,    17,    18,    19,
+      47,    52,    98,    98,    98,    98,    26,    98,    26,   225,
+     226,   227,   228,    33,   283,   284,   223,    43,   343,   235,
+     236,    26,    26,    26,   240,   241,   101,    26,    86,    26,
+      53,    84,   301,    34,    98,    85,    53,    26,    84,    52,
+     117,   252,   367,   178,   303,   188,   371,   266,    -1,    -1,
+     266,    -1,   377,    -1,   270,    -1,   381,    -1,    -1,    -1,
+      -1,   330,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,
+      -1,    -1,    -1,    -1,   281,    -1,    -1,   293,   294,   295,
+     296,   297,   298,   299,   300,    -1,    -1,    -1,   357,    -1,
+      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
+      66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
+      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
+     336,    87,    88,    89,    90,    91,    92,    93,   344,    -1,
+      -1,     0,     1,    -1,    -1,    -1,    -1,    -1,   354,    -1,
+      -1,    -1,    -1,    -1,    -1,    14,    -1,   363,    17,    18,
+      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
+      29,    30,    31,    -1,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    -1,    43,    -1,    45,    46,    47,    -1,
+      49,    50,    51,    52,    53,    54,    55,    -1,    -1,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,    78,
+      79,    80,    81,    82,    -1,    84,    85,    86,    87,    88,
+      89,    90,    91,    92,    93,    -1,    95,    96,    97,    98,
+      99,   100,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    17,
+      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
+      -1,    29,    30,    31,    -1,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    -1,    43,    -1,    45,    46,    47,
+      -1,    49,    50,    51,    52,    53,    54,    55,    -1,    -1,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,
+      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,     1,    95,    96,    97,
+      98,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    14,
+      -1,    43,    17,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    -1,    29,    -1,    -1,    -1,    33,    61,
+      62,    63,    64,    65,    66,    -1,    68,    69,    70,    71,
+      72,    73,    -1,    -1,    49,    -1,    51,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,    91,
+      92,    93,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     0,     1,    90,    91,    -1,    -1,    -1,
+      -1,    96,    -1,    -1,    99,   100,   101,    14,    -1,    -1,
+      17,    18,    -1,    -1,    21,    22,    23,    24,    25,    26,
+      27,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
+      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
+      -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,
       -1,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    -1,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,     1,    95,    96,
-      97,    98,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,
-      14,    -1,    43,    17,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    -1,    -1,    -1,    33,
-      61,    62,    63,    64,    65,    66,    -1,    68,    69,    70,
-      71,    72,    73,    -1,    -1,    49,    -1,    51,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,
-      91,    92,    93,    67,    -1,    -1,    -1,    -1,    -1,    -1,
-      74,    75,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     0,     1,    90,    91,    -1,    -1,
-      -1,    -1,    96,    -1,    -1,    99,   100,   101,    14,    -1,
+      67,    68,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
+      -1,    78,    -1,    -1,    81,    82,    -1,    84,    85,    86,
+      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
+       0,     1,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    14,    -1,    -1,    17,    18,    -1,
+      -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+      30,    31,    -1,    33,    -1,    35,    36,    37,    38,    39,
+      40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,
+      50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,
+      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
+      -1,    81,    82,    -1,    84,    85,    86,     0,     1,    -1,
+      90,    91,    -1,    -1,    -1,    95,    96,    -1,    98,    99,
+      -1,    14,    -1,    -1,    17,    18,    -1,    -1,    21,    22,
+      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
+      33,    -1,    35,    36,    37,    38,    39,    40,    41,    -1,
+      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
+      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
+      -1,    84,    85,    86,     0,     1,    -1,    90,    91,    -1,
+      -1,    -1,    95,    96,    -1,    98,    99,    -1,    14,    -1,
       -1,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    -1,    33,    -1,    35,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      26,    27,    -1,    29,    -1,    31,    32,    33,    -1,    -1,
+      -1,    37,    38,    39,    40,    41,    -1,    -1,    44,    -1,
       46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      -1,    -1,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    -1,    -1,    71,    72,    73,    74,    75,
-      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
-      96,     0,     1,    99,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    -1,    33,    -1,    35,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
-      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
-      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,    81,    82,    -1,    84,    85,    86,     0,     1,
-      -1,    90,    91,    -1,    -1,    -1,    95,    96,    -1,    98,
-      99,    -1,    14,    -1,    -1,    17,    18,    -1,    -1,    21,
+      -1,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    78,    -1,    -1,    81,    82,    83,     0,     1,
+      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
+      96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,    21,
       22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
-      -1,    33,    -1,    35,    36,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
-      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,    -1,    84,    85,    86,     0,     1,    -1,    90,    91,
-      -1,    -1,    -1,    95,    96,    -1,    98,    99,    -1,    14,
-      -1,    -1,    17,    18,    -1,    -1,    21,    22,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    31,    32,    33,    -1,
-      -1,    -1,    37,    38,    39,    40,    41,    -1,    -1,    44,
-      -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,
-      -1,    -1,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,    81,    82,    83,     0,
-       1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
-      95,    96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,
-      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
-      31,    -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,
-      51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,
-      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
-      -1,    -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,
-      81,    82,     0,     1,    -1,    -1,    -1,    -1,    -1,    90,
-      91,    -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,
-      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,
-      -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
-      58,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
-      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,
-      78,    -1,    -1,    81,    82,     0,     1,    -1,    -1,    -1,
-      -1,    -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,
-      -1,    99,    17,    18,    -1,    -1,    21,    22,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,
-      -1,    -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,
-      -1,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,    81,    82,    -1,     1,
-      -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
-      95,    96,    14,    -1,    99,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
-      -1,    33,    -1,    35,    36,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
-      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,    -1,    84,     1,    -1,    -1,    -1,    -1,    90,    91,
-      -1,    -1,    -1,    95,    96,    -1,    14,    99,    -1,    17,
-      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,
-      -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
-      58,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
-      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,
-      78,    -1,    -1,    81,    82,    -1,     1,    -1,    86,    -1,
-      -1,    -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,
-      -1,    99,    17,    18,    -1,    -1,    21,    22,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,
-      -1,    -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,
-      -1,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,    81,    82,    -1,     1,
-      85,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
-      95,    96,    14,    -1,    99,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
       -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
       -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
       -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,    -1,    84,     1,    -1,    -1,    -1,    -1,    90,    91,
-      -1,    -1,    -1,    95,    96,    -1,    14,    99,    -1,    17,
-      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,
-      -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
-      58,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
-      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,
-      78,    -1,    -1,    81,    82,    -1,     1,    85,    -1,    -1,
-      -1,    -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,
-      -1,    99,    17,    18,    -1,    -1,    21,    22,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,
-      -1,    -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,
-      -1,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,    81,    82,    -1,     1,
-      85,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
-      95,    96,    14,    -1,    99,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
-      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
-      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,    -1,     1,    85,    -1,    -1,    -1,    -1,    90,    91,
+      -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,
+      82,     0,     1,    -1,    -1,    -1,    -1,    -1,    90,    91,
       -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
       -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
       29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
-      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    58,
+      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
+      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
       59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,     1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    90,    91,    -1,    -1,    14,    -1,    96,    17,    18,
-      99,    -1,    21,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    -1,    -1,    33,    -1,    -1,    -1,     1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
-      49,    14,    51,    -1,    17,    18,    -1,    -1,    21,    -1,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    67,    -1,
-      33,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,    45,    -1,    47,    -1,    49,    -1,    51,    -1,
-      -1,    90,    91,    -1,    -1,    -1,    -1,    96,    -1,    -1,
-      99,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    74,    75,    76,    77,    78,    -1,    -1,     1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
-      -1,    14,    -1,    96,    17,    18,    99,    -1,    21,    -1,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    -1,    -1,
-      33,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    14,    51,    -1,
-      17,    18,    -1,    20,    21,    -1,    23,    24,    25,    26,
-      27,    -1,    29,    -1,    67,    -1,    33,    -1,    -1,    -1,
-      -1,    74,    75,    76,    77,    78,    -1,    -1,    -1,    -1,
-     280,    -1,    49,    -1,    51,    -1,    -1,    90,    91,    -1,
-      -1,    -1,    -1,    96,    97,    98,    99,    -1,    -1,    -1,
-      67,    -1,    -1,   303,    -1,    -1,   306,    74,    75,    76,
-      77,    78,   312,    -1,     1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    90,    91,    -1,   326,    14,    -1,    96,
-      17,    18,    99,    -1,    21,    -1,    23,    24,    25,    26,
-      27,    -1,    29,   343,    -1,    -1,    33,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    49,   363,    51,    -1,    -1,   367,    34,    -1,
-      -1,    -1,    -1,   373,    -1,    -1,    -1,   377,    -1,    -1,
-      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,
-      77,    78,    -1,    -1,    -1,    61,    62,    63,    64,    65,
-      66,    -1,    68,    90,    91,    71,    72,    73,    -1,    96,
-      -1,    -1,    99,    45,    -1,    47,    -1,    -1,    -1,    -1,
-      -1,    87,    88,    89,    90,    91,    92,    93,    -1,    61,
-      62,    63,    64,    65,    66,    -1,    68,    -1,    -1,    71,
-      72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,
-      -1,    -1,    -1,    -1,    53,    87,    88,    89,    90,    91,
-      92,    93,    61,    62,    63,    64,    65,    66,    -1,    68,
-      -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      -1,    -1,    81,    82,     0,     1,    -1,    -1,    -1,    -1,
+      -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
+      99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
+      -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
+      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    78,    -1,    -1,    81,    82,    -1,     1,    -1,
+      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
+      96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
+      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
+      33,    -1,    35,    36,    37,    38,    39,    40,    41,    -1,
+      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
+      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
+      -1,    84,     1,    -1,    -1,    -1,    -1,    90,    91,    -1,
+      -1,    -1,    95,    96,    -1,    14,    99,    -1,    17,    18,
+      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
+      29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
+      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
+      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
+      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      -1,    -1,    81,    82,    -1,     1,    -1,    86,    -1,    -1,
+      -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
+      99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
+      -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
+      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    78,    -1,    -1,    81,    82,    -1,     1,    85,
+      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
+      96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
+      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
+      33,    -1,    -1,    -1,    37,    38,    39,    40,    41,    -1,
+      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
+      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
+      -1,    84,     1,    -1,    -1,    -1,    -1,    90,    91,    -1,
+      -1,    -1,    95,    96,    -1,    14,    99,    -1,    17,    18,
+      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
+      29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
+      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
+      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
+      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      -1,    -1,    81,    82,    -1,     1,    85,    -1,    -1,    -1,
+      -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
+      99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
+      -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
+      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    78,    -1,    -1,    81,    82,    -1,     1,    85,
+      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
+      96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
+      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
+      33,    -1,    -1,    -1,    37,    38,    39,    40,    41,    -1,
+      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
+      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
+      -1,     1,    85,    -1,    -1,    -1,    -1,    90,    91,    -1,
+      -1,    -1,    95,    96,    14,    -1,    99,    17,    18,    -1,
+      -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+      -1,    31,    -1,    33,    -1,    53,    -1,    37,    38,    39,
+      40,    -1,    -1,    61,    62,    63,    64,    65,    66,    49,
+      68,    51,    -1,    71,    72,    73,    -1,    -1,    58,    59,
+      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    87,
+      88,    89,    90,    91,    92,    93,    -1,    95,    78,    -1,
+      -1,     1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      90,    91,    -1,    -1,    14,    -1,    96,    17,    18,    99,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    -1,    29,
+      -1,    -1,    -1,    33,    -1,    -1,    -1,     1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,    49,
+      14,    51,    -1,    17,    18,    -1,    -1,    21,    -1,    23,
+      24,    25,    26,    27,    -1,    29,    -1,    67,    -1,    33,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
+      -1,    45,    -1,    47,    -1,    49,    -1,    51,    -1,    -1,
+      90,    91,    -1,     1,    -1,    -1,    96,    -1,    -1,    99,
+      -1,    -1,    -1,    67,    -1,    -1,    14,    -1,    -1,    17,
+      18,    -1,    -1,    21,    78,    23,    24,    25,    26,    27,
+      -1,    29,    -1,    -1,    -1,    33,    90,    91,    -1,     1,
+      -1,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
+      -1,    49,    14,    51,    -1,    17,    18,    -1,    -1,    21,
+      -1,    23,    24,    25,    26,    27,    -1,    29,    -1,    67,
+      -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      78,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    51,
+      -1,    -1,    90,    91,    -1,     1,    -1,    -1,    96,    97,
+      98,    99,    -1,    -1,    -1,    67,    -1,    -1,    14,    -1,
+      -1,    17,    18,    -1,    20,    21,    78,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    -1,    -1,    33,    90,    91,
+      -1,     1,    -1,    -1,    96,    97,    98,    99,    -1,    -1,
+      -1,    -1,    -1,    49,    14,    51,    -1,    17,    18,    -1,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    -1,    29,
+      -1,    67,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    49,
+      -1,    51,    -1,    -1,    90,    91,    -1,    -1,    -1,    -1,
+      96,    -1,    -1,    99,    -1,    -1,    45,    67,    47,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
+      -1,    -1,    61,    62,    63,    64,    65,    66,    -1,    68,
+      90,    91,    71,    72,    73,    -1,    96,    -1,    -1,    99,
       -1,    47,    -1,    -1,    -1,    -1,    -1,    53,    87,    88,
       89,    90,    91,    92,    93,    61,    62,    63,    64,    65,
       66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
@@ -1581,7 +1587,7 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    53,    87,    88,    89,    90,    91,    92,
       93,    61,    62,    63,    64,    65,    66,    -1,    68,    -1,
       -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
-      47,    -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
+      47,    -1,    -1,    -1,    -1,    -1,    53,    87,    88,    89,
       90,    91,    92,    93,    61,    62,    63,    64,    65,    66,
       -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
       -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1594,12 +1600,12 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,
       91,    92,    93,    61,    62,    63,    64,    65,    66,    -1,
       68,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    87,
+      -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    87,
       88,    89,    90,    91,    92,    93,    61,    62,    63,    64,
       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    87,    88,    89,    90,    91,    92,    93,    55,
-      95,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
+      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
       66,    -1,    68,    -1,    -1,    71,    72,    73,    61,    62,
       63,    64,    65,    66,    -1,    68,    -1,    -1,    71,    72,
       73,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
@@ -1622,42 +1628,42 @@ static const yytype_uint8 yystos[] =
        0,     1,    14,    17,    18,    21,    22,    23,    24,    25,
       26,    27,    29,    31,    32,    33,    37,    38,    39,    40,
       41,    44,    46,    49,    50,    51,    54,    57,    58,    59,
-      60,    67,    74,    75,    76,    77,    78,    81,    82,    83,
-      90,    91,    96,    99,   103,   104,   105,   106,   107,   119,
-     125,   128,   129,   131,   132,   133,   140,   142,   144,   147,
-     152,   155,    95,    26,   128,    26,    49,    96,   129,   153,
-      96,   153,   128,    47,    96,   129,   154,   143,   146,    50,
-     134,    45,    46,    47,    48,   129,   141,   145,    50,    20,
-     129,    55,    56,    17,    18,    19,    26,    33,    26,    26,
-     129,   129,   141,   136,   129,   129,   129,   129,   129,   129,
-     129,   135,   148,   129,   129,   129,    26,    27,    29,   101,
-     129,   156,   157,   158,   159,     0,    95,   129,    61,    62,
-      63,    64,    65,    66,    68,    71,    72,    73,    87,    88,
-      89,    90,    91,    92,    93,   126,    96,   129,   129,   153,
-      98,   153,   128,    26,   153,    98,   153,   126,    26,   137,
-     129,    45,   141,    26,    26,    43,    69,    70,    26,   126,
-      53,    63,   128,   128,    53,    63,    53,    63,    52,    55,
-     141,    26,   139,    47,    53,    47,    53,    47,    53,    47,
-      53,    79,    80,    53,    95,    26,   138,    26,    97,   101,
-     101,   101,   100,    98,    98,   103,   122,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,    26,   149,    97,   129,    97,    97,
-      98,    97,   129,   149,    98,   129,   126,   128,    26,   132,
-      26,   132,    26,   132,    42,    63,   129,   129,   129,    53,
-      63,    47,   129,   129,   129,   129,   129,   129,    98,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   118,
-     118,    98,   129,   129,   129,   129,    26,    27,    29,   159,
-      52,    95,    98,   130,    95,    26,   149,    43,   129,   129,
-     122,   129,   129,    26,    26,    47,    47,    47,    47,   106,
-     127,    26,   127,   151,    26,   154,   151,    95,   129,   114,
-     108,   111,   117,   128,   129,   129,   129,   129,   126,    95,
-     107,   126,   123,   127,    97,   127,   151,   126,   124,   124,
-     127,    53,    63,    86,   120,    30,   127,   115,   109,   112,
-     123,   129,   129,    35,    36,   121,   126,    26,   150,   122,
-      53,    34,    85,   127,   129,    84,    98,   116,   129,    53,
-     126,   122,    26,   117,   110,   129,    84,    52,   127,   122,
-     113,   127,    85,   117,   122,   123,   127,   117,    85,   127,
-      85
+      60,    67,    78,    81,    82,    83,    90,    91,    96,    99,
+     103,   104,   105,   106,   107,   119,   125,   128,   129,   133,
+     140,   142,   144,   147,   152,   155,    95,    26,   128,    26,
+      49,    96,   129,   153,    96,   153,    96,   153,    47,    96,
+     129,   154,   143,   146,    50,   134,    45,    46,    47,    48,
+     129,   141,   145,    50,    20,   129,    55,    56,    17,    18,
+      19,    26,    33,    26,    26,   129,   129,   141,   136,   129,
+     129,   129,   135,   148,   129,   129,   129,    26,    27,    29,
+     101,   129,   156,   157,   158,   159,     0,    95,   129,    61,
+      62,    63,    64,    65,    66,    68,    71,    72,    73,    87,
+      88,    89,    90,    91,    92,    93,   126,    96,   129,   129,
+     153,    98,   153,   153,   128,    26,   153,    98,   153,   126,
+      26,   137,   129,    45,   141,    26,    26,    43,    69,    70,
+      26,   126,    53,    63,   128,   128,    53,    63,    53,    63,
+      52,    55,   141,    26,   139,    79,    80,    53,    95,    26,
+     138,    26,    97,   101,   101,   101,   100,    98,    98,   103,
+     122,   129,   129,   129,   129,   129,   129,   129,   129,   129,
+     129,   129,   129,   129,   129,   129,   129,   129,    26,   149,
+      97,   129,    97,    97,    97,    98,    97,   129,   149,    98,
+     129,   126,   128,    24,    26,    74,    75,    76,    77,   131,
+     132,    26,   132,    26,   132,    42,    63,   129,   129,   129,
+      53,    63,    47,   129,   129,   129,   129,   129,   129,    98,
+     129,   129,   118,   118,    98,   129,   129,   129,   129,    26,
+      27,    29,   159,    52,    95,    98,   130,    95,    26,   149,
+      43,   128,   129,   129,   129,   129,   129,   129,   122,   129,
+     129,    26,    26,   106,   127,    26,   127,   151,    26,   154,
+     151,    95,   129,    47,    53,    47,    53,    47,    53,    47,
+      53,   114,   108,   111,   117,   128,   126,    95,   107,   126,
+     123,   127,    97,   127,   151,   129,   129,   129,   129,   129,
+     129,   129,   129,   126,   124,   124,   127,    53,    63,    86,
+     120,    30,   127,    47,    47,    47,    47,   115,   109,   112,
+     123,   129,   129,    35,    36,   121,   126,    26,   150,   129,
+     129,   129,   129,   122,    53,    34,    85,   127,   129,    84,
+      98,   116,   129,    53,   126,   122,    26,   117,   110,   129,
+      84,    52,   127,   122,   113,   127,    85,   117,   122,   123,
+     127,   117,    85,   127,    85
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1670,18 +1676,18 @@ static const yytype_uint8 yyr1[] =
      116,   107,   107,   107,   107,   107,   117,   118,   119,   119,
      120,   120,   121,   122,   123,   124,   125,   126,   127,   127,
      127,   128,   128,   128,   128,   128,   128,   128,   128,   128,
-     128,   129,   129,   129,   129,   129,   130,   129,   129,   129,
+     128,   129,   129,   129,   129,   129,   129,   130,   129,   129,
      129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
      129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   131,   131,   131,   131,   131,   131,
-     131,   131,   132,   132,   133,   133,   133,   133,   133,   134,
-     133,   135,   133,   136,   133,   133,   133,   133,   133,   137,
-     137,   138,   138,   139,   139,   140,   140,   140,   140,   140,
-     140,   141,   141,   142,   142,   142,   143,   142,   145,   144,
-     144,   146,   144,   144,   144,   148,   147,   149,   149,   149,
-     150,   150,   150,   151,   152,   153,   153,   153,   154,   154,
-     155,   156,   156,   156,   156,   157,   157,   158,   158,   159,
-     159,   159
+     129,   129,   129,   129,   129,   131,   131,   131,   131,   131,
+     131,   131,   131,   132,   132,   133,   133,   133,   133,   133,
+     134,   133,   135,   133,   136,   133,   133,   133,   133,   133,
+     137,   137,   138,   138,   139,   139,   140,   140,   140,   140,
+     140,   140,   141,   141,   142,   142,   142,   143,   142,   145,
+     144,   144,   146,   144,   144,   144,   148,   147,   149,   149,
+     149,   150,   150,   150,   151,   152,   153,   153,   153,   154,
+     154,   155,   156,   156,   156,   156,   157,   157,   158,   158,
+     159,   159,   159
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1694,18 +1700,18 @@ static const yytype_int8 yyr2[] =
        0,    13,     2,     4,     7,     6,     0,     0,     9,    11,
        0,     2,     6,     0,     0,     0,     1,     0,     0,     2,
        2,     1,     1,     1,     1,     1,     1,     2,     3,     1,
-       2,     1,     1,     4,     2,     4,     0,     7,     4,     3,
-       1,     1,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     2,     3,     3,     3,     3,
-       2,     2,     4,     4,     4,     6,     4,     6,     4,     6,
-       4,     6,     2,     1,     2,     1,     1,     2,     1,     0,
-       3,     0,     3,     0,     3,     4,     2,     4,     2,     1,
-       3,     1,     3,     1,     3,     1,     2,     2,     2,     3,
-       2,     3,     2,     2,     3,     2,     0,     3,     0,     8,
-       2,     0,     7,     8,     6,     0,     3,     0,     1,     3,
-       0,     1,     3,     0,     2,     0,     1,     3,     1,     3,
-       3,     0,     1,     1,     1,     1,     3,     1,     3,     3,
-       3,     3
+       2,     1,     4,     2,     4,     2,     4,     0,     7,     4,
+       3,     1,     1,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     2,     3,     3,     3,
+       3,     2,     2,     4,     4,     4,     6,     4,     6,     4,
+       6,     4,     6,     2,     1,     2,     1,     1,     2,     1,
+       0,     3,     0,     3,     0,     3,     4,     2,     4,     2,
+       1,     3,     1,     3,     1,     3,     1,     2,     2,     2,
+       3,     2,     3,     2,     2,     3,     2,     0,     3,     0,
+       8,     2,     0,     7,     8,     6,     0,     3,     0,     1,
+       3,     0,     1,     3,     0,     2,     0,     1,     3,     1,
+       3,     3,     0,     1,     1,     1,     1,     3,     1,     3,
+       3,     3,     3
 };
 
 
@@ -1979,73 +1985,73 @@ yydestruct (const char *yymsg,
     case 22: /* BLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1983 "engines/director/lingo/lingo-gr.cpp"
+#line 1989 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 23: /* FBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1989 "engines/director/lingo/lingo-gr.cpp"
+#line 1995 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 24: /* RBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 25: /* THEFBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 26: /* ID  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2013 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 27: /* STRING  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2019 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 28: /* HANDLER  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2019 "engines/director/lingo/lingo-gr.cpp"
+#line 2025 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 29: /* SYMBOL  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2025 "engines/director/lingo/lingo-gr.cpp"
+#line 2031 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 30: /* ENDCLAUSE  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2031 "engines/director/lingo/lingo-gr.cpp"
+#line 2037 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 31: /* tPLAYACCEL  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2037 "engines/director/lingo/lingo-gr.cpp"
+#line 2043 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 32: /* tMETHOD  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2043 "engines/director/lingo/lingo-gr.cpp"
+#line 2049 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 147: /* on  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2049 "engines/director/lingo/lingo-gr.cpp"
+#line 2055 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2332,7 +2338,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2336 "engines/director/lingo/lingo-gr.cpp"
+#line 2342 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 8:
@@ -2340,7 +2346,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2344 "engines/director/lingo/lingo-gr.cpp"
+#line 2350 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 9:
@@ -2356,7 +2362,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-4].e)[1]);
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2360 "engines/director/lingo/lingo-gr.cpp"
+#line 2366 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10:
@@ -2368,7 +2374,7 @@ yyreduce:
 		g_lingo->code1(LC::c_after);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2372 "engines/director/lingo/lingo-gr.cpp"
+#line 2378 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11:
@@ -2376,7 +2382,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_after);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2380 "engines/director/lingo/lingo-gr.cpp"
+#line 2386 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12:
@@ -2388,7 +2394,7 @@ yyreduce:
 		g_lingo->code1(LC::c_before);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2392 "engines/director/lingo/lingo-gr.cpp"
+#line 2398 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13:
@@ -2396,7 +2402,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_before);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2400 "engines/director/lingo/lingo-gr.cpp"
+#line 2406 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14:
@@ -2408,7 +2414,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2412 "engines/director/lingo/lingo-gr.cpp"
+#line 2418 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 15:
@@ -2420,7 +2426,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2424 "engines/director/lingo/lingo-gr.cpp"
+#line 2430 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16:
@@ -2432,7 +2438,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2436 "engines/director/lingo/lingo-gr.cpp"
+#line 2442 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17:
@@ -2444,7 +2450,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2448 "engines/director/lingo/lingo-gr.cpp"
+#line 2454 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18:
@@ -2455,7 +2461,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2459 "engines/director/lingo/lingo-gr.cpp"
+#line 2465 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 19:
@@ -2466,7 +2472,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2470 "engines/director/lingo/lingo-gr.cpp"
+#line 2476 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 20:
@@ -2482,7 +2488,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2486 "engines/director/lingo/lingo-gr.cpp"
+#line 2492 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 21:
@@ -2498,7 +2504,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2502 "engines/director/lingo/lingo-gr.cpp"
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 22:
@@ -2510,7 +2516,7 @@ yyreduce:
 		delete (yyvsp[-2].objectprop).obj;
 		delete (yyvsp[-2].objectprop).prop;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2514 "engines/director/lingo/lingo-gr.cpp"
+#line 2520 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 23:
@@ -2522,7 +2528,7 @@ yyreduce:
 		delete (yyvsp[-2].objectprop).obj;
 		delete (yyvsp[-2].objectprop).prop;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2526 "engines/director/lingo/lingo-gr.cpp"
+#line 2532 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29:
@@ -2534,7 +2540,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end;		/* end, if cond fails */
 		(*g_lingo->_currentAssembly)[(yyvsp[-1].code)] = start;	/* looping back */
 		endRepeat((yyvsp[-1].code) + 1, (yyvsp[-6].code));	}
-#line 2538 "engines/director/lingo/lingo-gr.cpp"
+#line 2544 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30:
@@ -2542,20 +2548,20 @@ yyreduce:
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), globalCheck()); }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 2552 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31:
 #line 368 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2553 "engines/director/lingo/lingo-gr.cpp"
+#line 2559 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32:
 #line 371 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_le); }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33:
@@ -2580,7 +2586,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end;	/* end, if cond fails */
 		endRepeat(pos + 1, nextPos); }
-#line 2584 "engines/director/lingo/lingo-gr.cpp"
+#line 2590 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34:
@@ -2588,20 +2594,20 @@ yyreduce:
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), globalCheck()); }
-#line 2592 "engines/director/lingo/lingo-gr.cpp"
+#line 2598 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35:
 #line 402 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2599 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36:
 #line 405 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_ge); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2611 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 37:
@@ -2626,7 +2632,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end;	/* end, if cond fails */
 		endRepeat(pos + 1, nextPos); }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 38:
@@ -2637,7 +2643,7 @@ yyreduce:
 				  g_lingo->codeFunc(&count, 1);
 				  g_lingo->code1(LC::c_intpush);	// start counter
 				  g_lingo->codeInt(1); }
-#line 2641 "engines/director/lingo/lingo-gr.cpp"
+#line 2647 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39:
@@ -2647,7 +2653,7 @@ yyreduce:
 				  g_lingo->code1(LC::c_stackpeek);	// get array size
 				  g_lingo->codeInt(2);
 				  g_lingo->code1(LC::c_le); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 40:
@@ -2662,7 +2668,7 @@ yyreduce:
 				  g_lingo->codeString((yyvsp[-6].s)->c_str());
 				  mVar((yyvsp[-6].s), globalCheck());
 				  g_lingo->code1(LC::c_assign); }
-#line 2666 "engines/director/lingo/lingo-gr.cpp"
+#line 2672 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 41:
@@ -2686,7 +2692,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[jump + 1] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end;		/* end, if cond fails */
 		endRepeat(end2, nextPos); }
-#line 2690 "engines/director/lingo/lingo-gr.cpp"
+#line 2696 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42:
@@ -2699,7 +2705,7 @@ yyreduce:
 		} else {
 			warning("# LINGO: next repeat not inside repeat block");
 		} }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43:
@@ -2707,31 +2713,31 @@ yyreduce:
                               {
 		g_lingo->code1(LC::c_whencode);
 		g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44:
 #line 486 "engines/director/lingo/lingo-gr.y"
                                                           { g_lingo->code1(LC::c_telldone); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 45:
 #line 487 "engines/director/lingo/lingo-gr.y"
                                                     { g_lingo->code1(LC::c_telldone); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 46:
 #line 489 "engines/director/lingo/lingo-gr.y"
                                 { startRepeat(); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47:
 #line 491 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_tell); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48:
@@ -2743,7 +2749,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-6].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end3;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-3].code), (yyvsp[-1].code)); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 49:
@@ -2755,7 +2761,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-8].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentAssembly)[(yyvsp[-5].code)] = end;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-5].code), (yyvsp[-1].code)); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52:
@@ -2765,7 +2771,7 @@ yyreduce:
 		WRITE_UINT32(&else1, (yyvsp[0].code) + 1 - (yyvsp[-3].code) + 1);
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = else1;	/* end, if cond fails */
 		g_lingo->codeLabel((yyvsp[0].code)); }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 53:
@@ -2773,7 +2779,7 @@ yyreduce:
                                 {
 		g_lingo->code2(LC::c_jumpifz, 0);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 54:
@@ -2781,7 +2787,7 @@ yyreduce:
                                 {
 		g_lingo->code2(LC::c_jump, 0);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2785 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 55:
@@ -2789,26 +2795,26 @@ yyreduce:
                                         {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 56:
 #line 529 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeLabel(0); }
-#line 2800 "engines/director/lingo/lingo-gr.cpp"
+#line 2806 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 57:
 #line 532 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2806 "engines/director/lingo/lingo-gr.cpp"
+#line 2812 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 58:
 #line 534 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2812 "engines/director/lingo/lingo-gr.cpp"
+#line 2818 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 61:
@@ -2816,7 +2822,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt((yyvsp[0].i)); }
-#line 2820 "engines/director/lingo/lingo-gr.cpp"
+#line 2826 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 62:
@@ -2824,7 +2830,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_floatpush);
 		g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2828 "engines/director/lingo/lingo-gr.cpp"
+#line 2834 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 63:
@@ -2833,7 +2839,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 64:
@@ -2842,7 +2848,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2852 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 65:
@@ -2851,7 +2857,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_eval);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 66:
@@ -2864,7 +2870,7 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[0].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[0].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2868 "engines/director/lingo/lingo-gr.cpp"
+#line 2874 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 67:
@@ -2875,13 +2881,13 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 68:
 #line 570 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 70:
@@ -2896,280 +2902,296 @@ yyreduce:
 			yyerrok;
 		}
 	}
-#line 2900 "engines/director/lingo/lingo-gr.cpp"
+#line 2906 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 71:
 #line 583 "engines/director/lingo/lingo-gr.y"
                  { (yyval.code) = (yyvsp[0].code); }
-#line 2906 "engines/director/lingo/lingo-gr.cpp"
+#line 2912 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 73:
-#line 585 "engines/director/lingo/lingo-gr.y"
+  case 72:
+#line 584 "engines/director/lingo/lingo-gr.y"
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2914 "engines/director/lingo/lingo-gr.cpp"
+#line 2920 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 74:
-#line 588 "engines/director/lingo/lingo-gr.y"
+  case 73:
+#line 587 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2922 "engines/director/lingo/lingo-gr.cpp"
+#line 2928 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 74:
+#line 590 "engines/director/lingo/lingo-gr.y"
+                                 {
+		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
+		delete (yyvsp[-3].s); }
+#line 2936 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 75:
-#line 591 "engines/director/lingo/lingo-gr.y"
+#line 593 "engines/director/lingo/lingo-gr.y"
+                                {
+		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
+		delete (yyvsp[-1].s); }
+#line 2944 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 76:
+#line 596 "engines/director/lingo/lingo-gr.y"
                                       {
 			g_lingo->code1(LC::c_lazyeval);
 			g_lingo->codeString((yyvsp[-1].s)->c_str());
 			g_lingo->codeFunc((yyvsp[-3].s), 1);
 			delete (yyvsp[-3].s);
 			delete (yyvsp[-1].s); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 2955 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 76:
-#line 597 "engines/director/lingo/lingo-gr.y"
+  case 77:
+#line 602 "engines/director/lingo/lingo-gr.y"
                                       { g_lingo->code1(LC::c_lazyeval); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2961 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 77:
-#line 598 "engines/director/lingo/lingo-gr.y"
+  case 78:
+#line 603 "engines/director/lingo/lingo-gr.y"
                                                     {
 			g_lingo->codeFunc((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
 			delete (yyvsp[-6].s);
 			delete (yyvsp[-4].s); }
-#line 2948 "engines/director/lingo/lingo-gr.cpp"
+#line 2970 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 78:
-#line 602 "engines/director/lingo/lingo-gr.y"
+  case 79:
+#line 607 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2956 "engines/director/lingo/lingo-gr.cpp"
+#line 2978 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 79:
-#line 605 "engines/director/lingo/lingo-gr.y"
+  case 80:
+#line 610 "engines/director/lingo/lingo-gr.y"
                                         {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
 		delete (yyvsp[-2].s); }
-#line 2964 "engines/director/lingo/lingo-gr.cpp"
+#line 2986 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 80:
-#line 608 "engines/director/lingo/lingo-gr.y"
+  case 81:
+#line 613 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_objectproppush);
 		g_lingo->codeString((yyvsp[0].objectprop).obj->c_str());
 		g_lingo->codeString((yyvsp[0].objectprop).prop->c_str());
 		delete (yyvsp[0].objectprop).obj;
 		delete (yyvsp[0].objectprop).prop; }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 2997 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 82:
-#line 615 "engines/director/lingo/lingo-gr.y"
+  case 83:
+#line 620 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_add); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 3003 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 83:
-#line 616 "engines/director/lingo/lingo-gr.y"
+  case 84:
+#line 621 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_sub); }
-#line 2987 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 84:
-#line 617 "engines/director/lingo/lingo-gr.y"
+  case 85:
+#line 622 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mul); }
-#line 2993 "engines/director/lingo/lingo-gr.cpp"
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 85:
-#line 618 "engines/director/lingo/lingo-gr.y"
+  case 86:
+#line 623 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_div); }
-#line 2999 "engines/director/lingo/lingo-gr.cpp"
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 86:
-#line 619 "engines/director/lingo/lingo-gr.y"
+  case 87:
+#line 624 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mod); }
-#line 3005 "engines/director/lingo/lingo-gr.cpp"
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 87:
-#line 620 "engines/director/lingo/lingo-gr.y"
+  case 88:
+#line 625 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gt); }
-#line 3011 "engines/director/lingo/lingo-gr.cpp"
+#line 3033 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 88:
-#line 621 "engines/director/lingo/lingo-gr.y"
+  case 89:
+#line 626 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lt); }
-#line 3017 "engines/director/lingo/lingo-gr.cpp"
+#line 3039 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 89:
-#line 622 "engines/director/lingo/lingo-gr.y"
+  case 90:
+#line 627 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_eq); }
-#line 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 3045 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 90:
-#line 623 "engines/director/lingo/lingo-gr.y"
+  case 91:
+#line 628 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_neq); }
-#line 3029 "engines/director/lingo/lingo-gr.cpp"
+#line 3051 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 91:
-#line 624 "engines/director/lingo/lingo-gr.y"
+  case 92:
+#line 629 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ge); }
-#line 3035 "engines/director/lingo/lingo-gr.cpp"
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 92:
-#line 625 "engines/director/lingo/lingo-gr.y"
+  case 93:
+#line 630 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_le); }
-#line 3041 "engines/director/lingo/lingo-gr.cpp"
+#line 3063 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 93:
-#line 626 "engines/director/lingo/lingo-gr.y"
+  case 94:
+#line 631 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_and); }
-#line 3047 "engines/director/lingo/lingo-gr.cpp"
+#line 3069 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 94:
-#line 627 "engines/director/lingo/lingo-gr.y"
+  case 95:
+#line 632 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_or); }
-#line 3053 "engines/director/lingo/lingo-gr.cpp"
+#line 3075 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 95:
-#line 628 "engines/director/lingo/lingo-gr.y"
+  case 96:
+#line 633 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_not); }
-#line 3059 "engines/director/lingo/lingo-gr.cpp"
+#line 3081 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 96:
-#line 629 "engines/director/lingo/lingo-gr.y"
+  case 97:
+#line 634 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ampersand); }
-#line 3065 "engines/director/lingo/lingo-gr.cpp"
+#line 3087 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 97:
-#line 630 "engines/director/lingo/lingo-gr.y"
+  case 98:
+#line 635 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_concat); }
-#line 3071 "engines/director/lingo/lingo-gr.cpp"
+#line 3093 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 98:
-#line 631 "engines/director/lingo/lingo-gr.y"
+  case 99:
+#line 636 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_contains); }
-#line 3077 "engines/director/lingo/lingo-gr.cpp"
+#line 3099 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 99:
-#line 632 "engines/director/lingo/lingo-gr.y"
+  case 100:
+#line 637 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_starts); }
-#line 3083 "engines/director/lingo/lingo-gr.cpp"
+#line 3105 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 100:
-#line 633 "engines/director/lingo/lingo-gr.y"
+  case 101:
+#line 638 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[0].code); }
-#line 3089 "engines/director/lingo/lingo-gr.cpp"
+#line 3111 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 101:
-#line 634 "engines/director/lingo/lingo-gr.y"
+  case 102:
+#line 639 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 3095 "engines/director/lingo/lingo-gr.cpp"
+#line 3117 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 102:
-#line 635 "engines/director/lingo/lingo-gr.y"
+  case 103:
+#line 640 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_intersects); }
-#line 3101 "engines/director/lingo/lingo-gr.cpp"
+#line 3123 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 103:
-#line 636 "engines/director/lingo/lingo-gr.y"
+  case 104:
+#line 641 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_within); }
-#line 3107 "engines/director/lingo/lingo-gr.cpp"
+#line 3129 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 104:
-#line 638 "engines/director/lingo/lingo-gr.y"
+  case 105:
+#line 643 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_charOf); }
-#line 3113 "engines/director/lingo/lingo-gr.cpp"
+#line 3135 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 105:
-#line 639 "engines/director/lingo/lingo-gr.y"
+  case 106:
+#line 644 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_charToOf); }
-#line 3119 "engines/director/lingo/lingo-gr.cpp"
+#line 3141 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 106:
-#line 640 "engines/director/lingo/lingo-gr.y"
+  case 107:
+#line 645 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_itemOf); }
-#line 3125 "engines/director/lingo/lingo-gr.cpp"
+#line 3147 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 107:
-#line 641 "engines/director/lingo/lingo-gr.y"
+  case 108:
+#line 646 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_itemToOf); }
-#line 3131 "engines/director/lingo/lingo-gr.cpp"
+#line 3153 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 108:
-#line 642 "engines/director/lingo/lingo-gr.y"
+  case 109:
+#line 647 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lineOf); }
-#line 3137 "engines/director/lingo/lingo-gr.cpp"
+#line 3159 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 109:
-#line 643 "engines/director/lingo/lingo-gr.y"
+  case 110:
+#line 648 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_lineToOf); }
-#line 3143 "engines/director/lingo/lingo-gr.cpp"
+#line 3165 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 110:
-#line 644 "engines/director/lingo/lingo-gr.y"
+  case 111:
+#line 649 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_wordOf); }
-#line 3149 "engines/director/lingo/lingo-gr.cpp"
+#line 3171 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 111:
-#line 645 "engines/director/lingo/lingo-gr.y"
+  case 112:
+#line 650 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_wordToOf); }
-#line 3155 "engines/director/lingo/lingo-gr.cpp"
+#line 3177 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 112:
-#line 647 "engines/director/lingo/lingo-gr.y"
+  case 113:
+#line 652 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), 1);
 		delete (yyvsp[-1].s); }
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
+#line 3185 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 114:
-#line 652 "engines/director/lingo/lingo-gr.y"
+  case 115:
+#line 657 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_printtop); }
-#line 3169 "engines/director/lingo/lingo-gr.cpp"
+#line 3191 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 117:
-#line 655 "engines/director/lingo/lingo-gr.y"
+  case 118:
+#line 660 "engines/director/lingo/lingo-gr.y"
                                                 {
 		if (g_lingo->_repeatStack.size()) {
 			g_lingo->code2(LC::c_jump, 0);
@@ -3178,258 +3200,258 @@ yyreduce:
 		} else {
 			warning("# LINGO: exit repeat not inside repeat block");
 		} }
-#line 3182 "engines/director/lingo/lingo-gr.cpp"
+#line 3204 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 118:
-#line 663 "engines/director/lingo/lingo-gr.y"
+  case 119:
+#line 668 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_procret); }
-#line 3188 "engines/director/lingo/lingo-gr.cpp"
+#line 3210 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 119:
-#line 664 "engines/director/lingo/lingo-gr.y"
+  case 120:
+#line 669 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3216 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 120:
-#line 664 "engines/director/lingo/lingo-gr.y"
+  case 121:
+#line 669 "engines/director/lingo/lingo-gr.y"
                                                                                  { inLast(); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3222 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 121:
-#line 665 "engines/director/lingo/lingo-gr.y"
+  case 122:
+#line 670 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3206 "engines/director/lingo/lingo-gr.cpp"
+#line 3228 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 122:
-#line 665 "engines/director/lingo/lingo-gr.y"
+  case 123:
+#line 670 "engines/director/lingo/lingo-gr.y"
                                                                                    { inLast(); }
-#line 3212 "engines/director/lingo/lingo-gr.cpp"
+#line 3234 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 123:
-#line 666 "engines/director/lingo/lingo-gr.y"
+  case 124:
+#line 671 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3218 "engines/director/lingo/lingo-gr.cpp"
+#line 3240 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 124:
-#line 666 "engines/director/lingo/lingo-gr.y"
+  case 125:
+#line 671 "engines/director/lingo/lingo-gr.y"
                                                                                    { inLast(); }
-#line 3224 "engines/director/lingo/lingo-gr.cpp"
+#line 3246 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 125:
-#line 667 "engines/director/lingo/lingo-gr.y"
+  case 126:
+#line 672 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 3232 "engines/director/lingo/lingo-gr.cpp"
+#line 3254 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 126:
-#line 670 "engines/director/lingo/lingo-gr.y"
+  case 127:
+#line 675 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 127:
-#line 673 "engines/director/lingo/lingo-gr.y"
+  case 128:
+#line 678 "engines/director/lingo/lingo-gr.y"
                                         {
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 2); }
-#line 3248 "engines/director/lingo/lingo-gr.cpp"
+#line 3270 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 128:
-#line 676 "engines/director/lingo/lingo-gr.y"
+  case 129:
+#line 681 "engines/director/lingo/lingo-gr.y"
                                                 {
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 1); }
-#line 3256 "engines/director/lingo/lingo-gr.cpp"
+#line 3278 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 129:
-#line 680 "engines/director/lingo/lingo-gr.y"
+  case 130:
+#line 685 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 130:
-#line 683 "engines/director/lingo/lingo-gr.y"
+  case 131:
+#line 688 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3272 "engines/director/lingo/lingo-gr.cpp"
+#line 3294 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 131:
-#line 687 "engines/director/lingo/lingo-gr.y"
+  case 132:
+#line 692 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3280 "engines/director/lingo/lingo-gr.cpp"
+#line 3302 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 132:
-#line 690 "engines/director/lingo/lingo-gr.y"
+  case 133:
+#line 695 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3288 "engines/director/lingo/lingo-gr.cpp"
+#line 3310 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 133:
-#line 694 "engines/director/lingo/lingo-gr.y"
+  case 134:
+#line 699 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3296 "engines/director/lingo/lingo-gr.cpp"
+#line 3318 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 134:
-#line 697 "engines/director/lingo/lingo-gr.y"
+  case 135:
+#line 702 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+#line 3326 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 135:
-#line 708 "engines/director/lingo/lingo-gr.y"
+  case 136:
+#line 713 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoloop); }
-#line 3310 "engines/director/lingo/lingo-gr.cpp"
+#line 3332 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 136:
-#line 709 "engines/director/lingo/lingo-gr.y"
+  case 137:
+#line 714 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_gotonext); }
-#line 3316 "engines/director/lingo/lingo-gr.cpp"
+#line 3338 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 137:
-#line 710 "engines/director/lingo/lingo-gr.y"
+  case 138:
+#line 715 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoprevious); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+#line 3344 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 138:
-#line 711 "engines/director/lingo/lingo-gr.y"
+  case 139:
+#line 716 "engines/director/lingo/lingo-gr.y"
                                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 3331 "engines/director/lingo/lingo-gr.cpp"
+#line 3353 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 139:
-#line 715 "engines/director/lingo/lingo-gr.y"
+  case 140:
+#line 720 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 3340 "engines/director/lingo/lingo-gr.cpp"
+#line 3362 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 140:
-#line 719 "engines/director/lingo/lingo-gr.y"
+  case 141:
+#line 724 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 3349 "engines/director/lingo/lingo-gr.cpp"
+#line 3371 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 143:
-#line 727 "engines/director/lingo/lingo-gr.y"
+  case 144:
+#line 732 "engines/director/lingo/lingo-gr.y"
                                         { // "play #done" is also caught by this
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 3358 "engines/director/lingo/lingo-gr.cpp"
+#line 3380 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 144:
-#line 731 "engines/director/lingo/lingo-gr.y"
+  case 145:
+#line 736 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 3367 "engines/director/lingo/lingo-gr.cpp"
+#line 3389 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 145:
-#line 735 "engines/director/lingo/lingo-gr.y"
+  case 146:
+#line 740 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 3376 "engines/director/lingo/lingo-gr.cpp"
+#line 3398 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 146:
-#line 739 "engines/director/lingo/lingo-gr.y"
+  case 147:
+#line 744 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 3382 "engines/director/lingo/lingo-gr.cpp"
+#line 3404 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 147:
-#line 739 "engines/director/lingo/lingo-gr.y"
+  case 148:
+#line 744 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 3391 "engines/director/lingo/lingo-gr.cpp"
+#line 3413 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 148:
-#line 769 "engines/director/lingo/lingo-gr.y"
+  case 149:
+#line 774 "engines/director/lingo/lingo-gr.y"
              { startDef(); }
-#line 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3419 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 149:
-#line 770 "engines/director/lingo/lingo-gr.y"
+  case 150:
+#line 775 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3407 "engines/director/lingo/lingo-gr.cpp"
+#line 3429 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 150:
-#line 775 "engines/director/lingo/lingo-gr.y"
+  case 151:
+#line 780 "engines/director/lingo/lingo-gr.y"
                         { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3413 "engines/director/lingo/lingo-gr.cpp"
+#line 3435 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 151:
-#line 776 "engines/director/lingo/lingo-gr.y"
+  case 152:
+#line 781 "engines/director/lingo/lingo-gr.y"
                   { startDef(); (*g_lingo->_methodVars)["me"] = kVarArgument; }
-#line 3419 "engines/director/lingo/lingo-gr.cpp"
+#line 3441 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 152:
-#line 777 "engines/director/lingo/lingo-gr.y"
+  case 153:
+#line 782 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3429 "engines/director/lingo/lingo-gr.cpp"
+#line 3451 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 153:
-#line 782 "engines/director/lingo/lingo-gr.y"
+  case 154:
+#line 787 "engines/director/lingo/lingo-gr.y"
                                                                    {	// D3
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
@@ -3438,69 +3460,69 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 3442 "engines/director/lingo/lingo-gr.cpp"
+#line 3464 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 154:
-#line 790 "engines/director/lingo/lingo-gr.y"
+  case 155:
+#line 795 "engines/director/lingo/lingo-gr.y"
                                                {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3452 "engines/director/lingo/lingo-gr.cpp"
+#line 3474 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 155:
-#line 796 "engines/director/lingo/lingo-gr.y"
+  case 156:
+#line 801 "engines/director/lingo/lingo-gr.y"
          { startDef(); }
-#line 3458 "engines/director/lingo/lingo-gr.cpp"
+#line 3480 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 156:
-#line 796 "engines/director/lingo/lingo-gr.y"
+  case 157:
+#line 801 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = (yyvsp[0].s); }
-#line 3464 "engines/director/lingo/lingo-gr.cpp"
+#line 3486 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 157:
-#line 798 "engines/director/lingo/lingo-gr.y"
+  case 158:
+#line 803 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3470 "engines/director/lingo/lingo-gr.cpp"
+#line 3492 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 158:
-#line 799 "engines/director/lingo/lingo-gr.y"
+  case 159:
+#line 804 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 3476 "engines/director/lingo/lingo-gr.cpp"
+#line 3498 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 159:
-#line 800 "engines/director/lingo/lingo-gr.y"
+  case 160:
+#line 805 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 3482 "engines/director/lingo/lingo-gr.cpp"
+#line 3504 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 161:
-#line 803 "engines/director/lingo/lingo-gr.y"
+  case 162:
+#line 808 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 3488 "engines/director/lingo/lingo-gr.cpp"
+#line 3510 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 162:
-#line 804 "engines/director/lingo/lingo-gr.y"
+  case 163:
+#line 809 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 3494 "engines/director/lingo/lingo-gr.cpp"
+#line 3516 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 163:
-#line 806 "engines/director/lingo/lingo-gr.y"
+  case 164:
+#line 811 "engines/director/lingo/lingo-gr.y"
                                         { inDef(); }
-#line 3500 "engines/director/lingo/lingo-gr.cpp"
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 164:
-#line 808 "engines/director/lingo/lingo-gr.y"
+  case 165:
+#line 813 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_call);
 		g_lingo->codeString((yyvsp[-1].s)->c_str());
@@ -3508,122 +3530,122 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 3512 "engines/director/lingo/lingo-gr.cpp"
+#line 3534 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 165:
-#line 816 "engines/director/lingo/lingo-gr.y"
+  case 166:
+#line 821 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3518 "engines/director/lingo/lingo-gr.cpp"
+#line 3540 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 166:
-#line 817 "engines/director/lingo/lingo-gr.y"
+  case 167:
+#line 822 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.narg) = 1; }
-#line 3524 "engines/director/lingo/lingo-gr.cpp"
+#line 3546 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 167:
-#line 818 "engines/director/lingo/lingo-gr.y"
+  case 168:
+#line 823 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3530 "engines/director/lingo/lingo-gr.cpp"
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 168:
-#line 820 "engines/director/lingo/lingo-gr.y"
+  case 169:
+#line 825 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 3536 "engines/director/lingo/lingo-gr.cpp"
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 169:
-#line 821 "engines/director/lingo/lingo-gr.y"
+  case 170:
+#line 826 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3542 "engines/director/lingo/lingo-gr.cpp"
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 170:
-#line 823 "engines/director/lingo/lingo-gr.y"
+  case 171:
+#line 828 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[-1].code); }
-#line 3548 "engines/director/lingo/lingo-gr.cpp"
+#line 3570 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 171:
-#line 825 "engines/director/lingo/lingo-gr.y"
+  case 172:
+#line 830 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3554 "engines/director/lingo/lingo-gr.cpp"
+#line 3576 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 172:
-#line 826 "engines/director/lingo/lingo-gr.y"
+  case 173:
+#line 831 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3560 "engines/director/lingo/lingo-gr.cpp"
+#line 3582 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 173:
-#line 827 "engines/director/lingo/lingo-gr.y"
+  case 174:
+#line 832 "engines/director/lingo/lingo-gr.y"
                          { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3566 "engines/director/lingo/lingo-gr.cpp"
+#line 3588 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 174:
-#line 828 "engines/director/lingo/lingo-gr.y"
+  case 175:
+#line 833 "engines/director/lingo/lingo-gr.y"
                      { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3572 "engines/director/lingo/lingo-gr.cpp"
+#line 3594 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 175:
-#line 830 "engines/director/lingo/lingo-gr.y"
+  case 176:
+#line 835 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3578 "engines/director/lingo/lingo-gr.cpp"
+#line 3600 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 176:
-#line 831 "engines/director/lingo/lingo-gr.y"
+  case 177:
+#line 836 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3584 "engines/director/lingo/lingo-gr.cpp"
+#line 3606 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 177:
-#line 833 "engines/director/lingo/lingo-gr.y"
+  case 178:
+#line 838 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3590 "engines/director/lingo/lingo-gr.cpp"
+#line 3612 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 178:
-#line 834 "engines/director/lingo/lingo-gr.y"
+  case 179:
+#line 839 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3596 "engines/director/lingo/lingo-gr.cpp"
+#line 3618 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 179:
-#line 836 "engines/director/lingo/lingo-gr.y"
+  case 180:
+#line 841 "engines/director/lingo/lingo-gr.y"
                           {
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3605 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 180:
-#line 840 "engines/director/lingo/lingo-gr.y"
+  case 181:
+#line 845 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3614 "engines/director/lingo/lingo-gr.cpp"
+#line 3636 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 181:
-#line 844 "engines/director/lingo/lingo-gr.y"
+  case 182:
+#line 849 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3623 "engines/director/lingo/lingo-gr.cpp"
+#line 3645 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3649 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
@@ -3822,7 +3844,7 @@ yyreturn:
   return yyresult;
 }
 
-#line 850 "engines/director/lingo/lingo-gr.y"
+#line 855 "engines/director/lingo/lingo-gr.y"
 
 
 int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 7d1f224ddb..d0139708ef 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -581,13 +581,18 @@ simpleexpr: INT		{
 	}
 
 expr: simpleexpr { $$ = $simpleexpr; }
-	| reference
 	| FBLTIN '(' arglist ')' {
 		g_lingo->codeFunc($FBLTIN, $arglist);
 		delete $FBLTIN; }
 	| FBLTIN arglist	{
 		g_lingo->codeFunc($FBLTIN, $arglist);
 		delete $FBLTIN; }
+	| RBLTIN '(' arglist ')' {
+		g_lingo->codeFunc($RBLTIN, $arglist);
+		delete $RBLTIN; }
+	| RBLTIN arglist	{
+		g_lingo->codeFunc($RBLTIN, $arglist);
+		delete $RBLTIN; }
 	| ID[func] '(' ID[method] ')' {
 			g_lingo->code1(LC::c_lazyeval);
 			g_lingo->codeString($method->c_str());


Commit: 8689ca4bf2a98a6ea15c77fd6794d0d39730b854
    https://github.com/scummvm/scummvm/commit/8689ca4bf2a98a6ea15c77fd6794d0d39730b854
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-13T11:36:41-04:00

Commit Message:
DIRECTOR: LINGO: Add reference tests

Changed paths:
  A engines/director/lingo/tests/reference.lingo


diff --git a/engines/director/lingo/tests/reference.lingo b/engines/director/lingo/tests/reference.lingo
new file mode 100644
index 0000000000..d67212e239
--- /dev/null
+++ b/engines/director/lingo/tests/reference.lingo
@@ -0,0 +1,18 @@
+-- basic references
+set a = cast 1
+set a = cast "castname"
+set a = field 1
+set a = field "castname"
+set a = script "scriptname"
+set a = window "windowname"
+
+-- assign to field reference
+put "asdf" into field 1
+
+-- the property of reference
+put the text of cast "castname"
+put the visible of window "windowname"
+
+-- user-defined handlers/factories w/ reference name
+-- (mainly to test grammar, so no factory definition)
+set theWindow = Window(mNew,#noGrowDoc,"Window " & windowNumber)




More information about the Scummvm-git-logs mailing list