diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 60c323719f..02be9de1eb 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,59 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-01-07 05:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/makefile.bc + * harbour/makefile.vc + * harbour/include/hbcomp.h + * harbour/include/hbexpra.c + * harbour/include/hbexprb.c + * harbour/include/hbexprc.c + * harbour/include/hbexprop.h + * harbour/source/common/expropt1.c + * harbour/source/common/expropt2.c + * harbour/source/compiler/Makefile + * harbour/source/compiler/cmdcheck.c + * harbour/source/compiler/harbour.c + * harbour/source/compiler/harbour.y + * harbour/source/compiler/harbour.yyc + * harbour/source/compiler/harbour.yyh + * harbour/source/compiler/hbcomp.c + * harbour/source/compiler/hbusage.c + * harbour/source/compiler/ppcomp.c + * harbour/source/macro/Makefile + * harbour/source/macro/macro.y + * harbour/source/macro/macro.yyc + * harbour/source/macro/macro.yyh + * harbour/source/vm/macro.c + * harbour/source/vm/memvars.c + * harbour/source/vm/memvclip.c + * keep prefix definition for bison public symbols in *.y files instead + of passing them as bison arguments to avoid possible mistakes during + *.yy[hc] file generation + ! fixed iif() reduction when used as single function parameter + + add -kM compiler switch - turn off macrotext substitution + * updated + optimization and other macrotext usage + to keep more Clipper compatible behavior + ! fixed typo in expression type checking in IIF() reduction - it was + working because wrongly used macros has the same values as the valid + ones + - removed compiler switches and macros for old HB_INLINE() syntax - it + was not supported after last months modifications. Only: + HB_INLINE([params,...]) { C code } + is supported. + ! fixed passing parameters by reference in IIF() statement and macro + compiler. The following valid Clipper code: + &("myfunc(, @var1, @var2)") + was not supported + ! do not allow to use references or empty expressions in expression list + AFAIK it's Clipper compatible. If I'm wrong then please fix me but + Clipper allows to use references only as function arguments, 2-nd and + 3-rd IIF() argument and as directly created array items ( {...@var...} ) + DO ... WITH ... is a special case of function call. + ! Changed grammar rules to accept only Clipper compatible parameters. + ! fixed typo in macro name in hb_memvarNewParameter() function. + * use HB_FUNC_EXEC(...) instead of HB_FUNCNAME(...)() + 2007-01-05 16:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexprb.c * make function call optimizations only when hb_compFunCallCheck() diff --git a/harbour/include/hbcomp.h b/harbour/include/hbcomp.h index 3c92811cfc..dfb68efbcd 100644 --- a/harbour/include/hbcomp.h +++ b/harbour/include/hbcomp.h @@ -183,14 +183,14 @@ extern void hb_compElseIfKill( HB_COMP_DECL ); extern void hb_compGenError( HB_COMP_DECL, char * szErrors[], char cPrefix, int iError, const char * szError1, const char * szError2 ); /* generic parsing error management function */ extern void hb_compGenWarning( HB_COMP_DECL, char * szWarnings[], char cPrefix, int iWarning, const char * szWarning1, const char * szWarning2); /* generic parsing warning management function */ -extern BOOL hb_compIsValidMacroVar( char *, HB_COMP_DECL ); /* checks if passed variable can be used in macro */ -extern BOOL hb_compForEachVarError( HB_COMP_DECL, char * ); /* checks if it is FOR EACH enumerator variable and generates a warning */ +extern BOOL hb_compIsValidMacroText( HB_COMP_DECL, char *, ULONG ); +extern BOOL hb_compForEachVarError( HB_COMP_DECL, char * ); /* checks if it is FOR EACH enumerator variable and generates a warning */ -extern ULONG hb_compGenJump( LONG, HB_COMP_DECL ); /* generates the pcode to jump to a specific offset */ -extern ULONG hb_compGenJumpFalse( LONG, HB_COMP_DECL ); /* generates the pcode to jump if false */ -extern ULONG hb_compGenJumpTrue( LONG, HB_COMP_DECL ); /* generates the pcode to jump if true */ -extern void hb_compGenJumpHere( ULONG, HB_COMP_DECL ); /* returns the pcode pos where to set a jump offset */ -extern void hb_compGenJumpThere( ULONG, ULONG, HB_COMP_DECL ); /* sets a jump offset */ +extern ULONG hb_compGenJump( LONG, HB_COMP_DECL ); /* generates the pcode to jump to a specific offset */ +extern ULONG hb_compGenJumpFalse( LONG, HB_COMP_DECL ); /* generates the pcode to jump if false */ +extern ULONG hb_compGenJumpTrue( LONG, HB_COMP_DECL ); /* generates the pcode to jump if true */ +extern void hb_compGenJumpHere( ULONG, HB_COMP_DECL ); /* returns the pcode pos where to set a jump offset */ +extern void hb_compGenJumpThere( ULONG, ULONG, HB_COMP_DECL ); /* sets a jump offset */ extern void hb_compLinePush( HB_COMP_DECL ); /* generates the pcode with the currently compiled source code line */ extern void hb_compLinePushIfDebugger( HB_COMP_DECL ); /* generates the pcode with the currently compiled source code line */ @@ -361,8 +361,8 @@ extern FILE *hb_comp_errFile; #define HB_COMPFLAG_ARRSTR HB_SM_ARRSTR /* 16 -ks strings as array of bytes */ #define HB_COMPFLAG_RT_MACRO HB_SM_RT_MACRO /* 64 -kr */ #define HB_COMPFLAG_OPTJUMP 256 /* -kj turn off jump optimalization */ -#define HB_COMPFLAG_HB_INLINE_PP 512 /* -kI hb_inLine support in PP */ -#define HB_COMPFLAG_HB_INLINE 1024 /* -ki */ +#define HB_COMPFLAG_HB_INLINE 512 /* -ki hb_inLine(...) { ... } support */ +#define HB_COMPFLAG_MACROTEXT 1024 /* -kM turn off macrotext substitution */ #define HB_COMP_ISSUPPORTED(flag) ( HB_COMP_PARAM->supported & (flag) ) diff --git a/harbour/include/hbexpra.c b/harbour/include/hbexpra.c index b6d7def075..9d0a389488 100644 --- a/harbour/include/hbexpra.c +++ b/harbour/include/hbexpra.c @@ -346,32 +346,6 @@ HB_EXPR_PTR hb_compExprCBVarAdd( HB_EXPR_PTR pCB, char * szVarName, BYTE bType, return pCB; } -/* Create a new IIF() expression or set arguments - * - * pIIF is a list of three expressions - */ -HB_EXPR_PTR hb_compExprNewIIF( HB_EXPR_PTR pExpr, HB_COMP_DECL ) -{ -#ifndef HB_MACRO_SUPPORT - HB_EXPR_PTR pTmp; - - pExpr->ExprType = HB_ET_IIF; - - pTmp = pExpr->value.asList.pExprList; /* get first expression */ - if( pTmp->ExprType == HB_ET_NONE ) - { - /* there is no conditional expression e.g. IIF( , true, false ) - */ - hb_compErrorSyntax( HB_COMP_PARAM, pExpr ); - } -#else - HB_SYMBOL_UNUSED( HB_COMP_PARAM ); - pExpr->ExprType = HB_ET_IIF; -#endif - - return pExpr; -} - /* Create function call */ HB_EXPR_PTR hb_compExprNewFunCall( HB_EXPR_PTR pName, HB_EXPR_PTR pParms, HB_COMP_DECL ) @@ -1025,7 +999,7 @@ HB_EXPR_PTR hb_compExprSetGetBlock( HB_EXPR_PTR pExpr, HB_COMP_DECL ) /* create ( var==nil, , :=var ) */ pIIF = hb_compExprAddListExpr( pIIF, pSet ); /* create IIF() expression */ - pIIF = hb_compExprNewIIF( pIIF, HB_COMP_PARAM ); + pIIF = hb_compExprNewIIF( pIIF ); /* create a codeblock */ return hb_compExprAddCodeblockExpr( hb_compExprCBVarAdd( diff --git a/harbour/include/hbexprb.c b/harbour/include/hbexprb.c index a1fe61914c..8bf216f461 100644 --- a/harbour/include/hbexprb.c +++ b/harbour/include/hbexprb.c @@ -334,31 +334,11 @@ static HB_EXPR_FUNC( hb_compExprUseString ) if( HB_COMP_PARAM->fTextSubst ) #endif { - BOOL bUseTextSubst; - BOOL bValidMacro = hb_compExprIsValidMacro( pSelf->value.asString.string, - pSelf->ulLength, &bUseTextSubst, HB_COMP_PARAM ); - if( bUseTextSubst ) + if( hb_compIsValidMacroText( HB_COMP_PARAM, + pSelf->value.asString.string, + pSelf->ulLength ) ) { - if( HB_SUPPORT_HARBOUR ) - { - if( bValidMacro ) - HB_EXPR_PCODE1( hb_compGenPCode1, HB_P_MACROTEXT ); - else - { - hb_compErrorMacro( HB_COMP_PARAM, pSelf->value.asString.string ); - } - } - else - { - /* Clipper always generates macro substitution pcode - * even if it is not a valid expression - */ - HB_EXPR_PCODE1( hb_compGenPCode1, HB_P_MACROTEXT ); - if( !bValidMacro ) - { - hb_compErrorMacro( HB_COMP_PARAM, pSelf->value.asString.string ); - } - } + HB_EXPR_PCODE1( hb_compGenPCode1, HB_P_MACROTEXT ); } } break; @@ -645,7 +625,7 @@ static HB_EXPR_FUNC( hb_compExprUseArray ) switch( iMessage ) { case HB_EA_REDUCE: - HB_EXPR_PCODE1( hb_compExprReduceList, pSelf ); + hb_compExprReduceList( pSelf, HB_COMP_PARAM ); break; case HB_EA_ARRAY_AT: @@ -887,7 +867,7 @@ static HB_EXPR_FUNC( hb_compExprUseIIF ) switch( iMessage ) { case HB_EA_REDUCE: - HB_EXPR_PCODE1( hb_compExprReduceList, pSelf ); + hb_compExprReduceList( pSelf, HB_COMP_PARAM ); pSelf = hb_compExprReduceIIF( pSelf, HB_COMP_PARAM ); break; @@ -971,7 +951,7 @@ static HB_EXPR_FUNC( hb_compExprUseList ) } } - HB_EXPR_PCODE1( hb_compExprReduceList, pSelf ); + hb_compExprReduceList( pSelf, HB_COMP_PARAM ); /* NOTE: if the list contains a single expression then the list * is not reduced to this expression - if you need that reduction * then call hb_compExprListStrip() additionaly @@ -1081,7 +1061,7 @@ static HB_EXPR_FUNC( hb_compExprUseArgList ) switch( iMessage ) { case HB_EA_REDUCE: - HB_EXPR_PCODE1( hb_compExprReduceList, pSelf ); + hb_compExprReduceList( pSelf, HB_COMP_PARAM ); break; case HB_EA_ARRAY_AT: @@ -1145,7 +1125,7 @@ static HB_EXPR_FUNC( hb_compExprUseMacroArgList ) switch( iMessage ) { case HB_EA_REDUCE: - HB_EXPR_PCODE1( hb_compExprReduceList, pSelf ); + hb_compExprReduceList( pSelf, HB_COMP_PARAM ); break; case HB_EA_ARRAY_AT: @@ -1401,14 +1381,14 @@ static HB_EXPR_FUNC( hb_compExprUseMacro ) * all components should be placed as a string that will * be compiled after text susbstitution */ + + /* Check if macrotext variable does not refer to + * local, static or field. + */ #if ! defined( HB_MACRO_SUPPORT ) - BOOL bUseTextSubst; - if( !hb_compExprIsValidMacro( pSelf->value.asMacro.szMacro, - strlen( pSelf->value.asMacro.szMacro ), - &bUseTextSubst, HB_COMP_PARAM ) ) - { - hb_compErrorMacro( HB_COMP_PARAM, pSelf->value.asMacro.szMacro ); - } + hb_compIsValidMacroText( HB_COMP_PARAM, + pSelf->value.asMacro.szMacro, + strlen( pSelf->value.asMacro.szMacro ) ); #endif HB_EXPR_PCODE2( hb_compGenPushString, pSelf->value.asMacro.szMacro, strlen( pSelf->value.asMacro.szMacro ) + 1 ); } @@ -1486,15 +1466,15 @@ static HB_EXPR_FUNC( hb_compExprUseMacro ) * all components should be placed as a string that will * be compiled after text susbstitution */ + + /* Check if macrotext variable does not refer to + * local, static or field. + */ #if ! defined( HB_MACRO_SUPPORT ) - BOOL bUseTextSubst; - if( !hb_compExprIsValidMacro( pSelf->value.asMacro.szMacro, - strlen( pSelf->value.asMacro.szMacro ), - &bUseTextSubst, HB_COMP_PARAM ) ) - { - hb_compErrorMacro( HB_COMP_PARAM, pSelf->value.asMacro.szMacro ); - } -#endif + hb_compIsValidMacroText( HB_COMP_PARAM, + pSelf->value.asMacro.szMacro, + strlen( pSelf->value.asMacro.szMacro ) ); +#endif HB_EXPR_PCODE2( hb_compGenPushString, pSelf->value.asMacro.szMacro, strlen( pSelf->value.asMacro.szMacro ) + 1 ); } } @@ -2014,7 +1994,8 @@ static HB_EXPR_FUNC( hb_compExprUseSend ) { case HB_EA_REDUCE: { - if( pSelf->value.asMessage.pObject ) + /* Clipper does not reduce object expressions */ + if( HB_SUPPORT_HARBOUR && pSelf->value.asMessage.pObject ) pSelf->value.asMessage.pObject = hb_compExprListStrip( HB_EXPR_USE( pSelf->value.asMessage.pObject, HB_EA_REDUCE ), HB_COMP_PARAM ); if( pSelf->value.asMessage.pParms ) /* Is it a method call ? */ pSelf->value.asMessage.pParms = HB_EXPR_USE( pSelf->value.asMessage.pParms, HB_EA_REDUCE ); diff --git a/harbour/include/hbexprc.c b/harbour/include/hbexprc.c index 7a11e33126..549ff72ca9 100644 --- a/harbour/include/hbexprc.c +++ b/harbour/include/hbexprc.c @@ -59,11 +59,6 @@ until we will not have extended reference items in our HVM [druzus] */ /* #define HB_USE_OBJMSG_REF */ -#ifdef __WATCOMC__ -/* disable warnings for 'no reference to symbol' */ -#pragma warning 14 9 -#endif - /* ************************************************************************* */ void hb_compExprPushSendPop( HB_EXPR_PTR pSelf, HB_COMP_DECL ) @@ -864,7 +859,7 @@ ULONG hb_compExprReduceList( HB_EXPR_PTR pExpr, HB_COMP_DECL ) pExpr = pExpr->value.asList.pExprList; while( pExpr ) { - pNext = pExpr->pNext; /* store next expression in case the current will be reduced */ + pNext = pExpr->pNext; /* store next expression in case the current will be reduced */ pExpr = HB_EXPR_USE( pExpr, HB_EA_REDUCE ); *pPrev = pExpr; /* store a new expression into the previous one */ pExpr->pNext = pNext; /* restore the link to next expression */ @@ -874,99 +869,3 @@ ULONG hb_compExprReduceList( HB_EXPR_PTR pExpr, HB_COMP_DECL ) } return ulCnt; } - -BOOL hb_compExprIsValidMacro( char * szText, ULONG ulLen, BOOL *pfUseTextSubst, HB_COMP_DECL ) -{ - BOOL fValid = TRUE; - - *pfUseTextSubst = FALSE; /* no valid macro expression */ - - while( ulLen-- && fValid ) - { - if( *szText++ == '&' && ulLen ) - { - char ch = *szText; - /* Check if macro operator is used inside a string - * Macro operator is ignored if it is the last char or - * next char is '(' e.g. "this is &(ignored)" - * (except if strict Clipper compatibility mode is enabled) - * - * NOTE: This uses _a-zA-Z pattern to check for - * beginning of a variable name - */ - - if( ch == '_' || ( ch >= 'A' && ch <= 'Z' ) || ( ch >= 'a' && ch <= 'z' ) ) -#if defined( HB_MACRO_SUPPORT ) - { - HB_SYMBOL_UNUSED( HB_COMP_PARAM ); - *pfUseTextSubst = TRUE; /* valid macro expression */ - return TRUE; /*there is no need to check all '&' occurences */ - } -#else - { - char szSymName[ HB_SYMBOL_NAME_LEN + 1 ]; - int iSize = 0; - do - { - if( ch >= 'a' && ch <= 'z' ) - szSymName[ iSize++ ] = ch - ( 'a' - 'A' ); - else if( ch == '_' || ( ch >= 'A' && ch <= 'Z' ) || - ( ch >= '0' && ch <= '9' ) ) - szSymName[ iSize++ ] = ch; - else - break; - ch = *(++szText); - } - while( --ulLen && iSize < HB_SYMBOL_NAME_LEN ); - szSymName[ iSize ] = '\0'; - - /* NOTE: All variables are assumed memvars in macro compiler - - * there is no need to check for a valid name but to be Clipper - * compatible we should check if local, static or field name - * is not use and generate error in such case - */ - *pfUseTextSubst = TRUE; - fValid = hb_compIsValidMacroVar( szSymName, HB_COMP_PARAM ); - } - else if( ! HB_SUPPORT_HARBOUR ) - *pfUseTextSubst = TRUE; /* always macro substitution in Clipper */ -#endif - } - } - - return fValid; -} - -/* Reduces the list of expressions - * - * pExpr is the first expression on the list - */ -HB_EXPR_PTR hb_compExprReducePlusStrings( HB_EXPR_PTR pLeft, HB_EXPR_PTR pRight, HB_COMP_DECL ) -{ - if( pLeft->value.asString.dealloc ) - { - pLeft->value.asString.string = (char *) hb_xrealloc( pLeft->value.asString.string, pLeft->ulLength + pRight->ulLength + 1 ); - memcpy( pLeft->value.asString.string + pLeft->ulLength, - pRight->value.asString.string, pRight->ulLength ); - pLeft->ulLength += pRight->ulLength; - pLeft->value.asString.string[ pLeft->ulLength ] = '\0'; - } - else - { - char *szString; - szString = (char *) hb_xgrab( pLeft->ulLength + pRight->ulLength + 1 ); - memcpy( szString, pLeft->value.asString.string, pLeft->ulLength ); - memcpy( szString + pLeft->ulLength, pRight->value.asString.string, pRight->ulLength ); - pLeft->ulLength += pRight->ulLength; - szString[ pLeft->ulLength ] = '\0'; - pLeft->value.asString.string = szString; - pLeft->value.asString.dealloc = TRUE; - } - hb_compExprFree( pRight, HB_COMP_PARAM ); - return pLeft; -} - -#ifdef __WATCOMC__ -/* enable warnings for unreferenced symbols */ -#pragma warning 14 2 -#endif diff --git a/harbour/include/hbexprop.h b/harbour/include/hbexprop.h index 675a0563ef..28ae382f08 100644 --- a/harbour/include/hbexprop.h +++ b/harbour/include/hbexprop.h @@ -133,7 +133,6 @@ extern HB_EXPR_PTR hb_compExprNewFunRef( char *, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprNewFunCall( HB_EXPR_PTR, HB_EXPR_PTR, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprNewRef( HB_EXPR_PTR, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprNewCodeblockExpr( HB_EXPR_PTR, HB_EXPR_PTR ); -extern HB_EXPR_PTR hb_compExprNewFunCallArg( HB_EXPR_PTR, HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprNewSend( HB_EXPR_PTR, char *szMessage, HB_EXPR_PTR pMessage, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprNewMethodCall( HB_EXPR_PTR, HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprNewList( HB_EXPR_PTR, HB_COMP_DECL ); @@ -144,8 +143,7 @@ extern HB_EXPR_PTR hb_compExprNewArrayAt( HB_EXPR_PTR, HB_EXPR_PTR, HB_COMP_DECL extern HB_EXPR_PTR hb_compExprAddListExpr( HB_EXPR_PTR, HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprCBVarAdd( HB_EXPR_PTR, char *, BYTE, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprAddCodeblockExpr( HB_EXPR_PTR, HB_EXPR_PTR ); -extern HB_EXPR_PTR hb_compExprNewIIF( HB_EXPR_PTR, HB_COMP_DECL ); -extern HB_EXPR_PTR hb_compExprReduce( HB_EXPR_PTR, HB_COMP_DECL ); +extern HB_EXPR_PTR hb_compExprNewIIF( HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprMacroAsAlias( HB_EXPR_PTR ); extern HB_EXPR_PTR hb_compExprAssign( HB_EXPR_PTR, HB_EXPR_PTR, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprEqual( HB_EXPR_PTR, HB_EXPR_PTR ); @@ -163,19 +161,13 @@ extern int hb_compExprIsLong( HB_EXPR_PTR ); extern int hb_compExprAsInteger( HB_EXPR_PTR ); extern int hb_compExprIsString( HB_EXPR_PTR ); extern int hb_compExprAsStringLen( HB_EXPR_PTR ); -extern char *hb_compExprAsString( HB_EXPR_PTR ); -extern char *hb_compExprAsSymbol( HB_EXPR_PTR ); +extern char * hb_compExprAsString( HB_EXPR_PTR ); +extern char * hb_compExprAsSymbol( HB_EXPR_PTR ); extern void hb_compExprFree( HB_EXPR_PTR, HB_COMP_DECL ); extern void hb_compExprErrorType( HB_EXPR_PTR, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprListStrip( HB_EXPR_PTR, HB_COMP_DECL ); extern void hb_compExprCBVarDel( HB_CBVAR_PTR ); -extern HB_EXPR_PTR hb_compExprReducePlusStrings( HB_EXPR_PTR, HB_EXPR_PTR, HB_COMP_DECL ); -extern BOOL hb_compExprReduceAT( HB_EXPR_PTR, HB_COMP_DECL ); -extern BOOL hb_compExprReduceCHR( HB_EXPR_PTR, HB_COMP_DECL ); -extern BOOL hb_compExprReduceLEN( HB_EXPR_PTR, HB_COMP_DECL ); -extern BOOL hb_compExprReduceASC( HB_EXPR_PTR, HB_COMP_DECL ); -extern BOOL hb_compExprReduceSTOD( HB_EXPR_PTR pSelf, USHORT usCount, HB_COMP_DECL ); extern BOOL hb_compExprIsValidMacro( char *, ULONG, BOOL *, HB_COMP_DECL ); extern void hb_compExprDelete( HB_EXPR_PTR, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprSetOperand( HB_EXPR_PTR, HB_EXPR_PTR, HB_COMP_DECL ); @@ -193,6 +185,8 @@ extern void hb_compExprPushOperEq( HB_EXPR_PTR pSelf, BYTE bOpEq, HB_COMP_DECL ) extern void hb_compExprPushSendPop( HB_EXPR_PTR pSelf, HB_COMP_DECL ); extern void hb_compExprPushSendPush( HB_EXPR_PTR pSelf, HB_COMP_DECL ); extern void hb_compExprUseAliasMacro( HB_EXPR_PTR, BYTE, HB_COMP_DECL ); + +extern HB_EXPR_PTR hb_compExprReduce( HB_EXPR_PTR, HB_COMP_DECL ); extern ULONG hb_compExprReduceList( HB_EXPR_PTR, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprReduceMod( HB_EXPR_PTR pSelf, HB_COMP_DECL ); @@ -211,6 +205,11 @@ extern HB_EXPR_PTR hb_compExprReduceAnd( HB_EXPR_PTR pSelf, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprReduceOr( HB_EXPR_PTR pSelf, HB_COMP_DECL ); extern HB_EXPR_PTR hb_compExprReduceIIF( HB_EXPR_PTR, HB_COMP_DECL ); +extern BOOL hb_compExprReduceAT( HB_EXPR_PTR, HB_COMP_DECL ); +extern BOOL hb_compExprReduceCHR( HB_EXPR_PTR, HB_COMP_DECL ); +extern BOOL hb_compExprReduceLEN( HB_EXPR_PTR, HB_COMP_DECL ); +extern BOOL hb_compExprReduceASC( HB_EXPR_PTR, HB_COMP_DECL ); +extern BOOL hb_compExprReduceSTOD( HB_EXPR_PTR pSelf, USHORT usCount, HB_COMP_DECL ); HB_EXTERN_END diff --git a/harbour/makefile.bc b/harbour/makefile.bc index 948cbb0f60..a883c52b2b 100644 --- a/harbour/makefile.bc +++ b/harbour/makefile.bc @@ -633,10 +633,10 @@ $(PP_DIR)\pptable.c : $(BIN_DIR)\ppgen.exe include\hbstdgen.ch !if "$(HB_REBUILD_PARSER)" == "yes" $(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y - bison --no-line -p hb_macro -d $** -o$@ + bison --no-line -d $** -o$@ $(OBJ_DIR)\harboury.c : $(HARBOUR_DIR)\harbour.y - bison --no-line -p hb_comp -d $** -o$@ + bison --no-line -d $** -o$@ !else @@ -677,10 +677,10 @@ $(OBJ_DIR)\harbourl.obj : $(OBJ_DIR)\harbourl.c !if "$(HB_REBUILD_PARSER)" == "yes" $(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y - bison --no-line -p hb_macro -d $** -o$@ + bison --no-line -d $** -o$@ $(DLL_OBJ_DIR)\harboury.c : $(HARBOUR_DIR)\harbour.y - bison --no-line -p hb_comp -d $** -o$@ + bison --no-line -d $** -o$@ !else diff --git a/harbour/makefile.vc b/harbour/makefile.vc index 603ff44d08..747d34f3f1 100644 --- a/harbour/makefile.vc +++ b/harbour/makefile.vc @@ -966,10 +966,10 @@ $(PP_DIR)\pptable.c : $(BIN_DIR)\ppgen.exe include\hbstdgen.ch !if "$(HB_REBUILD_PARSER)" == "yes" $(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y - bison --no-line -p hb_macro -d $** -o$@ + bison --no-line -d $** -o$@ $(OBJ_DIR)\harboury.c : $(HARBOUR_DIR)\harbour.y - bison --no-line -p hb_comp -d $** -o$@ + bison --no-line -d $** -o$@ !else @@ -1006,7 +1006,7 @@ $(OBJ_DIR)\harbourl.obj : $(OBJ_DIR)\harbourl.c #********************************************************** $(DLL_OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y - bison --no-line -p hb_macro -d $** -o$@ + bison --no-line -d $** -o$@ $(DLL_OBJ_DIR)\macrol.c : $(MACRO_DIR)\macro.l flex -Phb_macro -i -8 -o$@ $** @@ -1020,7 +1020,7 @@ $(DLL_OBJ_DIR)\macrol.obj : $(DLL_OBJ_DIR)\macrol.c #********************************************************** $(DLL_OBJ_DIR)\harboury.c : $(HARBOUR_DIR)\harbour.y - bison --no-line -p hb_comp -d $** -o$@ + bison --no-line -d $** -o$@ $(DLL_OBJ_DIR)\harbourl.c : $(HARBOUR_DIR)\harbour.l flex -Phb_comp -i -8 -o$@ $** diff --git a/harbour/source/common/expropt1.c b/harbour/source/common/expropt1.c index c9f77a928b..81e9ed3dbb 100644 --- a/harbour/source/common/expropt1.c +++ b/harbour/source/common/expropt1.c @@ -487,6 +487,16 @@ HB_EXPR_PTR hb_compExprNewMethodCall( HB_EXPR_PTR pObject, HB_EXPR_PTR pArgList return pObject; } +/* Create a new IIF() expression + * pExpr is a list of three expressions + */ +HB_EXPR_PTR hb_compExprNewIIF( HB_EXPR_PTR pExpr ) +{ + pExpr->ExprType = HB_ET_IIF; + + return pExpr; +} + /* Creates a list - all elements will be used * This list can be used to create an array or function's call arguments */ diff --git a/harbour/source/common/expropt2.c b/harbour/source/common/expropt2.c index 6180ad2eab..609f1a510c 100644 --- a/harbour/source/common/expropt2.c +++ b/harbour/source/common/expropt2.c @@ -60,6 +60,31 @@ #include "hbcomp.h" #include "hbdate.h" +static HB_EXPR_PTR hb_compExprReducePlusStrings( HB_EXPR_PTR pLeft, HB_EXPR_PTR pRight, HB_COMP_DECL ) +{ + if( pLeft->value.asString.dealloc ) + { + pLeft->value.asString.string = (char *) hb_xrealloc( pLeft->value.asString.string, pLeft->ulLength + pRight->ulLength + 1 ); + memcpy( pLeft->value.asString.string + pLeft->ulLength, + pRight->value.asString.string, pRight->ulLength ); + pLeft->ulLength += pRight->ulLength; + pLeft->value.asString.string[ pLeft->ulLength ] = '\0'; + } + else + { + char *szString; + szString = (char *) hb_xgrab( pLeft->ulLength + pRight->ulLength + 1 ); + memcpy( szString, pLeft->value.asString.string, pLeft->ulLength ); + memcpy( szString + pLeft->ulLength, pRight->value.asString.string, pRight->ulLength ); + pLeft->ulLength += pRight->ulLength; + szString[ pLeft->ulLength ] = '\0'; + pLeft->value.asString.string = szString; + pLeft->value.asString.dealloc = TRUE; + } + hb_compExprFree( pRight, HB_COMP_PARAM ); + return pLeft; +} + HB_EXPR_PTR hb_compExprReduceMod( HB_EXPR_PTR pSelf, HB_COMP_DECL ) { HB_EXPR_PTR pLeft, pRight; @@ -511,10 +536,23 @@ HB_EXPR_PTR hb_compExprReducePlus( HB_EXPR_PTR pSelf, HB_COMP_DECL ) { /* Do not reduce strings with the macro operator '&' */ - BOOL fSubst; - hb_compExprIsValidMacro( pLeft->value.asString.string, pLeft->ulLength, - &fSubst, HB_COMP_PARAM ); - if( !fSubst && pLeft->value.asString.string[ pLeft->ulLength - 1 ] != '&' ) + char * szText = pLeft->value.asString.string; + ULONG ulLen = pLeft->ulLength; + BOOL fReduce = TRUE; + + while( ulLen-- ) + { + if( *szText++ == '&' ) + { + char ch = ulLen ? *szText : *pRight->value.asString.string; + if( ( ch >= 'A' && ch <= 'Z' ) || + ( ch >= 'a' && ch <= 'z' ) || ch == '_' || + ! HB_SUPPORT_HARBOUR ) + fReduce = FALSE; + } + } + + if( fReduce ) { pSelf->ExprType = HB_ET_NONE; /* suppress deletion of operator components */ hb_compExprFree( pSelf, HB_COMP_PARAM ); @@ -1184,16 +1222,24 @@ HB_EXPR_PTR hb_compExprReduceIIF( HB_EXPR_PTR pSelf, HB_COMP_DECL ) hb_compExprFree( pExpr, HB_COMP_PARAM ); /* delete TRUE expr */ pSelf->pNext = NULL; } + + if( pSelf->ExprType == HB_ET_NONE ) + { + pSelf->ExprType = HB_ET_NIL; + pSelf->ValType = HB_EV_NIL; + } } /* check if valid expression is passed */ - else if( ( pExpr->ExprType == HB_ET_DOUBLE ) || - ( pExpr->ExprType == HB_ET_LONG ) || - ( pExpr->ExprType == HB_ET_NIL ) || - ( pExpr->ExprType == HB_ET_STRING ) || - ( pExpr->ExprType == HB_ET_CODEBLOCK ) || - ( pExpr->ExprType == HB_ET_SELF ) || - ( pExpr->ExprType == HB_ET_ARRAY ) ) + else if( pExpr->ExprType == HB_ET_NIL || + pExpr->ExprType == HB_ET_NUMERIC || + pExpr->ExprType == HB_ET_DATE || + pExpr->ExprType == HB_ET_STRING || + pExpr->ExprType == HB_ET_CODEBLOCK || + pExpr->ExprType == HB_ET_ARRAY || + pExpr->ExprType == HB_ET_VARREF || + pExpr->ExprType == HB_ET_REFERENCE || + pExpr->ExprType == HB_ET_FUNREF ) { hb_compExprErrorType( pExpr, HB_COMP_PARAM ); } @@ -1214,7 +1260,7 @@ HB_EXPR_PTR hb_compExprListStrip( HB_EXPR_PTR pSelf, HB_COMP_DECL ) { /* replace the list with a simple expression * ( EXPR ) -> EXPR - */ + */ HB_EXPR_PTR pExpr = pSelf; pSelf = pSelf->value.asList.pExprList; diff --git a/harbour/source/compiler/Makefile b/harbour/source/compiler/Makefile index 25cc3b9ed1..cfdf784d9a 100644 --- a/harbour/source/compiler/Makefile +++ b/harbour/source/compiler/Makefile @@ -11,7 +11,7 @@ ROOT = ../../ # hberrors.h \ # hbdefs.h -YACC_FLAGS = -p hb_comp +#YACC_FLAGS = -p hb_comp YACC_SOURCE=harbour.y YACC_HEADERS=\ hbcomp.h \ diff --git a/harbour/source/compiler/cmdcheck.c b/harbour/source/compiler/cmdcheck.c index 603cc63de6..0e300ce076 100644 --- a/harbour/source/compiler/cmdcheck.c +++ b/harbour/source/compiler/cmdcheck.c @@ -325,14 +325,14 @@ static void hb_compChkEnvironVar( HB_COMP_DECL, char *szSwitch ) HB_COMP_PARAM->supported |= HB_COMPFLAG_HB_INLINE; break; - case 'I': - HB_COMP_PARAM->supported |= HB_COMPFLAG_HB_INLINE_PP; - break; - case 'J': HB_COMP_PARAM->supported &= ~HB_COMPFLAG_OPTJUMP; break; + case 'M': + HB_COMP_PARAM->supported &= ~HB_COMPFLAG_MACROTEXT; + break; + case 'r': HB_COMP_PARAM->supported |= HB_COMPFLAG_RT_MACRO; break; diff --git a/harbour/source/compiler/harbour.c b/harbour/source/compiler/harbour.c index 143319b23d..fddfc98854 100644 --- a/harbour/source/compiler/harbour.c +++ b/harbour/source/compiler/harbour.c @@ -1072,35 +1072,77 @@ void hb_compGenStaticName( char *szVarName, HB_COMP_DECL ) } } -/* Generate an error if passed variable name cannot be used in macro - * expression. - * Only MEMVAR or undeclared (memvar will be assumed) variables can be used. +/* Check if macrotext variable does not refer to local, static or field. + * Only MEMVAR or undeclared (memvar will be assumed) variables can be used + * in macro text */ -BOOL hb_compIsValidMacroVar( char * szVarName, HB_COMP_DECL ) +static BOOL hb_compIsValidMacroVar( char * szVarName, HB_COMP_DECL ) { - BOOL bValid = FALSE; + return !hb_compLocalGetPos( HB_COMP_PARAM, szVarName ) && + !hb_compStaticGetPos( szVarName, HB_COMP_PARAM->functions.pLast ) && + !hb_compFieldGetPos( szVarName, HB_COMP_PARAM->functions.pLast ) && + ( HB_COMP_PARAM->fStartProc || + hb_compMemvarGetPos( szVarName, HB_COMP_PARAM->functions.pLast ) || + ( !hb_compFieldGetPos( szVarName, HB_COMP_PARAM->functions.pFirst ) && + !hb_compStaticGetPos( szVarName, HB_COMP_PARAM->functions.pFirst ) ) ); +} - if( hb_compLocalGetPos( HB_COMP_PARAM, szVarName ) ) - ;/* hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_BAD_MACRO, szVarName, NULL );*/ - else if( hb_compStaticGetPos( szVarName, HB_COMP_PARAM->functions.pLast ) > 0 ) - ;/* hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_BAD_MACRO, szVarName, NULL );*/ - else if( hb_compFieldGetPos( szVarName, HB_COMP_PARAM->functions.pLast ) > 0 ) - ;/* hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_BAD_MACRO, szVarName, NULL );*/ - else if( ! HB_COMP_PARAM->fStartProc ) +BOOL hb_compIsValidMacroText( HB_COMP_DECL, char * szText, ULONG ulLen ) +{ + BOOL fFound = FALSE; + ULONG ul = 0; + + while( ul < ulLen ) { - /* Is it a local MEMVAR ? */ - if( hb_compMemvarGetPos( szVarName, HB_COMP_PARAM->functions.pLast ) ) - bValid = TRUE; - else if( hb_compFieldGetPos( szVarName, HB_COMP_PARAM->functions.pFirst ) > 0 ) - ; /*hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_BAD_MACRO, szVarName, NULL );*/ - else if( hb_compStaticGetPos( szVarName, HB_COMP_PARAM->functions.pFirst ) > 0 ) - ; /*hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_BAD_MACRO, szVarName, NULL );*/ - else - bValid = TRUE; /* undeclared variable */ + if( szText[ ul++ ] == '&' ) + { + char szSymName[ HB_SYMBOL_NAME_LEN + 1 ]; + int iSize = 0; + + /* Check if macro operator is used inside a string + * Macro operator is ignored if it is the last char or + * next char is '(' e.g. "this is &(ignored)" + * (except if strict Clipper compatibility mode is enabled) + * + * NOTE: This uses _a-zA-Z pattern to check for + * beginning of a variable name + */ + + while( ul < ulLen && iSize < HB_SYMBOL_NAME_LEN ) + { + char ch = szText[ ul ]; + if( ch >= 'a' && ch <= 'z' ) + szSymName[ iSize++ ] = ch - ( 'a' - 'A' ); + else if( ch == '_' || ( ch >= 'A' && ch <= 'Z' ) || + ( ch >= '0' && ch <= '9' ) ) + szSymName[ iSize++ ] = ch; + else + break; + ++ul; + } + + if( iSize ) + { + szSymName[ iSize ] = '\0'; + + /* NOTE: All variables are assumed memvars in macro compiler - + * there is no need to check for a valid name but to be Clipper + * compatible we should check if local, static or field name + * is not use and generate error in such case + */ + fFound = TRUE; + if( ! hb_compIsValidMacroVar( szSymName, HB_COMP_PARAM ) ) + { + hb_compErrorMacro( HB_COMP_PARAM, szText ); + break; + } + } + else if( ! HB_SUPPORT_HARBOUR ) + fFound = TRUE; /* always macro substitution in Clipper */ + } } - else - bValid = TRUE; /* undeclared variable */ - return bValid; + + return fFound; } int hb_compVariableScope( HB_COMP_DECL, char * szVarName ) @@ -4402,7 +4444,7 @@ static void hb_compInitVars( HB_COMP_DECL ) HB_COMP_PARAM->funcalls.pFirst = NULL; HB_COMP_PARAM->funcalls.pLast = NULL; HB_COMP_PARAM->szAnnounce = NULL; - HB_COMP_PARAM->fTextSubst = TRUE; + HB_COMP_PARAM->fTextSubst = ( HB_COMP_PARAM->supported & HB_COMPFLAG_MACROTEXT ) != 0; HB_COMP_PARAM->fLongOptimize = TRUE; HB_COMP_PARAM->symbols.iCount = 0; diff --git a/harbour/source/compiler/harbour.y b/harbour/source/compiler/harbour.y index a2ff149638..7c65bf227e 100644 --- a/harbour/source/compiler/harbour.y +++ b/harbour/source/compiler/harbour.y @@ -1,6 +1,7 @@ %pure-parser %parse-param { HB_COMP_PTR pComp } %lex-param { HB_COMP_PTR pComp } +%name-prefix = "hb_comp" %{ /* * $Id$ @@ -207,9 +208,9 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun %type Descend %type WhileBegin %type IfElseIf Cases -%type Argument ExtArgument ArgList ElemList +%type Argument ExtArgument RefArgument ArgList ElemList %type BlockExpList BlockVars BlockVarList -%type DoName DoProc DoArgument DoArgList +%type DoName DoProc DoArgs DoArgument DoArgList %type PareExpList1 PareExpList2 PareExpList3 PareExpListN %type ExpList ExpList1 ExpList2 ExpList3 %type NumValue NumAlias @@ -228,7 +229,7 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun %type FunIdentCall FunCall FunCallAlias FunRef %type ObjectData ObjectDataAlias %type ObjectMethod ObjectMethodAlias -%type IfInline IfInlineAlias +%type IfInline IfInlineAlias IfExpression %type PareExpList PareExpListAlias %type Expression ExtExpression SimpleExpression LValue LeftExpression %type EmptyExpression @@ -260,7 +261,7 @@ extern void yyerror( HB_COMP_DECL, char * ); /* parsing error management fun %% -Main : { hb_compLinePush( HB_COMP_PARAM ); } Source { } +Main : { hb_compLinePush( HB_COMP_PARAM ); } Source { } | /* empty file */ ; @@ -723,17 +724,20 @@ FunRef : '@' FunIdentCall { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, $2 FunCallAlias : FunCall ALIASOP ; -ArgList : ExtArgument { $$ = hb_compExprNewArgList( $1, HB_COMP_PARAM ); } - | ArgList ',' ExtArgument { $$ = hb_compExprAddListExpr( $1, $3 ); } - ; +ArgList : ExtArgument { $$ = hb_compExprNewArgList( $1, HB_COMP_PARAM ); } + | ArgList ',' ExtArgument { $$ = hb_compExprAddListExpr( $1, $3 ); } + ; -Argument : EmptyExpression - | '@' IdentName { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewVarRef( $2, HB_COMP_PARAM ) ); } - | '@' MacroVar { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } - | '@' AliasVar { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } - | '@' ObjectData { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } - | '@' VariableAt { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, $2 ); $$->value.asList.reference = TRUE; } - ; +Argument : EmptyExpression + | RefArgument + ; + +RefArgument : '@' IdentName { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewVarRef( $2, HB_COMP_PARAM ) ); } + | '@' MacroVar { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } + | '@' AliasVar { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } + | '@' ObjectData { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } + | '@' VariableAt { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, $2 ); $$->value.asList.reference = TRUE; } + ; ExtArgument : EPSILON { $$ = hb_compExprNewArgRef( HB_COMP_PARAM ); } | Argument @@ -872,11 +876,6 @@ ExprUnary : NOT Expression { $$ = hb_compExprNewNot( $2, HB_CO | '+' Expression %prec UNARY { $$ = $2; } ; -/* -ExprAssign : Expression INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - ; -*/ - ExprAssign : NumValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } | NilValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } | DateValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } @@ -1016,24 +1015,33 @@ PareExpList : PareExpList1 PareExpListAlias : PareExpList ALIASOP ; -ExpList1 : '(' Argument { $$ = hb_compExprNewList( $2, HB_COMP_PARAM ); } - ; +/* NOTE: Clipper allows to pass variable by reference only as + * function argument, IIF() 2-nd and 3-rd argument and as + * explicit array item {...@var...} + * AFAIK these are also the only one places where empty expressions in + * the parenthesis expressions list are accepted + */ +ExpList1 : '(' Expression { $$ = hb_compExprNewList( $2, HB_COMP_PARAM ); } + ; -ExpList2 : ExpList1 ',' Argument { $$ = hb_compExprAddListExpr( $1, $3 ); } - ; +ExpList2 : ExpList1 ',' Expression { $$ = hb_compExprAddListExpr( $1, $3 ); } + ; -ExpList3 : ExpList2 ',' Argument { $$ = hb_compExprAddListExpr( $1, $3 ); } - ; +ExpList3 : ExpList2 ',' Expression { $$ = hb_compExprAddListExpr( $1, $3 ); } + ; -ExpList : ExpList3 ',' Argument { $$ = hb_compExprAddListExpr( $1, $3 ); } - | ExpList ',' Argument { $$ = hb_compExprAddListExpr( $1, $3 ); } - ; +ExpList : ExpList3 ',' Expression { $$ = hb_compExprAddListExpr( $1, $3 ); } + | ExpList ',' Expression { $$ = hb_compExprAddListExpr( $1, $3 ); } + ; -IfInline : IIF PareExpList3 { $$ = hb_compExprNewIIF( $2, HB_COMP_PARAM ); } - | IF ExpList1 ',' Argument ',' - { $$ = hb_compExprAddListExpr( $2, $4 ); } - Argument ')' - { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( $6, $7 ), HB_COMP_PARAM ); } +IfInline : IIF '(' Expression ',' Argument ',' Argument ')' + { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( $3, HB_COMP_PARAM ), $5 ), $7 ) ); } + | IF ExpList1 ',' Expression ',' Argument ')' + { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( $2, HB_COMP_PARAM ), $4 ), $6 ) ); } + | IF ExpList1 ',' RefArgument ',' Argument ')' + { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( $2, HB_COMP_PARAM ), $4 ), $6 ) ); } + | IF ExpList1 ',' ',' Argument ')' + { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( $2, HB_COMP_PARAM ), hb_compExprNewEmpty( HB_COMP_PARAM ) ), $5 ) ); } ; IfInlineAlias : IfInline ALIASOP @@ -1328,27 +1336,21 @@ EmptyStats : /* empty */ { $$ = 0; } | EmptyStatements { $$ = $1; } ; -IfBegin : IF SimpleExpression { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); } Crlf { hb_compExprDelete( hb_compExprGenPush( $2, HB_COMP_PARAM ), HB_COMP_PARAM ); $$ = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); } - EmptyStats - { $$ = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( $5, HB_COMP_PARAM ); } - - | IF Variable { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); } Crlf { hb_compExprDelete( hb_compExprGenPush( $2, HB_COMP_PARAM ), HB_COMP_PARAM ); $$ = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); } - EmptyStats - { $$ = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( $5, HB_COMP_PARAM ); } - - | IF PareExpList1 { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); } Crlf { hb_compExprDelete( hb_compExprGenPush( $2, HB_COMP_PARAM ), HB_COMP_PARAM ); $$ = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); } - EmptyStats - { $$ = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( $5, HB_COMP_PARAM ); } - - | IF PareExpList2 { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); } Crlf { hb_compExprDelete( hb_compExprGenPush( $2, HB_COMP_PARAM ), HB_COMP_PARAM ); $$ = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); } - EmptyStats - { $$ = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( $5, HB_COMP_PARAM ); } - - | IF PareExpListN { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); } Crlf { hb_compExprDelete( hb_compExprGenPush( $2, HB_COMP_PARAM ), HB_COMP_PARAM ); $$ = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); } - EmptyStats - { $$ = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( $5, HB_COMP_PARAM ); } +IfBegin : IF IfExpression + { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); } + Crlf + { hb_compExprDelete( hb_compExprGenPush( $2, HB_COMP_PARAM ), HB_COMP_PARAM ); $$ = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); } + EmptyStats + { $$ = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( $5, HB_COMP_PARAM ); } ; +IfExpression: SimpleExpression + | Variable + | PareExpList1 + | PareExpList2 + | PareExpListN + ; + IfElse : ELSE Crlf { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; } EmptyStats ; @@ -1589,7 +1591,7 @@ ForStatements : EmptyStats NEXT { hb_compLinePush( HB_COMP_P ForVar : IdentName { $$ = hb_compExprNewVarRef( $1, HB_COMP_PARAM ); } | AliasVar { $$ = hb_compExprNewRef( $1, HB_COMP_PARAM ); } ; - + ForList : ForVar { $$ = hb_compExprNewArgList( $1, HB_COMP_PARAM ); } | ForList ',' ForVar { $$ = hb_compExprAddListExpr( $1, $3 ); } ; @@ -1597,7 +1599,7 @@ ForList : ForVar { $$ = hb_compExprNewArgList( $1, HB_COMP_PAR ForExpr : Expression { $$ = hb_compExprNewArgList( $1, HB_COMP_PARAM ); } | ForExpr ',' Expression { $$ = hb_compExprAddListExpr( $1, $3 ); } ; - + ForEach : FOREACH ForList IN ForExpr /* 1 2 3 4 */ { ++HB_COMP_PARAM->wForCounter; /* 5 */ @@ -1657,7 +1659,7 @@ DoSwitch : SwitchBegin hb_compGenPCode1( HB_P_POP, HB_COMP_PARAM ); } ; - + EndSwitch : END { if( HB_COMP_PARAM->wSwitchCounter ) --HB_COMP_PARAM->wSwitchCounter; @@ -1698,7 +1700,7 @@ SwitchCases : CASE Expression { hb_compSwitchAdd( HB_COMP_PARAM, $2 ); hb_compLi SwitchDefault : OTHERWISE { hb_compSwitchAdd( HB_COMP_PARAM, NULL ); hb_compLinePush( HB_COMP_PARAM ); } Crlf { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; } EmptyStats ; - + BeginSeq : BEGINSEQ { ++HB_COMP_PARAM->wSeqCounter; @@ -1770,25 +1772,30 @@ RecoverUsing : RECOVERUSING IdentName * DO .. WITH ++variable * will pass the value of variable not a reference */ -DoName : IdentName { $$ = hb_compExprNewFunName( $1, HB_COMP_PARAM ); hb_compAutoOpenAdd( HB_COMP_PARAM, $1 ); } - | MacroVar +DoName : MacroVar | MacroExpr ; DoProc : DO DoName - { $$ = hb_compExprNewFunCall( $2, NULL, HB_COMP_PARAM ); } - | DO DoName WITH DoArgList - { $$ = hb_compExprNewFunCall( $2, $4, HB_COMP_PARAM ); } - | DOIDENT - { - /* DOIDENT is the only one identifier which can be returned in lower letters */ - hb_compAutoOpenAdd( HB_COMP_PARAM, $1 ); $$ = hb_compExprNewFunCall( hb_compExprNewFunName( hb_compIdentifierNew( HB_COMP_PARAM, hb_strupr( hb_strdup( $1 ) ), HB_IDENT_FREE ), HB_COMP_PARAM ), NULL, HB_COMP_PARAM ); - } - | DOIDENT WITH DoArgList + { $$ = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; } + DoArgs { - /* DOIDENT is the only one identifier which can be returned in lower letters */ - hb_compAutoOpenAdd( HB_COMP_PARAM, $1 ); $$ = hb_compExprNewFunCall( hb_compExprNewFunName( hb_compIdentifierNew( HB_COMP_PARAM, hb_strupr( hb_strdup( $1 ) ), HB_IDENT_FREE ), HB_COMP_PARAM ), $3, HB_COMP_PARAM ); + $$ = hb_compExprNewFunCall( $2, $4, HB_COMP_PARAM ); + HB_COMP_PARAM->iPassByRef = $3; } + | DOIDENT + { $$ = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; } + DoArgs + { + hb_compAutoOpenAdd( HB_COMP_PARAM, $1 ); + /* DOIDENT is the only one identifier which can be returned in lower letters */ + $$ = hb_compExprNewFunCall( hb_compExprNewFunName( hb_compIdentifierNew( HB_COMP_PARAM, hb_strupr( hb_strdup( $1 ) ), HB_IDENT_FREE ), HB_COMP_PARAM ), $3, HB_COMP_PARAM ); + HB_COMP_PARAM->iPassByRef = $2; + } + ; + +DoArgs : /* empty */ { $$ = NULL; } + | WITH DoArgList { $$ = $2; } ; DoArgList : ',' { $$ = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), hb_compExprNewNil( HB_COMP_PARAM ) ); } @@ -1799,11 +1806,7 @@ DoArgList : ',' { $$ = hb_compExprAddListExpr( hb_compExp ; DoArgument : IdentName { $$ = hb_compExprNewVarRef( $1, HB_COMP_PARAM ); } - | '@' IdentName { $$ = hb_compExprNewVarRef( $2, HB_COMP_PARAM ); } - | '@' MacroVar { $$ = hb_compExprNewRef( $2, HB_COMP_PARAM ); } - | '@' AliasVar { $$ = hb_compExprNewRef( $2, HB_COMP_PARAM ); } - | '@' ObjectData { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( $2, HB_COMP_PARAM ) ); } - | '@' VariableAt { $$ = hb_compCheckPassByRef( HB_COMP_PARAM, $2 ); $$->value.asList.reference = TRUE; } + | RefArgument | FunRef | SimpleExpression | PareExpList diff --git a/harbour/source/compiler/harbour.yyc b/harbour/source/compiler/harbour.yyc index e5ac2b2655..7c4a3ff931 100644 --- a/harbour/source/compiler/harbour.yyc +++ b/harbour/source/compiler/harbour.yyc @@ -284,7 +284,7 @@ /* Copy the first part of user declarations. */ -#line 4 "harbour.y" +#line 5 "harbour.y" /* * $Id$ @@ -403,7 +403,7 @@ static void hb_compDebugStart( void ) { }; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 103 "harbour.y" +#line 104 "harbour.y" { char * string; /* to hold a string returned by lex */ int iNumber; /* to hold a temporary integer number */ @@ -456,7 +456,7 @@ typedef union YYSTYPE /* Copy the second part of user declarations. */ -#line 145 "harbour.y" +#line 146 "harbour.y" /* This must be placed after the above union - the union is * typedef-ined to YYSTYPE @@ -681,16 +681,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 8475 +#define YYLAST 7827 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 126 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 248 +#define YYNNTS 244 /* YYNRULES -- Number of rules. */ -#define YYNRULES 630 +#define YYNRULES 622 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1000 +#define YYNSTATES 991 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -768,83 +768,82 @@ static const yytype_uint16 yyprhs[] = 545, 548, 551, 554, 557, 560, 563, 566, 569, 572, 575, 578, 581, 584, 587, 590, 593, 596, 599, 602, 605, 608, 611, 614, 615, 621, 623, 624, 630, 631, - 637, 640, 643, 645, 649, 651, 654, 657, 660, 663, - 666, 668, 670, 672, 674, 676, 680, 683, 686, 687, - 693, 696, 698, 700, 702, 704, 706, 708, 710, 711, - 715, 717, 719, 721, 723, 725, 727, 729, 731, 732, - 736, 738, 740, 741, 745, 747, 748, 752, 754, 756, - 758, 760, 762, 764, 766, 768, 770, 772, 774, 775, - 779, 780, 784, 786, 788, 790, 791, 793, 795, 797, + 637, 640, 643, 645, 649, 651, 653, 656, 659, 662, + 665, 668, 670, 672, 674, 676, 678, 682, 685, 688, + 689, 695, 698, 700, 702, 704, 706, 708, 710, 712, + 713, 717, 719, 721, 723, 725, 727, 729, 731, 733, + 734, 738, 740, 742, 743, 747, 749, 750, 754, 756, + 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, + 777, 781, 782, 786, 788, 790, 792, 793, 795, 797, 799, 801, 803, 805, 807, 809, 811, 813, 815, 817, 819, 821, 823, 825, 827, 829, 831, 833, 835, 837, - 839, 841, 843, 845, 847, 849, 851, 854, 857, 860, - 863, 866, 869, 873, 877, 881, 885, 889, 893, 897, - 901, 905, 909, 913, 917, 921, 925, 929, 933, 937, - 941, 945, 949, 953, 957, 961, 965, 969, 973, 977, - 979, 981, 983, 985, 987, 989, 993, 997, 1001, 1005, - 1009, 1013, 1017, 1021, 1025, 1029, 1033, 1037, 1041, 1045, - 1049, 1053, 1057, 1060, 1063, 1067, 1072, 1074, 1078, 1079, - 1086, 1088, 1092, 1093, 1095, 1097, 1101, 1104, 1109, 1112, - 1115, 1118, 1121, 1123, 1125, 1127, 1129, 1132, 1135, 1139, - 1143, 1147, 1151, 1154, 1155, 1164, 1167, 1168, 1173, 1174, - 1179, 1180, 1185, 1187, 1191, 1193, 1197, 1199, 1202, 1207, - 1210, 1214, 1215, 1219, 1220, 1221, 1228, 1231, 1235, 1238, - 1241, 1245, 1250, 1251, 1256, 1259, 1264, 1268, 1269, 1274, - 1277, 1282, 1283, 1292, 1293, 1299, 1303, 1307, 1308, 1316, - 1318, 1322, 1324, 1327, 1329, 1332, 1333, 1340, 1341, 1345, - 1346, 1348, 1350, 1354, 1356, 1360, 1362, 1365, 1369, 1375, - 1380, 1386, 1394, 1398, 1403, 1410, 1416, 1423, 1432, 1434, - 1436, 1438, 1440, 1442, 1444, 1446, 1449, 1453, 1457, 1462, - 1464, 1467, 1468, 1470, 1471, 1472, 1479, 1480, 1481, 1488, - 1489, 1490, 1497, 1498, 1499, 1506, 1507, 1508, 1515, 1516, - 1521, 1522, 1523, 1530, 1531, 1532, 1540, 1542, 1544, 1548, - 1552, 1555, 1560, 1562, 1564, 1565, 1569, 1571, 1574, 1575, - 1576, 1583, 1584, 1585, 1593, 1594, 1595, 1601, 1602, 1608, - 1609, 1610, 1618, 1620, 1622, 1624, 1625, 1626, 1627, 1640, - 1642, 1644, 1645, 1648, 1651, 1655, 1658, 1662, 1664, 1666, - 1668, 1672, 1674, 1678, 1679, 1680, 1681, 1692, 1693, 1695, - 1696, 1701, 1704, 1706, 1707, 1712, 1714, 1717, 1718, 1724, - 1725, 1732, 1734, 1737, 1738, 1739, 1745, 1746, 1747, 1748, - 1757, 1758, 1762, 1766, 1768, 1771, 1773, 1775, 1777, 1780, - 1785, 1787, 1791, 1793, 1796, 1798, 1801, 1805, 1807, 1810, - 1813, 1816, 1819, 1822, 1824, 1826, 1828, 1829, 1836, 1841, - 1843 + 839, 841, 843, 845, 847, 849, 851, 853, 856, 859, + 862, 865, 868, 871, 875, 879, 883, 887, 891, 895, + 899, 903, 907, 911, 915, 919, 923, 927, 931, 935, + 939, 943, 947, 951, 955, 959, 963, 967, 971, 975, + 979, 981, 983, 985, 987, 989, 991, 995, 999, 1003, + 1007, 1011, 1015, 1019, 1023, 1027, 1031, 1035, 1039, 1043, + 1047, 1051, 1055, 1059, 1062, 1065, 1069, 1074, 1076, 1080, + 1081, 1088, 1090, 1094, 1095, 1097, 1099, 1103, 1106, 1111, + 1114, 1117, 1120, 1123, 1125, 1127, 1129, 1131, 1134, 1137, + 1141, 1145, 1149, 1153, 1162, 1170, 1178, 1185, 1188, 1189, + 1194, 1195, 1200, 1201, 1206, 1208, 1212, 1214, 1218, 1220, + 1223, 1228, 1231, 1235, 1236, 1240, 1241, 1242, 1249, 1252, + 1256, 1259, 1262, 1266, 1271, 1272, 1277, 1280, 1285, 1289, + 1290, 1295, 1298, 1303, 1304, 1313, 1314, 1320, 1324, 1328, + 1329, 1337, 1339, 1343, 1345, 1348, 1350, 1353, 1354, 1361, + 1362, 1366, 1367, 1369, 1371, 1375, 1377, 1381, 1383, 1386, + 1390, 1396, 1401, 1407, 1415, 1419, 1424, 1431, 1437, 1444, + 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1470, 1474, + 1478, 1483, 1485, 1488, 1489, 1491, 1492, 1493, 1500, 1502, + 1504, 1506, 1508, 1510, 1511, 1516, 1517, 1518, 1525, 1526, + 1527, 1535, 1537, 1539, 1543, 1547, 1550, 1555, 1557, 1559, + 1560, 1564, 1566, 1569, 1570, 1571, 1578, 1579, 1580, 1588, + 1589, 1590, 1596, 1597, 1603, 1604, 1605, 1613, 1615, 1617, + 1619, 1620, 1621, 1622, 1635, 1637, 1639, 1640, 1643, 1646, + 1650, 1653, 1657, 1659, 1661, 1663, 1667, 1669, 1673, 1674, + 1675, 1676, 1687, 1688, 1690, 1691, 1696, 1699, 1701, 1702, + 1707, 1709, 1712, 1713, 1719, 1720, 1727, 1729, 1732, 1733, + 1734, 1740, 1741, 1742, 1743, 1752, 1753, 1757, 1761, 1763, + 1766, 1768, 1770, 1771, 1776, 1777, 1781, 1782, 1785, 1787, + 1790, 1792, 1795, 1799, 1801, 1803, 1805, 1807, 1809, 1810, + 1817, 1822, 1824 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 127, 0, -1, -1, 128, 129, -1, -1, 373, -1, - 276, -1, 131, -1, 142, -1, 130, -1, 1, 373, - -1, 129, 373, -1, 129, 276, -1, 129, 131, -1, - 129, 142, -1, 129, 130, -1, 129, 1, 373, -1, - 68, 10, 19, 373, -1, 68, 10, 19, 114, 19, - 373, -1, -1, 136, 3, 161, 132, 373, -1, -1, - 136, 4, 161, 133, 373, -1, -1, 136, 3, 161, - 134, 118, 137, 119, 373, -1, -1, 136, 4, 161, - 135, 118, 137, 119, 373, -1, -1, 12, -1, 24, + 127, 0, -1, -1, 128, 129, -1, -1, 369, -1, + 276, -1, 131, -1, 142, -1, 130, -1, 1, 369, + -1, 129, 369, -1, 129, 276, -1, 129, 131, -1, + 129, 142, -1, 129, 130, -1, 129, 1, 369, -1, + 68, 10, 19, 369, -1, 68, 10, 19, 114, 19, + 369, -1, -1, 136, 3, 161, 132, 369, -1, -1, + 136, 4, 161, 133, 369, -1, -1, 136, 3, 161, + 134, 118, 137, 119, 369, -1, -1, 136, 4, 161, + 135, 118, 137, 119, 369, -1, -1, 12, -1, 24, -1, 25, -1, -1, 100, -1, 141, -1, 141, 117, 100, -1, -1, 139, -1, 77, -1, 73, -1, 75, -1, 76, -1, 72, -1, 78, -1, 74, 161, -1, 79, -1, 140, -1, 71, -1, 90, -1, 86, -1, 88, -1, 89, -1, 84, -1, 85, -1, 91, -1, 87, 161, -1, 161, 138, -1, 141, 117, 161, 138, - -1, -1, 291, 143, 154, -1, 371, 154, -1, 254, - 154, -1, 194, 154, -1, 189, 154, -1, 205, 154, - -1, 181, 154, -1, 183, 154, -1, 248, 154, -1, - 222, 154, -1, 221, 154, -1, 232, 154, -1, 225, - 154, -1, 224, 154, -1, 368, 154, -1, 62, 154, - -1, -1, 62, 144, 213, 373, -1, -1, 25, 145, + -1, -1, 291, 143, 154, -1, 367, 154, -1, 255, + 154, -1, 194, 154, -1, 189, 154, -1, 206, 154, + -1, 181, 154, -1, 183, 154, -1, 249, 154, -1, + 223, 154, -1, 222, 154, -1, 233, 154, -1, 226, + 154, -1, 225, 154, -1, 361, 154, -1, 62, 154, + -1, -1, 62, 144, 214, 369, -1, -1, 25, 145, 154, -1, -1, 43, 146, 154, -1, 6, 154, -1, - -1, 6, 147, 213, 373, -1, -1, -1, 29, 148, - 262, 149, 373, -1, -1, -1, 60, 150, 262, 151, - 373, -1, 257, -1, 270, -1, 273, -1, 23, 160, - 373, -1, -1, 22, 161, 152, 373, -1, 92, 153, - 119, 373, -1, 19, -1, 19, 106, 19, -1, -1, - 155, 373, -1, 373, -1, 142, -1, 276, -1, 130, - -1, 157, -1, 1, -1, 158, 3, 161, 373, -1, - 158, 3, 161, 118, 137, 119, 373, -1, 158, 4, - 161, 373, -1, 158, 4, 161, 118, 137, 119, 373, + -1, 6, 147, 214, 369, -1, -1, -1, 29, 148, + 262, 149, 369, -1, -1, -1, 60, 150, 262, 151, + 369, -1, 257, -1, 270, -1, 273, -1, 23, 160, + 369, -1, -1, 22, 161, 152, 369, -1, 92, 153, + 119, 369, -1, 19, -1, 19, 106, 19, -1, -1, + 155, 369, -1, 369, -1, 142, -1, 276, -1, 130, + -1, 157, -1, 1, -1, 158, 3, 161, 369, -1, + 158, 3, 161, 118, 137, 119, 369, -1, 158, 4, + 161, 369, -1, 158, 4, 161, 118, 137, 119, 369, -1, -1, 12, -1, 24, -1, 25, -1, 156, -1, 159, 156, -1, 161, -1, 160, 117, 161, -1, 5, -1, 47, -1, 46, -1, 43, -1, 25, -1, 51, @@ -852,222 +851,219 @@ static const yytype_int16 yyrhs[] = -1, 12, -1, 60, -1, 29, -1, 52, -1, 92, -1, 96, -1, 8, -1, 10, -1, 99, -1, 10, 35, -1, 8, 35, -1, 7, -1, 165, 35, -1, - 19, -1, 167, 35, -1, 239, 35, -1, 20, -1, + 19, -1, 167, 35, -1, 240, 35, -1, 20, -1, 21, -1, 170, 35, -1, 67, -1, 172, 35, -1, - -1, 120, 175, 238, 121, -1, 174, 35, -1, 174, - 236, -1, 177, 35, -1, 161, -1, 161, 35, -1, - 69, -1, 70, -1, 181, 35, -1, 113, 248, -1, + -1, 120, 175, 239, 121, -1, 174, 35, -1, 174, + 237, -1, 177, 35, -1, 161, -1, 161, 35, -1, + 69, -1, 70, -1, 181, 35, -1, 113, 249, -1, 183, 35, -1, 50, 35, -1, 50, 35, 185, -1, - 185, 180, -1, 185, 164, -1, 185, 249, -1, 185, + 185, 180, -1, 185, 164, -1, 185, 250, -1, 185, 182, -1, 185, 184, -1, 185, 166, -1, 185, 168, -1, 185, 171, -1, 185, 169, -1, 185, 173, -1, 185, 176, -1, 185, 178, -1, 185, 256, -1, 161, -1, 181, -1, 183, -1, 164, 187, -1, 182, 187, - -1, 184, 187, -1, 249, 187, -1, 166, 187, -1, + -1, 184, 187, -1, 250, 187, -1, 166, 187, -1, 168, 187, -1, 171, 187, -1, 169, 187, -1, 173, 187, -1, 176, 187, -1, 178, 187, -1, 191, 187, - -1, 256, 187, -1, 198, 187, -1, 204, 187, -1, - 207, 187, -1, 180, 187, -1, 185, 187, -1, 186, - 187, -1, 164, 248, -1, 180, 248, -1, 182, 248, - -1, 184, 248, -1, 249, 248, -1, 185, 248, -1, - 162, 236, -1, 165, 236, -1, 163, 236, -1, 167, - 236, -1, 239, 236, -1, 170, 236, -1, 172, 236, - -1, 179, 236, -1, 188, 236, -1, 189, 236, -1, - 181, 236, -1, 183, 236, -1, 203, 236, -1, 205, - 236, -1, 194, 236, -1, 254, 236, -1, 248, 236, + -1, 256, 187, -1, 198, 187, -1, 205, 187, -1, + 208, 187, -1, 180, 187, -1, 185, 187, -1, 186, + 187, -1, 164, 249, -1, 180, 249, -1, 182, 249, + -1, 184, 249, -1, 250, 249, -1, 185, 249, -1, + 162, 237, -1, 165, 237, -1, 163, 237, -1, 167, + 237, -1, 240, 237, -1, 170, 237, -1, 172, 237, + -1, 179, 237, -1, 188, 237, -1, 189, 237, -1, + 181, 237, -1, 183, 237, -1, 204, 237, -1, 206, + 237, -1, 194, 237, -1, 255, 237, -1, 249, 237, -1, 190, 35, -1, -1, 161, 118, 193, 199, 119, -1, 192, -1, -1, 181, 118, 195, 199, 119, -1, -1, 183, 118, 196, 199, 119, -1, 114, 192, -1, - 194, 35, -1, 201, -1, 199, 117, 201, -1, 217, - -1, 114, 161, -1, 114, 181, -1, 114, 188, -1, - 114, 203, -1, 114, 190, -1, 100, -1, 200, -1, - 161, -1, 181, -1, 183, -1, 219, 122, 202, -1, - 122, 202, -1, 203, 35, -1, -1, 203, 118, 206, - 199, 119, -1, 205, 35, -1, 162, -1, 165, -1, - 163, -1, 167, -1, 239, -1, 170, -1, 172, -1, - -1, 172, 209, 139, -1, 174, -1, 177, -1, 188, - -1, 189, -1, 181, -1, 183, -1, 190, -1, 194, - -1, -1, 194, 210, 139, -1, 254, -1, 203, -1, - -1, 203, 211, 139, -1, 205, -1, -1, 205, 212, - 139, -1, 224, -1, 232, -1, 221, -1, 222, -1, - 223, -1, 233, -1, 234, -1, 235, -1, 208, -1, - 179, -1, 248, -1, -1, 179, 214, 139, -1, -1, - 248, 215, 139, -1, 197, -1, 100, -1, 213, -1, - -1, 213, -1, 161, -1, 188, -1, 181, -1, 183, - -1, 203, -1, 190, -1, 248, -1, 162, -1, 165, - -1, 163, -1, 167, -1, 239, -1, 170, -1, 172, - -1, 174, -1, 177, -1, 188, -1, 189, -1, 181, - -1, 183, -1, 179, -1, 190, -1, 248, -1, 194, - -1, 254, -1, 203, -1, 205, -1, 33, -1, 34, - -1, 219, 220, -1, 33, 213, -1, 34, 213, -1, - 28, 213, -1, 107, 213, -1, 106, 213, -1, 162, - 9, 213, -1, 165, 9, 213, -1, 163, 9, 213, - -1, 167, 9, 213, -1, 239, 9, 213, -1, 170, - 9, 213, -1, 172, 9, 213, -1, 174, 9, 213, - -1, 177, 9, 213, -1, 188, 9, 213, -1, 189, - 9, 213, -1, 181, 9, 213, -1, 183, 9, 213, - -1, 179, 9, 213, -1, 190, 9, 213, -1, 248, - 9, 213, -1, 254, 9, 213, -1, 194, 9, 213, - -1, 203, 9, 213, -1, 205, 9, 213, -1, 219, - 102, 213, -1, 219, 53, 213, -1, 219, 54, 213, - -1, 219, 55, 213, -1, 219, 56, 213, -1, 219, - 59, 213, -1, 219, 58, 213, -1, 226, -1, 227, - -1, 228, -1, 229, -1, 230, -1, 231, -1, 213, - 106, 213, -1, 213, 107, 213, -1, 213, 108, 213, - -1, 213, 109, 213, -1, 213, 110, 213, -1, 213, - 57, 213, -1, 213, 26, 213, -1, 213, 27, 213, - -1, 213, 30, 213, -1, 213, 103, 213, -1, 213, - 104, 213, -1, 213, 48, 213, -1, 213, 49, 213, - -1, 213, 31, 213, -1, 213, 32, 213, -1, 213, - 105, 213, -1, 213, 102, 213, -1, 237, 123, -1, - 124, 216, -1, 237, 117, 216, -1, 237, 123, 124, - 216, -1, 201, -1, 238, 117, 201, -1, -1, 93, - 240, 242, 125, 241, 121, -1, 213, -1, 241, 117, - 213, -1, -1, 100, -1, 243, -1, 243, 117, 100, - -1, 161, 138, -1, 243, 117, 161, 138, -1, 250, - 119, -1, 251, 119, -1, 252, 119, -1, 253, 119, - -1, 244, -1, 245, -1, 246, -1, 247, -1, 248, - 35, -1, 118, 200, -1, 250, 117, 200, -1, 251, - 117, 200, -1, 252, 117, 200, -1, 253, 117, 200, - -1, 13, 246, -1, -1, 14, 250, 117, 200, 117, - 255, 200, 119, -1, 254, 35, -1, -1, 11, 258, - 261, 373, -1, -1, 12, 259, 261, 373, -1, -1, - 52, 260, 275, 373, -1, 264, -1, 261, 117, 264, - -1, 263, -1, 262, 117, 263, -1, 264, -1, 181, - 138, -1, 181, 138, 9, 213, -1, 181, 268, -1, - 181, 268, 140, -1, -1, 161, 138, 265, -1, -1, - -1, 161, 138, 266, 9, 267, 213, -1, 161, 268, - -1, 161, 268, 140, -1, 269, 123, -1, 124, 213, - -1, 269, 117, 213, -1, 269, 123, 124, 213, -1, - -1, 50, 271, 272, 373, -1, 161, 138, -1, 272, - 117, 161, 138, -1, 272, 51, 161, -1, -1, 41, - 274, 275, 373, -1, 161, 138, -1, 275, 117, 161, - 138, -1, -1, 80, 161, 118, 277, 286, 119, 138, - 373, -1, -1, 80, 161, 278, 281, 373, -1, 82, - 161, 373, -1, 83, 282, 373, -1, -1, 83, 120, - 138, 279, 280, 121, 373, -1, 284, -1, 280, 117, - 284, -1, 282, -1, 281, 282, -1, 284, -1, 281, - 284, -1, -1, 161, 118, 283, 286, 119, 138, -1, - -1, 161, 285, 138, -1, -1, 289, -1, 290, -1, - 289, 117, 290, -1, 288, -1, 287, 117, 288, -1, - 217, -1, 161, 138, -1, 114, 161, 138, -1, 114, - 161, 118, 287, 119, -1, 289, 117, 161, 138, -1, - 289, 117, 114, 161, 138, -1, 289, 117, 114, 161, - 118, 287, 119, -1, 81, 161, 138, -1, 81, 114, - 161, 138, -1, 81, 114, 161, 118, 287, 119, -1, - 290, 117, 81, 161, 138, -1, 290, 117, 81, 114, - 161, 138, -1, 290, 117, 81, 114, 161, 118, 287, - 119, -1, 292, -1, 314, -1, 328, -1, 333, -1, - 360, -1, 343, -1, 348, -1, 295, 313, -1, 295, - 306, 313, -1, 295, 308, 313, -1, 295, 308, 306, - 313, -1, 156, -1, 293, 156, -1, -1, 293, -1, - -1, -1, 14, 208, 296, 373, 297, 294, -1, -1, - -1, 14, 179, 298, 373, 299, 294, -1, -1, -1, - 14, 244, 300, 373, 301, 294, -1, -1, -1, 14, - 245, 302, 373, 303, 294, -1, -1, -1, 14, 247, - 304, 373, 305, 294, -1, -1, 15, 373, 307, 294, - -1, -1, -1, 16, 309, 213, 373, 310, 294, -1, - -1, -1, 308, 16, 311, 213, 373, 312, 294, -1, - 18, -1, 17, -1, 318, 319, 315, -1, 318, 324, - 315, -1, 318, 315, -1, 318, 319, 324, 315, -1, - 39, -1, 17, -1, -1, 36, 317, 373, -1, 316, - -1, 316, 159, -1, -1, -1, 37, 320, 213, 373, - 321, 294, -1, -1, -1, 319, 37, 322, 213, 373, - 323, 294, -1, -1, -1, 38, 325, 373, 326, 294, - -1, -1, 324, 38, 327, 373, 294, -1, -1, -1, - 331, 213, 373, 329, 294, 330, 332, -1, 42, -1, - 17, -1, 40, -1, -1, -1, -1, 44, 218, 337, - 213, 334, 46, 213, 338, 335, 373, 336, 339, -1, - 102, -1, 9, -1, -1, 47, 213, -1, 294, 45, - -1, 294, 45, 161, -1, 294, 17, -1, 294, 17, - 161, -1, 161, -1, 188, -1, 340, -1, 341, 117, - 340, -1, 213, -1, 342, 117, 213, -1, -1, -1, - -1, 95, 341, 51, 342, 344, 347, 345, 373, 346, - 339, -1, -1, 96, -1, -1, 353, 349, 354, 350, - -1, 353, 350, -1, 17, -1, -1, 97, 352, 213, - 373, -1, 351, -1, 351, 159, -1, -1, 37, 213, - 355, 373, 294, -1, -1, 354, 37, 213, 356, 373, - 294, -1, 357, -1, 354, 357, -1, -1, -1, 38, - 358, 373, 359, 294, -1, -1, -1, -1, 61, 361, - 373, 294, 362, 364, 363, 17, -1, -1, 365, 373, - 294, -1, 366, 373, 294, -1, 63, -1, 64, 161, - -1, 161, -1, 181, -1, 183, -1, 65, 367, -1, - 65, 367, 66, 369, -1, 94, -1, 94, 66, 369, - -1, 117, -1, 117, 370, -1, 370, -1, 369, 117, - -1, 369, 117, 370, -1, 161, -1, 114, 161, -1, - 114, 181, -1, 114, 188, -1, 114, 203, -1, 114, - 190, -1, 197, -1, 208, -1, 248, -1, -1, 98, - 213, 373, 372, 293, 17, -1, 98, 213, 373, 17, - -1, 115, -1, 116, -1 + 194, 35, -1, 202, -1, 199, 117, 202, -1, 218, + -1, 201, -1, 114, 161, -1, 114, 181, -1, 114, + 188, -1, 114, 204, -1, 114, 190, -1, 100, -1, + 200, -1, 161, -1, 181, -1, 183, -1, 220, 122, + 203, -1, 122, 203, -1, 204, 35, -1, -1, 204, + 118, 207, 199, 119, -1, 206, 35, -1, 162, -1, + 165, -1, 163, -1, 167, -1, 240, -1, 170, -1, + 172, -1, -1, 172, 210, 139, -1, 174, -1, 177, + -1, 188, -1, 189, -1, 181, -1, 183, -1, 190, + -1, 194, -1, -1, 194, 211, 139, -1, 255, -1, + 204, -1, -1, 204, 212, 139, -1, 206, -1, -1, + 206, 213, 139, -1, 225, -1, 233, -1, 222, -1, + 223, -1, 224, -1, 234, -1, 235, -1, 236, -1, + 209, -1, 179, -1, 249, -1, -1, 179, 215, 139, + -1, -1, 249, 216, 139, -1, 197, -1, 100, -1, + 214, -1, -1, 214, -1, 161, -1, 188, -1, 181, + -1, 183, -1, 204, -1, 190, -1, 249, -1, 162, + -1, 165, -1, 163, -1, 167, -1, 240, -1, 170, + -1, 172, -1, 174, -1, 177, -1, 188, -1, 189, + -1, 181, -1, 183, -1, 179, -1, 190, -1, 249, + -1, 194, -1, 255, -1, 204, -1, 206, -1, 33, + -1, 34, -1, 220, 221, -1, 33, 214, -1, 34, + 214, -1, 28, 214, -1, 107, 214, -1, 106, 214, + -1, 162, 9, 214, -1, 165, 9, 214, -1, 163, + 9, 214, -1, 167, 9, 214, -1, 240, 9, 214, + -1, 170, 9, 214, -1, 172, 9, 214, -1, 174, + 9, 214, -1, 177, 9, 214, -1, 188, 9, 214, + -1, 189, 9, 214, -1, 181, 9, 214, -1, 183, + 9, 214, -1, 179, 9, 214, -1, 190, 9, 214, + -1, 249, 9, 214, -1, 255, 9, 214, -1, 194, + 9, 214, -1, 204, 9, 214, -1, 206, 9, 214, + -1, 220, 102, 214, -1, 220, 53, 214, -1, 220, + 54, 214, -1, 220, 55, 214, -1, 220, 56, 214, + -1, 220, 59, 214, -1, 220, 58, 214, -1, 227, + -1, 228, -1, 229, -1, 230, -1, 231, -1, 232, + -1, 214, 106, 214, -1, 214, 107, 214, -1, 214, + 108, 214, -1, 214, 109, 214, -1, 214, 110, 214, + -1, 214, 57, 214, -1, 214, 26, 214, -1, 214, + 27, 214, -1, 214, 30, 214, -1, 214, 103, 214, + -1, 214, 104, 214, -1, 214, 48, 214, -1, 214, + 49, 214, -1, 214, 31, 214, -1, 214, 32, 214, + -1, 214, 105, 214, -1, 214, 102, 214, -1, 238, + 123, -1, 124, 217, -1, 238, 117, 217, -1, 238, + 123, 124, 217, -1, 202, -1, 239, 117, 202, -1, + -1, 93, 241, 243, 125, 242, 121, -1, 214, -1, + 242, 117, 214, -1, -1, 100, -1, 244, -1, 244, + 117, 100, -1, 161, 138, -1, 244, 117, 161, 138, + -1, 251, 119, -1, 252, 119, -1, 253, 119, -1, + 254, 119, -1, 245, -1, 246, -1, 247, -1, 248, + -1, 249, 35, -1, 118, 214, -1, 251, 117, 214, + -1, 252, 117, 214, -1, 253, 117, 214, -1, 254, + 117, 214, -1, 13, 118, 214, 117, 200, 117, 200, + 119, -1, 14, 251, 117, 214, 117, 200, 119, -1, + 14, 251, 117, 201, 117, 200, 119, -1, 14, 251, + 117, 117, 200, 119, -1, 255, 35, -1, -1, 11, + 258, 261, 369, -1, -1, 12, 259, 261, 369, -1, + -1, 52, 260, 275, 369, -1, 264, -1, 261, 117, + 264, -1, 263, -1, 262, 117, 263, -1, 264, -1, + 181, 138, -1, 181, 138, 9, 214, -1, 181, 268, + -1, 181, 268, 140, -1, -1, 161, 138, 265, -1, + -1, -1, 161, 138, 266, 9, 267, 214, -1, 161, + 268, -1, 161, 268, 140, -1, 269, 123, -1, 124, + 214, -1, 269, 117, 214, -1, 269, 123, 124, 214, + -1, -1, 50, 271, 272, 369, -1, 161, 138, -1, + 272, 117, 161, 138, -1, 272, 51, 161, -1, -1, + 41, 274, 275, 369, -1, 161, 138, -1, 275, 117, + 161, 138, -1, -1, 80, 161, 118, 277, 286, 119, + 138, 369, -1, -1, 80, 161, 278, 281, 369, -1, + 82, 161, 369, -1, 83, 282, 369, -1, -1, 83, + 120, 138, 279, 280, 121, 369, -1, 284, -1, 280, + 117, 284, -1, 282, -1, 281, 282, -1, 284, -1, + 281, 284, -1, -1, 161, 118, 283, 286, 119, 138, + -1, -1, 161, 285, 138, -1, -1, 289, -1, 290, + -1, 289, 117, 290, -1, 288, -1, 287, 117, 288, + -1, 218, -1, 161, 138, -1, 114, 161, 138, -1, + 114, 161, 118, 287, 119, -1, 289, 117, 161, 138, + -1, 289, 117, 114, 161, 138, -1, 289, 117, 114, + 161, 118, 287, 119, -1, 81, 161, 138, -1, 81, + 114, 161, 138, -1, 81, 114, 161, 118, 287, 119, + -1, 290, 117, 81, 161, 138, -1, 290, 117, 81, + 114, 161, 138, -1, 290, 117, 81, 114, 161, 118, + 287, 119, -1, 292, -1, 307, -1, 321, -1, 326, + -1, 353, -1, 336, -1, 341, -1, 295, 306, -1, + 295, 299, 306, -1, 295, 301, 306, -1, 295, 301, + 299, 306, -1, 156, -1, 293, 156, -1, -1, 293, + -1, -1, -1, 14, 298, 296, 369, 297, 294, -1, + 209, -1, 179, -1, 245, -1, 246, -1, 248, -1, + -1, 15, 369, 300, 294, -1, -1, -1, 16, 302, + 214, 369, 303, 294, -1, -1, -1, 301, 16, 304, + 214, 369, 305, 294, -1, 18, -1, 17, -1, 311, + 312, 308, -1, 311, 317, 308, -1, 311, 308, -1, + 311, 312, 317, 308, -1, 39, -1, 17, -1, -1, + 36, 310, 369, -1, 309, -1, 309, 159, -1, -1, + -1, 37, 313, 214, 369, 314, 294, -1, -1, -1, + 312, 37, 315, 214, 369, 316, 294, -1, -1, -1, + 38, 318, 369, 319, 294, -1, -1, 317, 38, 320, + 369, 294, -1, -1, -1, 324, 214, 369, 322, 294, + 323, 325, -1, 42, -1, 17, -1, 40, -1, -1, + -1, -1, 44, 219, 330, 214, 327, 46, 214, 331, + 328, 369, 329, 332, -1, 102, -1, 9, -1, -1, + 47, 214, -1, 294, 45, -1, 294, 45, 161, -1, + 294, 17, -1, 294, 17, 161, -1, 161, -1, 188, + -1, 333, -1, 334, 117, 333, -1, 214, -1, 335, + 117, 214, -1, -1, -1, -1, 95, 334, 51, 335, + 337, 340, 338, 369, 339, 332, -1, -1, 96, -1, + -1, 346, 342, 347, 343, -1, 346, 343, -1, 17, + -1, -1, 97, 345, 214, 369, -1, 344, -1, 344, + 159, -1, -1, 37, 214, 348, 369, 294, -1, -1, + 347, 37, 214, 349, 369, 294, -1, 350, -1, 347, + 350, -1, -1, -1, 38, 351, 369, 352, 294, -1, + -1, -1, -1, 61, 354, 369, 294, 355, 357, 356, + 17, -1, -1, 358, 369, 294, -1, 359, 369, 294, + -1, 63, -1, 64, 161, -1, 181, -1, 183, -1, + -1, 65, 360, 362, 364, -1, -1, 94, 363, 364, + -1, -1, 66, 365, -1, 117, -1, 117, 366, -1, + 366, -1, 365, 117, -1, 365, 117, 366, -1, 161, + -1, 201, -1, 197, -1, 209, -1, 249, -1, -1, + 98, 214, 369, 368, 293, 17, -1, 98, 214, 369, + 17, -1, 115, -1, 116, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 263, 263, 263, 264, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 281, 283, 288, - 288, 289, 289, 290, 290, 291, 291, 294, 295, 296, - 297, 300, 301, 302, 303, 306, 307, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 332, 333, 341, 341, 342, - 343, 344, 345, 346, 347, 353, 359, 360, 361, 362, - 363, 364, 365, 366, 368, 368, 372, 372, 373, 373, - 374, 388, 388, 408, 410, 408, 414, 416, 414, 420, - 421, 422, 423, 424, 424, 438, 441, 449, 462, 462, - 465, 466, 467, 468, 469, 470, 483, 484, 485, 486, - 489, 490, 491, 492, 495, 496, 499, 500, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 524, 525, 528, 536, 537, - 542, 545, 550, 556, 561, 566, 567, 570, 575, 578, - 583, 583, 586, 591, 594, 599, 602, 607, 608, 611, - 616, 619, 626, 627, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 647, 648, 649, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, 666, 667, 668, 669, 670, 679, - 680, 681, 682, 683, 684, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 708, 711, 711, 714, 715, 715, 716, 716, - 720, 723, 726, 727, 730, 731, 732, 733, 734, 735, - 738, 739, 744, 745, 746, 749, 750, 756, 761, 761, - 764, 773, 774, 775, 776, 777, 778, 779, 780, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 789, - 790, 791, 792, 792, 793, 794, 794, 795, 796, 797, - 798, 799, 800, 801, 802, 805, 806, 807, 808, 808, - 809, 809, 810, 813, 814, 817, 818, 821, 822, 823, - 824, 825, 826, 827, 834, 835, 836, 837, 838, 839, - 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, - 850, 851, 852, 853, 859, 860, 863, 866, 867, 870, - 871, 872, 880, 881, 882, 883, 884, 885, 886, 887, - 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, - 898, 899, 902, 905, 908, 911, 914, 917, 920, 923, - 924, 925, 926, 927, 928, 931, 932, 933, 934, 935, - 936, 939, 940, 943, 944, 945, 946, 947, 948, 949, - 950, 951, 954, 960, 961, 962, 965, 966, 969, 969, - 975, 976, 981, 982, 983, 984, 987, 988, 998, 1001, - 1004, 1007, 1010, 1011, 1012, 1013, 1016, 1019, 1022, 1025, - 1028, 1029, 1032, 1034, 1033, 1039, 1042, 1042, 1044, 1044, - 1046, 1046, 1053, 1054, 1057, 1058, 1066, 1067, 1069, 1073, - 1080, 1089, 1089, 1103, 1106, 1103, 1131, 1132, 1138, 1141, - 1142, 1143, 1147, 1147, 1150, 1151, 1152, 1155, 1155, 1158, - 1159, 1162, 1162, 1185, 1185, 1186, 1187, 1188, 1188, 1191, - 1192, 1195, 1196, 1197, 1198, 1201, 1201, 1223, 1223, 1279, - 1280, 1281, 1282, 1285, 1286, 1289, 1292, 1293, 1294, 1295, - 1296, 1297, 1300, 1301, 1302, 1303, 1304, 1305, 1308, 1309, - 1310, 1311, 1312, 1313, 1314, 1317, 1318, 1319, 1320, 1323, - 1324, 1327, 1328, 1331, 1331, 1331, 1335, 1335, 1335, 1339, - 1339, 1339, 1343, 1343, 1343, 1347, 1347, 1347, 1352, 1352, - 1356, 1358, 1356, 1366, 1368, 1366, 1377, 1380, 1385, 1389, - 1393, 1396, 1402, 1407, 1414, 1414, 1417, 1418, 1426, 1427, - 1426, 1438, 1439, 1438, 1451, 1451, 1451, 1453, 1453, 1458, - 1463, 1457, 1477, 1480, 1481, 1485, 1496, 1501, 1484, 1567, - 1568, 1571, 1572, 1575, 1578, 1581, 1584, 1589, 1590, 1593, - 1594, 1597, 1598, 1602, 1608, 1617, 1601, 1637, 1638, 1642, - 1641, 1654, 1661, 1669, 1668, 1678, 1679, 1687, 1687, 1690, - 1690, 1693, 1695, 1698, 1698, 1698, 1703, 1710, 1718, 1702, - 1739, 1740, 1741, 1744, 1755, 1773, 1774, 1775, 1778, 1780, - 1782, 1787, 1794, 1795, 1796, 1797, 1798, 1801, 1802, 1803, - 1804, 1805, 1806, 1807, 1808, 1809, 1813, 1812, 1825, 1828, - 1829 + 0, 264, 264, 264, 265, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 282, 284, 289, + 289, 290, 290, 291, 291, 292, 292, 295, 296, 297, + 298, 301, 302, 303, 304, 307, 308, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 333, 334, 342, 342, 343, + 344, 345, 346, 347, 348, 354, 360, 361, 362, 363, + 364, 365, 366, 367, 369, 369, 373, 373, 374, 374, + 375, 389, 389, 409, 411, 409, 415, 417, 415, 421, + 422, 423, 424, 425, 425, 439, 442, 450, 463, 463, + 466, 467, 468, 469, 470, 471, 484, 485, 486, 487, + 490, 491, 492, 493, 496, 497, 500, 501, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 525, 526, 529, 537, 538, + 543, 546, 551, 557, 562, 567, 568, 571, 576, 579, + 584, 584, 587, 592, 595, 600, 603, 608, 609, 612, + 617, 620, 627, 628, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 648, 649, 650, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 669, 670, 671, 680, + 681, 682, 683, 684, 685, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 709, 712, 712, 715, 716, 716, 717, 717, + 721, 724, 727, 728, 731, 732, 735, 736, 737, 738, + 739, 742, 743, 748, 749, 750, 753, 754, 760, 765, + 765, 768, 777, 778, 779, 780, 781, 782, 783, 784, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 793, 794, 795, 796, 796, 797, 798, 798, 799, 800, + 801, 802, 803, 804, 805, 806, 809, 810, 811, 812, + 812, 813, 813, 814, 817, 818, 821, 822, 825, 826, + 827, 828, 829, 830, 831, 838, 839, 840, 841, 842, + 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 863, 864, 867, 870, 871, + 874, 875, 876, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 897, 898, 901, 904, 907, 910, 913, 916, 919, + 922, 923, 924, 925, 926, 927, 930, 931, 932, 933, + 934, 935, 938, 939, 942, 943, 944, 945, 946, 947, + 948, 949, 950, 953, 959, 960, 961, 964, 965, 968, + 968, 974, 975, 980, 981, 982, 983, 986, 987, 997, + 1000, 1003, 1006, 1009, 1010, 1011, 1012, 1015, 1024, 1027, + 1030, 1033, 1034, 1037, 1039, 1041, 1043, 1047, 1050, 1050, + 1052, 1052, 1054, 1054, 1061, 1062, 1065, 1066, 1074, 1075, + 1077, 1081, 1088, 1097, 1097, 1111, 1114, 1111, 1139, 1140, + 1146, 1149, 1150, 1151, 1155, 1155, 1158, 1159, 1160, 1163, + 1163, 1166, 1167, 1170, 1170, 1193, 1193, 1194, 1195, 1196, + 1196, 1199, 1200, 1203, 1204, 1205, 1206, 1209, 1209, 1231, + 1231, 1287, 1288, 1289, 1290, 1293, 1294, 1297, 1300, 1301, + 1302, 1303, 1304, 1305, 1308, 1309, 1310, 1311, 1312, 1313, + 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1325, 1326, 1327, + 1328, 1331, 1332, 1335, 1336, 1340, 1342, 1339, 1347, 1348, + 1349, 1350, 1351, 1354, 1354, 1358, 1360, 1358, 1368, 1370, + 1368, 1379, 1382, 1387, 1391, 1395, 1398, 1404, 1409, 1416, + 1416, 1419, 1420, 1428, 1429, 1428, 1440, 1441, 1440, 1453, + 1453, 1453, 1455, 1455, 1460, 1465, 1459, 1479, 1482, 1483, + 1487, 1498, 1503, 1486, 1569, 1570, 1573, 1574, 1577, 1580, + 1583, 1586, 1591, 1592, 1595, 1596, 1599, 1600, 1604, 1610, + 1619, 1603, 1639, 1640, 1644, 1643, 1656, 1663, 1671, 1670, + 1680, 1681, 1689, 1689, 1692, 1692, 1695, 1697, 1700, 1700, + 1700, 1705, 1712, 1720, 1704, 1741, 1742, 1743, 1746, 1757, + 1775, 1776, 1780, 1779, 1787, 1786, 1797, 1798, 1801, 1802, + 1803, 1804, 1805, 1808, 1809, 1810, 1811, 1812, 1816, 1815, + 1828, 1831, 1832 }; #endif @@ -1106,35 +1102,35 @@ static const char *const yytname[] = "VarAlias", "MacroVar", "MacroVarAlias", "MacroExpr", "MacroExprAlias", "FieldAlias", "FieldVarAlias", "AliasId", "AliasVar", "AliasExpr", "VariableAt", "VariableAtAlias", "FunIdentCall", "@18", "FunCall", "@19", - "@20", "FunRef", "FunCallAlias", "ArgList", "Argument", "ExtArgument", - "SendId", "ObjectData", "ObjectDataAlias", "ObjectMethod", "@21", - "ObjectMethodAlias", "SimpleExpression", "@22", "@23", "@24", "@25", - "Expression", "@26", "@27", "ExtExpression", "EmptyExpression", "LValue", - "LeftExpression", "PostOp", "ExprPostOp", "ExprPreOp", "ExprUnary", - "ExprAssign", "ExprEqual", "ExprPlusEq", "ExprMinusEq", "ExprMultEq", - "ExprDivEq", "ExprModEq", "ExprExpEq", "ExprOperEq", "ExprMath", - "ExprBool", "ExprRelation", "ArrayIndex", "IndexList", "ElemList", - "CodeBlock", "@28", "BlockExpList", "BlockVars", "BlockVarList", - "PareExpList1", "PareExpList2", "PareExpList3", "PareExpListN", - "PareExpList", "PareExpListAlias", "ExpList1", "ExpList2", "ExpList3", - "ExpList", "IfInline", "@29", "IfInlineAlias", "VarDefs", "@30", "@31", - "@32", "VarList", "ExtVarList", "ExtVarDef", "VarDef", "@33", "@34", - "@35", "DimList", "DimIndex", "FieldsDef", "@36", "FieldList", - "MemvarDef", "@37", "MemvarList", "Declaration", "@38", "@39", "@40", - "DecDataList", "ClassInfo", "DecMethod", "@41", "DecData", "@42", - "DecList", "DummyArgList", "DummyArgument", "FormalList", "OptList", - "ExecFlow", "IfEndif", "EmptyStatements", "EmptyStats", "IfBegin", "@43", - "@44", "@45", "@46", "@47", "@48", "@49", "@50", "@51", "@52", "IfElse", - "@53", "IfElseIf", "@54", "@55", "@56", "@57", "EndIf", "DoCase", - "EndCase", "DoCaseStart", "@58", "DoCaseBegin", "Cases", "@59", "@60", - "@61", "@62", "Otherwise", "@63", "@64", "@65", "DoWhile", "@66", "@67", - "WhileBegin", "EndWhile", "ForNext", "@68", "@69", "@70", "ForAssign", - "StepExpr", "ForStatements", "ForVar", "ForList", "ForExpr", "ForEach", - "@71", "@72", "@73", "Descend", "DoSwitch", "@74", "EndSwitch", - "SwitchStart", "@75", "SwitchBegin", "SwitchCases", "@76", "@77", - "SwitchDefault", "@78", "@79", "BeginSeq", "@80", "@81", "@82", - "RecoverSeq", "RecoverEmpty", "RecoverUsing", "DoName", "DoProc", - "DoArgList", "DoArgument", "WithObject", "@83", "Crlf", 0 + "@20", "FunRef", "FunCallAlias", "ArgList", "Argument", "RefArgument", + "ExtArgument", "SendId", "ObjectData", "ObjectDataAlias", "ObjectMethod", + "@21", "ObjectMethodAlias", "SimpleExpression", "@22", "@23", "@24", + "@25", "Expression", "@26", "@27", "ExtExpression", "EmptyExpression", + "LValue", "LeftExpression", "PostOp", "ExprPostOp", "ExprPreOp", + "ExprUnary", "ExprAssign", "ExprEqual", "ExprPlusEq", "ExprMinusEq", + "ExprMultEq", "ExprDivEq", "ExprModEq", "ExprExpEq", "ExprOperEq", + "ExprMath", "ExprBool", "ExprRelation", "ArrayIndex", "IndexList", + "ElemList", "CodeBlock", "@28", "BlockExpList", "BlockVars", + "BlockVarList", "PareExpList1", "PareExpList2", "PareExpList3", + "PareExpListN", "PareExpList", "PareExpListAlias", "ExpList1", + "ExpList2", "ExpList3", "ExpList", "IfInline", "IfInlineAlias", + "VarDefs", "@29", "@30", "@31", "VarList", "ExtVarList", "ExtVarDef", + "VarDef", "@32", "@33", "@34", "DimList", "DimIndex", "FieldsDef", "@35", + "FieldList", "MemvarDef", "@36", "MemvarList", "Declaration", "@37", + "@38", "@39", "DecDataList", "ClassInfo", "DecMethod", "@40", "DecData", + "@41", "DecList", "DummyArgList", "DummyArgument", "FormalList", + "OptList", "ExecFlow", "IfEndif", "EmptyStatements", "EmptyStats", + "IfBegin", "@42", "@43", "IfExpression", "IfElse", "@44", "IfElseIf", + "@45", "@46", "@47", "@48", "EndIf", "DoCase", "EndCase", "DoCaseStart", + "@49", "DoCaseBegin", "Cases", "@50", "@51", "@52", "@53", "Otherwise", + "@54", "@55", "@56", "DoWhile", "@57", "@58", "WhileBegin", "EndWhile", + "ForNext", "@59", "@60", "@61", "ForAssign", "StepExpr", "ForStatements", + "ForVar", "ForList", "ForExpr", "ForEach", "@62", "@63", "@64", + "Descend", "DoSwitch", "@65", "EndSwitch", "SwitchStart", "@66", + "SwitchBegin", "SwitchCases", "@67", "@68", "SwitchDefault", "@69", + "@70", "BeginSeq", "@71", "@72", "@73", "RecoverSeq", "RecoverEmpty", + "RecoverUsing", "DoName", "DoProc", "@74", "@75", "DoArgs", "DoArgList", + "DoArgument", "WithObject", "@76", "Crlf", 0 }; #endif @@ -1185,47 +1181,46 @@ static const yytype_uint16 yyr1[] = 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 191, 193, 192, 194, 195, 194, 196, 194, - 197, 198, 199, 199, 200, 200, 200, 200, 200, 200, - 201, 201, 202, 202, 202, 203, 203, 204, 206, 205, - 207, 208, 208, 208, 208, 208, 208, 208, 209, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 210, 208, - 208, 208, 211, 208, 208, 212, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 213, 213, 213, 214, 213, - 215, 213, 213, 216, 216, 217, 217, 218, 218, 218, - 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 220, 220, 221, 222, 222, 223, - 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, - 233, 234, 234, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 236, 237, 237, 237, 238, 238, 240, 239, - 241, 241, 242, 242, 242, 242, 243, 243, 244, 245, - 246, 247, 248, 248, 248, 248, 249, 250, 251, 252, - 253, 253, 254, 255, 254, 256, 258, 257, 259, 257, - 260, 257, 261, 261, 262, 262, 263, 263, 263, 263, - 263, 265, 264, 266, 267, 264, 264, 264, 268, 269, - 269, 269, 271, 270, 272, 272, 272, 274, 273, 275, - 275, 277, 276, 278, 276, 276, 276, 279, 276, 280, - 280, 281, 281, 281, 281, 283, 282, 285, 284, 286, - 286, 286, 286, 287, 287, 288, 289, 289, 289, 289, - 289, 289, 290, 290, 290, 290, 290, 290, 291, 291, - 291, 291, 291, 291, 291, 292, 292, 292, 292, 293, - 293, 294, 294, 296, 297, 295, 298, 299, 295, 300, - 301, 295, 302, 303, 295, 304, 305, 295, 307, 306, - 309, 310, 308, 311, 312, 308, 313, 313, 314, 314, - 314, 314, 315, 315, 317, 316, 318, 318, 320, 321, - 319, 322, 323, 319, 325, 326, 324, 327, 324, 329, - 330, 328, 331, 332, 332, 334, 335, 336, 333, 337, - 337, 338, 338, 339, 339, 339, 339, 340, 340, 341, - 341, 342, 342, 344, 345, 346, 343, 347, 347, 349, - 348, 348, 350, 352, 351, 353, 353, 355, 354, 356, - 354, 354, 354, 358, 359, 357, 361, 362, 363, 360, - 364, 364, 364, 365, 366, 367, 367, 367, 368, 368, - 368, 368, 369, 369, 369, 369, 369, 370, 370, 370, - 370, 370, 370, 370, 370, 370, 372, 371, 371, 373, - 373 + 197, 198, 199, 199, 200, 200, 201, 201, 201, 201, + 201, 202, 202, 203, 203, 203, 204, 204, 205, 207, + 206, 208, 209, 209, 209, 209, 209, 209, 209, 210, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 211, + 209, 209, 209, 212, 209, 209, 213, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 214, 214, 214, 215, + 214, 216, 214, 214, 217, 217, 218, 218, 219, 219, + 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 221, 221, 222, 223, 223, + 224, 224, 224, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, + 234, 234, 235, 235, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 237, 238, 238, 238, 239, 239, 241, + 240, 242, 242, 243, 243, 243, 243, 244, 244, 245, + 246, 247, 248, 249, 249, 249, 249, 250, 251, 252, + 253, 254, 254, 255, 255, 255, 255, 256, 258, 257, + 259, 257, 260, 257, 261, 261, 262, 262, 263, 263, + 263, 263, 263, 265, 264, 266, 267, 264, 264, 264, + 268, 269, 269, 269, 271, 270, 272, 272, 272, 274, + 273, 275, 275, 277, 276, 278, 276, 276, 276, 279, + 276, 280, 280, 281, 281, 281, 281, 283, 282, 285, + 284, 286, 286, 286, 286, 287, 287, 288, 289, 289, + 289, 289, 289, 289, 290, 290, 290, 290, 290, 290, + 291, 291, 291, 291, 291, 291, 291, 292, 292, 292, + 292, 293, 293, 294, 294, 296, 297, 295, 298, 298, + 298, 298, 298, 300, 299, 302, 303, 301, 304, 305, + 301, 306, 306, 307, 307, 307, 307, 308, 308, 310, + 309, 311, 311, 313, 314, 312, 315, 316, 312, 318, + 319, 317, 320, 317, 322, 323, 321, 324, 325, 325, + 327, 328, 329, 326, 330, 330, 331, 331, 332, 332, + 332, 332, 333, 333, 334, 334, 335, 335, 337, 338, + 339, 336, 340, 340, 342, 341, 341, 343, 345, 344, + 346, 346, 348, 347, 349, 347, 347, 347, 351, 352, + 350, 354, 355, 356, 353, 357, 357, 357, 358, 359, + 360, 360, 362, 361, 363, 361, 364, 364, 365, 365, + 365, 365, 365, 366, 366, 366, 366, 366, 368, 367, + 367, 369, 369 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1254,47 +1249,46 @@ static const yytype_uint8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 5, 1, 0, 5, 0, 5, - 2, 2, 1, 3, 1, 2, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 3, 2, 2, 0, 5, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, - 1, 1, 0, 3, 1, 0, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, - 0, 3, 1, 1, 1, 0, 1, 1, 1, 1, + 2, 2, 1, 3, 1, 1, 2, 2, 2, 2, + 2, 1, 1, 1, 1, 1, 3, 2, 2, 0, + 5, 2, 1, 1, 1, 1, 1, 1, 1, 0, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 3, 1, 1, 0, 3, 1, 0, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 3, 0, 3, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 3, 4, 1, 3, 0, 6, - 1, 3, 0, 1, 1, 3, 2, 4, 2, 2, - 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, - 3, 3, 2, 0, 8, 2, 0, 4, 0, 4, - 0, 4, 1, 3, 1, 3, 1, 2, 4, 2, - 3, 0, 3, 0, 0, 6, 2, 3, 2, 2, - 3, 4, 0, 4, 2, 4, 3, 0, 4, 2, - 4, 0, 8, 0, 5, 3, 3, 0, 7, 1, - 3, 1, 2, 1, 2, 0, 6, 0, 3, 0, - 1, 1, 3, 1, 3, 1, 2, 3, 5, 4, - 5, 7, 3, 4, 6, 5, 6, 8, 1, 1, - 1, 1, 1, 1, 1, 2, 3, 3, 4, 1, - 2, 0, 1, 0, 0, 6, 0, 0, 6, 0, - 0, 6, 0, 0, 6, 0, 0, 6, 0, 4, - 0, 0, 6, 0, 0, 7, 1, 1, 3, 3, - 2, 4, 1, 1, 0, 3, 1, 2, 0, 0, - 6, 0, 0, 7, 0, 0, 5, 0, 5, 0, - 0, 7, 1, 1, 1, 0, 0, 0, 12, 1, - 1, 0, 2, 2, 3, 2, 3, 1, 1, 1, - 3, 1, 3, 0, 0, 0, 10, 0, 1, 0, - 4, 2, 1, 0, 4, 1, 2, 0, 5, 0, - 6, 1, 2, 0, 0, 5, 0, 0, 0, 8, - 0, 3, 3, 1, 2, 1, 1, 1, 2, 4, - 1, 3, 1, 2, 1, 2, 3, 1, 2, 2, - 2, 2, 2, 1, 1, 1, 0, 6, 4, 1, - 1 + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 3, 4, 1, 3, 0, + 6, 1, 3, 0, 1, 1, 3, 2, 4, 2, + 2, 2, 2, 1, 1, 1, 1, 2, 2, 3, + 3, 3, 3, 8, 7, 7, 6, 2, 0, 4, + 0, 4, 0, 4, 1, 3, 1, 3, 1, 2, + 4, 2, 3, 0, 3, 0, 0, 6, 2, 3, + 2, 2, 3, 4, 0, 4, 2, 4, 3, 0, + 4, 2, 4, 0, 8, 0, 5, 3, 3, 0, + 7, 1, 3, 1, 2, 1, 2, 0, 6, 0, + 3, 0, 1, 1, 3, 1, 3, 1, 2, 3, + 5, 4, 5, 7, 3, 4, 6, 5, 6, 8, + 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, + 4, 1, 2, 0, 1, 0, 0, 6, 1, 1, + 1, 1, 1, 0, 4, 0, 0, 6, 0, 0, + 7, 1, 1, 3, 3, 2, 4, 1, 1, 0, + 3, 1, 2, 0, 0, 6, 0, 0, 7, 0, + 0, 5, 0, 5, 0, 0, 7, 1, 1, 1, + 0, 0, 0, 12, 1, 1, 0, 2, 2, 3, + 2, 3, 1, 1, 1, 3, 1, 3, 0, 0, + 0, 10, 0, 1, 0, 4, 2, 1, 0, 4, + 1, 2, 0, 5, 0, 6, 1, 2, 0, 0, + 5, 0, 0, 0, 8, 0, 3, 3, 1, 2, + 1, 1, 0, 4, 0, 3, 0, 2, 1, 2, + 1, 2, 3, 1, 1, 1, 1, 1, 0, 6, + 4, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1303,1889 +1297,1727 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 2, 0, 0, 1, 0, 118, 81, 140, 135, 136, - 416, 418, 0, 0, 142, 145, 146, 126, 125, 29, - 122, 83, 0, 0, 534, 447, 552, 121, 0, 120, - 119, 442, 123, 420, 86, 596, 74, 0, 148, 0, - 157, 158, 0, 124, 0, 0, 133, 388, 610, 0, - 134, 583, 0, 137, 0, 629, 630, 295, 150, 0, - 0, 9, 7, 0, 8, 155, 304, 306, 0, 305, - 0, 307, 0, 0, 309, 0, 310, 0, 311, 0, - 312, 0, 317, 0, 315, 0, 316, 0, 0, 0, - 313, 314, 318, 0, 225, 320, 0, 322, 0, 323, - 0, 0, 98, 98, 98, 98, 359, 360, 361, 362, - 363, 364, 98, 308, 402, 403, 404, 405, 319, 0, - 0, 0, 0, 0, 321, 0, 89, 90, 91, 6, - 57, 488, 0, 489, 0, 0, 490, 0, 491, 493, - 494, 0, 579, 492, 98, 98, 5, 10, 0, 80, - 0, 139, 138, 0, 0, 412, 0, 0, 0, 127, - 129, 0, 126, 125, 122, 0, 131, 128, 121, 0, - 132, 130, 133, 0, 0, 0, 251, 253, 252, 254, - 256, 257, 260, 261, 286, 264, 265, 262, 263, 266, - 267, 292, 271, 274, 285, 0, 0, 279, 280, 281, - 277, 278, 282, 283, 284, 255, 402, 403, 405, 287, - 0, 270, 93, 0, 116, 98, 0, 286, 285, 327, - 328, 0, 0, 98, 155, 304, 306, 305, 307, 309, - 310, 311, 312, 317, 299, 300, 298, 314, 302, 320, - 301, 323, 0, 0, 308, 303, 321, 162, 0, 0, - 0, 0, 0, 73, 605, 606, 607, 608, 0, 453, - 0, 35, 0, 0, 96, 0, 392, 0, 155, 315, - 316, 568, 318, 322, 319, 569, 0, 0, 0, 160, - 0, 407, 296, 234, 295, 242, 243, 244, 246, 0, - 15, 13, 14, 12, 11, 0, 0, 156, 223, 0, - 0, 205, 0, 0, 207, 177, 178, 179, 180, 199, - 0, 141, 206, 184, 0, 143, 208, 185, 187, 0, - 147, 210, 186, 0, 149, 211, 188, 0, 152, 153, - 189, 0, 154, 190, 0, 212, 196, 200, 0, 159, - 226, 64, 215, 181, 201, 0, 161, 228, 65, 216, - 182, 202, 0, 0, 177, 165, 0, 169, 0, 170, - 172, 0, 171, 0, 173, 0, 174, 0, 175, 164, - 178, 167, 179, 168, 197, 0, 204, 166, 0, 176, - 198, 0, 213, 0, 62, 214, 0, 222, 191, 0, - 231, 61, 219, 193, 0, 247, 248, 217, 194, 0, - 250, 63, 218, 195, 324, 325, 0, 0, 0, 0, - 0, 0, 0, 0, 326, 68, 67, 71, 70, 69, - 0, 144, 209, 0, 406, 66, 221, 183, 203, 295, - 398, 295, 399, 295, 400, 295, 401, 0, 415, 60, - 220, 192, 98, 0, 520, 527, 526, 0, 0, 495, - 105, 418, 112, 122, 103, 101, 114, 104, 0, 0, - 102, 100, 533, 538, 544, 532, 530, 0, 0, 0, - 0, 582, 0, 581, 72, 59, 0, 99, 35, 0, - 422, 0, 0, 329, 331, 330, 0, 230, 0, 0, + 418, 420, 0, 0, 142, 145, 146, 126, 125, 29, + 122, 83, 0, 0, 529, 449, 547, 121, 0, 120, + 119, 444, 123, 422, 86, 591, 74, 0, 148, 0, + 157, 158, 0, 124, 0, 0, 133, 389, 604, 0, + 134, 578, 0, 137, 0, 621, 622, 0, 150, 0, + 0, 9, 7, 0, 8, 155, 305, 307, 0, 306, + 0, 308, 0, 0, 310, 0, 311, 0, 312, 0, + 313, 0, 318, 0, 316, 0, 317, 0, 0, 0, + 314, 315, 319, 0, 225, 321, 0, 323, 0, 324, + 0, 0, 98, 98, 98, 98, 360, 361, 362, 363, + 364, 365, 98, 309, 403, 404, 405, 406, 320, 0, + 0, 0, 0, 0, 322, 0, 89, 90, 91, 6, + 57, 490, 0, 491, 0, 0, 492, 0, 493, 495, + 496, 0, 574, 494, 98, 98, 5, 10, 0, 80, + 0, 139, 138, 0, 0, 0, 127, 129, 0, 126, + 125, 122, 0, 131, 128, 121, 0, 132, 130, 133, + 0, 0, 0, 252, 254, 253, 255, 257, 258, 261, + 262, 287, 265, 266, 263, 264, 267, 268, 293, 272, + 275, 286, 0, 0, 280, 281, 282, 278, 279, 283, + 284, 285, 256, 403, 404, 406, 288, 0, 271, 505, + 93, 0, 116, 98, 0, 287, 286, 328, 329, 0, + 0, 98, 155, 305, 307, 306, 308, 310, 311, 312, + 313, 318, 300, 301, 299, 315, 303, 321, 302, 324, + 0, 0, 309, 304, 322, 162, 0, 0, 0, 0, + 0, 73, 600, 601, 602, 0, 455, 0, 35, 0, + 0, 96, 0, 393, 606, 155, 316, 317, 563, 319, + 323, 320, 564, 0, 0, 0, 160, 408, 296, 243, + 244, 245, 247, 0, 15, 13, 14, 12, 11, 0, + 0, 156, 223, 0, 0, 205, 0, 0, 207, 177, + 178, 179, 180, 199, 0, 141, 206, 184, 0, 143, + 208, 185, 187, 0, 147, 210, 186, 0, 149, 211, + 188, 0, 152, 153, 189, 0, 154, 190, 0, 212, + 196, 200, 0, 159, 226, 64, 215, 181, 201, 0, + 161, 228, 65, 216, 182, 202, 0, 0, 177, 165, + 0, 169, 0, 170, 172, 0, 171, 0, 173, 0, + 174, 0, 175, 164, 178, 167, 179, 168, 197, 0, + 204, 166, 0, 176, 198, 0, 213, 0, 62, 214, + 0, 222, 191, 0, 231, 61, 219, 193, 0, 248, + 249, 217, 194, 0, 251, 63, 218, 195, 325, 326, + 0, 0, 0, 0, 0, 0, 0, 0, 327, 68, + 67, 71, 70, 69, 0, 144, 209, 0, 407, 66, + 221, 183, 203, 0, 399, 0, 400, 0, 401, 0, + 402, 0, 417, 60, 220, 192, 98, 0, 515, 522, + 521, 0, 0, 497, 105, 420, 112, 122, 103, 101, + 114, 104, 0, 0, 102, 100, 528, 533, 539, 527, + 525, 0, 0, 0, 0, 577, 0, 576, 72, 59, + 0, 99, 35, 0, 424, 0, 0, 0, 330, 332, + 331, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 295, 0, 0, 92, - 77, 35, 84, 424, 426, 535, 35, 0, 79, 560, - 559, 0, 163, 35, 0, 0, 87, 0, 0, 0, - 0, 451, 0, 455, 46, 41, 38, 0, 39, 40, - 37, 42, 44, 51, 52, 48, 0, 49, 50, 47, - 53, 457, 36, 45, 465, 456, 0, 0, 393, 35, - 0, 394, 0, 612, 155, 292, 285, 287, 611, 614, - 0, 0, 0, 626, 235, 236, 237, 239, 230, 238, - 240, 241, 386, 0, 16, 19, 21, 295, 332, 293, - 294, 383, 0, 382, 334, 333, 335, 337, 338, 339, - 340, 345, 343, 295, 344, 295, 341, 342, 346, 349, - 350, 295, 351, 353, 354, 355, 356, 358, 357, 352, - 245, 336, 347, 408, 409, 410, 411, 348, 58, 518, - 0, 496, 523, 0, 497, 0, 0, 115, 0, 0, - 541, 528, 0, 547, 529, 549, 0, 593, 0, 591, - 82, 0, 431, 436, 0, 0, 417, 419, 295, 259, - 289, 507, 269, 273, 276, 504, 371, 372, 373, 378, - 379, 376, 377, 370, 381, 374, 375, 380, 365, 366, - 367, 368, 369, 510, 513, 516, 291, 408, 94, 117, - 427, 429, 0, 0, 449, 0, 448, 555, 444, 0, - 0, 443, 421, 0, 499, 0, 597, 75, 609, 0, - 17, 469, 467, 0, 461, 463, 43, 54, 0, 469, - 97, 95, 396, 0, 0, 618, 619, 620, 622, 621, - 613, 615, 571, 573, 570, 584, 628, 0, 295, 151, - 0, 0, 0, 0, 0, 232, 384, 0, 0, 0, - 0, 0, 0, 0, 498, 0, 0, 0, 545, 0, - 531, 0, 0, 587, 0, 0, 580, 592, 439, 432, - 0, 437, 0, 438, 423, 0, 0, 0, 0, 0, - 0, 413, 0, 430, 425, 85, 35, 0, 446, 35, - 88, 500, 600, 0, 124, 0, 35, 0, 470, 471, - 35, 462, 464, 454, 467, 0, 459, 0, 390, 0, - 395, 35, 616, 0, 577, 0, 387, 20, 31, 22, - 31, 295, 224, 385, 227, 229, 249, 519, 521, 0, - 31, 106, 31, 108, 539, 0, 0, 0, 550, 0, - 594, 589, 434, 440, 0, 508, 505, 511, 514, 517, - 295, 428, 450, 0, 445, 603, 0, 598, 0, 0, - 18, 0, 35, 35, 476, 35, 0, 0, 468, 0, - 0, 35, 0, 389, 397, 572, 578, 574, 627, 32, - 0, 33, 35, 0, 233, 0, 524, 0, 0, 0, - 546, 542, 548, 0, 0, 0, 0, 0, 441, 0, - 561, 604, 0, 0, 0, 35, 482, 295, 477, 0, - 0, 35, 472, 0, 460, 458, 466, 391, 0, 0, - 0, 55, 0, 522, 0, 0, 0, 540, 0, 553, - 554, 551, 588, 595, 0, 435, 414, 0, 556, 599, - 601, 602, 295, 483, 475, 0, 473, 452, 35, 479, - 0, 35, 575, 24, 34, 35, 26, 525, 107, 109, - 543, 590, 562, 0, 0, 295, 478, 295, 480, 35, - 485, 0, 56, 557, 484, 474, 0, 295, 486, 0, - 576, 0, 481, 0, 565, 563, 558, 487, 566, 564 + 92, 77, 35, 84, 426, 428, 530, 35, 0, 79, + 555, 554, 0, 163, 35, 0, 0, 87, 0, 0, + 606, 0, 453, 0, 457, 46, 41, 38, 0, 39, + 40, 37, 42, 44, 51, 52, 48, 0, 49, 50, + 47, 53, 459, 36, 45, 467, 458, 0, 0, 394, + 35, 0, 395, 0, 605, 0, 0, 0, 618, 241, + 0, 242, 235, 387, 297, 234, 0, 16, 19, 21, + 296, 333, 294, 295, 384, 0, 383, 335, 334, 336, + 338, 339, 340, 341, 346, 344, 296, 345, 296, 342, + 343, 347, 350, 351, 296, 352, 354, 355, 356, 357, + 359, 358, 353, 246, 337, 348, 409, 410, 411, 412, + 349, 58, 513, 0, 498, 518, 0, 499, 0, 0, + 115, 0, 0, 536, 523, 0, 542, 524, 544, 0, + 588, 0, 586, 82, 0, 433, 438, 0, 0, 419, + 421, 296, 0, 260, 290, 270, 274, 277, 372, 373, + 374, 379, 380, 377, 378, 371, 382, 375, 376, 381, + 366, 367, 368, 369, 370, 292, 296, 0, 409, 506, + 94, 117, 429, 431, 0, 0, 451, 0, 450, 550, + 446, 0, 0, 445, 423, 0, 501, 0, 592, 75, + 603, 0, 17, 471, 469, 0, 463, 465, 43, 54, + 0, 471, 97, 95, 397, 0, 0, 608, 155, 293, + 614, 286, 288, 607, 610, 566, 568, 565, 579, 620, + 0, 236, 237, 238, 240, 230, 239, 296, 151, 0, + 0, 0, 0, 0, 232, 385, 0, 0, 0, 0, + 0, 0, 0, 500, 0, 0, 0, 540, 0, 526, + 0, 0, 582, 0, 0, 575, 587, 441, 434, 0, + 439, 0, 440, 425, 0, 0, 0, 296, 296, 0, + 0, 432, 427, 85, 35, 0, 448, 35, 88, 502, + 595, 0, 124, 0, 35, 0, 472, 473, 35, 464, + 466, 456, 469, 0, 461, 0, 391, 0, 396, 35, + 609, 611, 0, 572, 0, 388, 20, 31, 22, 31, + 296, 224, 386, 227, 229, 250, 514, 516, 0, 31, + 106, 31, 108, 534, 0, 0, 0, 545, 0, 589, + 584, 436, 442, 0, 296, 416, 0, 0, 507, 430, + 452, 0, 447, 598, 0, 593, 0, 0, 18, 0, + 35, 35, 478, 35, 0, 0, 470, 0, 0, 35, + 0, 390, 398, 612, 567, 573, 569, 619, 32, 0, + 33, 35, 0, 233, 0, 519, 0, 0, 0, 541, + 537, 543, 0, 0, 0, 0, 0, 443, 0, 415, + 414, 556, 599, 0, 0, 0, 35, 484, 296, 479, + 0, 0, 35, 474, 0, 462, 460, 468, 392, 0, + 0, 0, 55, 0, 517, 0, 0, 0, 535, 0, + 548, 549, 546, 583, 590, 0, 437, 413, 0, 551, + 594, 596, 597, 296, 485, 477, 0, 475, 454, 35, + 481, 0, 35, 570, 24, 34, 35, 26, 520, 107, + 109, 538, 585, 557, 0, 0, 296, 480, 296, 482, + 35, 487, 0, 56, 552, 486, 476, 0, 296, 488, + 0, 571, 0, 483, 0, 560, 558, 553, 489, 561, + 559 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 60, 454, 62, 750, 752, 751, 753, - 63, 890, 561, 562, 563, 891, 455, 442, 252, 215, - 223, 148, 216, 703, 250, 713, 517, 265, 149, 150, - 714, 457, 458, 459, 213, 65, 176, 177, 68, 178, - 70, 179, 72, 73, 180, 75, 181, 77, 182, 284, - 79, 183, 81, 217, 83, 185, 85, 186, 87, 88, - 89, 308, 187, 188, 189, 93, 94, 597, 190, 613, - 615, 191, 96, 754, 591, 755, 288, 192, 98, 193, - 621, 100, 218, 488, 491, 492, 493, 282, 489, 515, - 601, 283, 242, 196, 414, 197, 198, 199, 200, 105, - 106, 107, 108, 109, 110, 111, 201, 202, 203, 204, - 342, 302, 593, 205, 266, 819, 570, 571, 114, 115, - 116, 117, 209, 119, 120, 121, 122, 123, 211, 860, - 125, 126, 153, 154, 249, 479, 522, 523, 524, 779, - 780, 907, 663, 664, 127, 248, 534, 128, 222, 527, - 460, 721, 542, 728, 815, 723, 263, 729, 725, 810, - 807, 955, 956, 808, 809, 130, 131, 715, 989, 132, - 494, 787, 490, 786, 512, 788, 513, 789, 514, 790, - 447, 761, 448, 640, 895, 763, 934, 449, 133, 466, - 134, 221, 135, 467, 648, 899, 769, 938, 468, 649, - 845, 771, 136, 772, 903, 137, 941, 138, 797, 973, - 991, 531, 948, 990, 275, 276, 743, 139, 824, 928, - 981, 887, 140, 472, 473, 141, 277, 142, 658, 849, - 906, 659, 774, 905, 143, 251, 802, 912, 867, 868, - 869, 257, 144, 578, 579, 145, 747, 461 + -1, 1, 2, 60, 448, 62, 739, 741, 740, 742, + 63, 879, 552, 553, 554, 880, 449, 436, 250, 213, + 221, 148, 214, 685, 248, 695, 508, 262, 149, 150, + 696, 451, 452, 453, 211, 65, 173, 174, 68, 175, + 70, 176, 72, 73, 177, 75, 178, 77, 179, 278, + 79, 180, 81, 215, 83, 182, 85, 183, 87, 88, + 89, 302, 184, 185, 186, 93, 94, 580, 187, 596, + 598, 188, 96, 743, 571, 572, 744, 282, 189, 98, + 190, 604, 100, 216, 483, 485, 486, 487, 574, 484, + 505, 584, 575, 240, 193, 408, 194, 195, 196, 197, + 105, 106, 107, 108, 109, 110, 111, 198, 199, 200, + 201, 336, 296, 576, 202, 263, 807, 561, 562, 114, + 115, 116, 117, 206, 119, 120, 121, 122, 123, 208, + 125, 126, 153, 154, 247, 473, 513, 514, 515, 768, + 769, 896, 646, 647, 127, 246, 525, 128, 220, 518, + 454, 703, 533, 710, 803, 705, 260, 711, 707, 798, + 795, 946, 947, 796, 797, 130, 131, 697, 980, 132, + 507, 779, 209, 441, 750, 442, 623, 884, 752, 925, + 443, 133, 460, 134, 219, 135, 461, 631, 888, 758, + 929, 462, 632, 834, 760, 136, 761, 892, 137, 932, + 138, 785, 964, 982, 522, 939, 981, 272, 273, 726, + 139, 813, 919, 972, 876, 140, 466, 467, 141, 274, + 142, 641, 838, 895, 642, 763, 894, 143, 249, 790, + 903, 855, 856, 857, 254, 144, 530, 264, 564, 723, + 724, 145, 730, 455 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -791 +#define YYPACT_NINF -915 static const yytype_int16 yypact[] = { - 36, 48, 7089, -791, 90, -791, 146, -791, 21, 54, - 707, 565, -17, 7441, -791, -791, -791, 8324, 8324, -791, - 230, 905, 7441, 7441, -791, 1342, -791, 288, 7789, -791, - -791, 71, -791, 1575, 1680, -791, 146, 2806, -791, 215, - -791, -791, 8324, -791, 8324, 430, 209, -791, 170, 7789, - -791, -791, 7441, -791, -17, -791, -791, 7557, -791, 2806, - 5166, -791, -791, 377, -791, 6, 35, 46, 2643, 16, - 2806, 19, 2806, 2806, 93, 2806, 106, 2806, 129, 2806, - 28, 2806, 50, 2643, 79, 2643, 86, 2643, 7905, 2806, - 56, 100, 34, 2806, -791, 11, 2806, 69, 2806, 18, - 2806, 549, -791, -791, -791, -791, -791, -791, -791, -791, - -791, -791, -791, 148, -791, -791, -791, -791, 29, 2643, - 104, 158, 190, 293, 111, 2806, -791, -791, -791, -791, - -791, -791, 422, -791, 5409, 428, -791, 7441, -791, -791, - -791, 5889, 248, -791, -791, -791, -791, -791, 7441, -791, - 90, -791, -791, 8324, 8324, -791, 171, 180, 172, -791, - -791, -17, -791, -791, -791, 7441, -791, -791, -791, 71, - -791, -791, -791, 7441, 7441, 8324, 577, 724, 96, 260, - 1441, 4730, 1831, 1199, 1566, 1715, 1790, 892, 1380, 2297, - 8027, -791, 4033, 8086, 426, 2859, 1122, -791, -791, -791, - -791, -791, -791, -791, -791, 2065, 462, 513, 525, 8145, - 307, 2282, -791, 408, -791, -791, 8291, 8204, -791, -791, - -791, 90, 8324, -791, 203, 177, 177, -13, -5, 58, - 65, 68, 276, 177, 163, 174, 348, 177, -4, 72, - 205, 196, 20, 200, 217, 184, 229, 285, 8324, 8324, - 8291, 90, 7441, -791, -791, -791, -791, 277, 335, 240, - 90, 4848, 251, 90, 286, 296, 3832, 3958, 291, 165, - 207, 348, 372, 214, 239, -791, -18, 7441, 3574, -791, - 7789, -791, 2859, -791, 4223, -791, -791, -791, -791, 90, - -791, -791, -791, -791, -791, 8324, 8324, -791, -791, 7441, - 7325, -791, 45, 7441, -791, -791, -791, -791, -791, -791, - 7441, -791, -791, -791, 7441, -791, -791, -791, -791, 7441, - -791, -791, -791, 7441, -791, -791, -791, 7441, -791, -791, - -791, 7441, -791, -791, 7441, -791, -791, -791, 7441, -791, - -791, -791, -791, -791, -791, 7441, -791, -791, -791, -791, - -791, -791, 21, 54, 392, -791, 396, -791, 416, -791, - -791, 419, -791, 439, -791, 68, -791, 276, -791, -791, - 444, -791, 451, -791, -791, 465, 470, -791, 486, -791, - -791, 7441, -791, 7441, -791, -791, 7441, -791, -791, 7441, - -791, -791, -791, -791, 7441, -791, -791, -791, -791, 7441, - -791, -791, -791, -791, -791, -791, 7441, 7441, 7441, 7441, - 7441, 7441, 7441, 2806, -791, -791, -791, -791, -791, -791, - 7441, -791, -791, 7441, -791, -791, -791, -791, -791, 7557, - -791, 7557, -791, 7557, -791, 7557, -791, 7441, -791, -791, - -791, -791, -791, 90, -791, -791, -791, 626, 492, -791, - -791, 673, -791, 241, -791, -791, -791, -791, 642, 5529, - -791, -791, -791, -791, -791, -791, -791, 458, 265, 3574, - 6009, -791, 610, -791, -791, -791, 3574, -791, 4617, 415, - -791, 415, 326, 3284, -791, -791, 340, -791, 4848, 4848, - 90, 4848, 4848, 4848, 90, 7441, 7441, 7441, 7441, 7441, - 7441, 7441, 7441, 7441, 7441, 7441, 7441, 7441, 7441, 7441, - 7441, 7441, 90, 90, 90, 4848, 7557, 90, 8324, -791, - -791, 4617, 344, -791, -791, -791, 4848, 423, -791, -791, - -791, 7441, -791, 4848, 332, 423, 344, 6129, 3574, 3958, - 445, -791, 8324, -791, -791, -791, -791, 8324, -791, -791, - -791, -791, -791, -791, -791, -791, 8324, -791, -791, -791, - -791, -791, -791, -791, -791, -791, 508, 90, -791, 4848, - 339, 431, 7789, 7673, 249, 429, 450, 7955, 436, -791, - 7441, 7789, 3574, 540, 212, 163, 348, -4, 228, 205, - -791, -791, -791, -72, -791, 463, 467, 4223, 2859, -791, - 2859, -791, 7325, 448, 2859, 2859, 2859, 2859, 2859, 2859, - 2859, 2859, 2859, 4223, 2859, 4223, 2859, 2859, 2859, 2859, - 2859, 4223, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, - -791, 2859, 2859, -791, -791, -791, -791, 2859, -791, -791, - 7441, -791, -791, 626, -791, 8324, 8324, -791, 7441, 90, - -791, -791, 265, -791, -791, -791, 7441, -791, 359, -791, - -791, 7441, 554, 504, 238, 8324, -791, -791, 7557, -791, - -791, -791, -791, -791, -791, -791, 4110, 2859, 3284, 3284, - 3284, 3284, 3284, 539, 3284, 3284, 3284, 3284, 292, 292, - 375, 375, 375, -791, -791, -791, -791, 484, -791, -791, - 600, 504, 8291, 90, -791, 8324, -791, 2859, -791, 8324, - 8324, -791, -791, 90, -791, 5286, -791, -791, 436, 594, - -791, 3088, 251, 2504, -791, -791, -791, -791, 8324, 3088, - -791, -791, -791, 7441, 4351, 212, 163, 348, -4, 205, - -791, 7673, 2859, 500, -791, -791, -791, 7209, 4223, -791, - 90, 516, 90, 534, 397, -791, -791, 7325, 400, 417, - 432, 6489, 3574, 7441, -791, 275, 305, 3574, -791, 7441, - -791, 90, 6609, 2859, 90, 7441, -791, -791, 2859, -791, - 613, -791, 7441, 530, -791, 484, 5649, 5649, 5649, 5649, - 5649, -791, 7441, -791, -791, -791, 4848, 609, -791, 4848, - -791, -791, 586, 90, 3153, 8324, 4848, 537, 541, 542, - 4848, -791, -791, -791, -791, -45, -791, 538, 2859, -9, - -791, 4848, -791, 7441, 566, 6849, -791, -791, 4467, -791, - 4467, 4223, -791, -791, -791, -791, -791, -791, -791, 3574, - 4467, -791, 4467, -791, -791, 6249, 3574, 6249, -791, 90, - -791, 2859, -791, 2859, 7441, -791, -791, -791, -791, -791, - 7557, 2859, -791, 7441, -791, -791, 8324, -791, 90, 90, - -791, 8324, 4848, 3864, -791, 4848, 3354, 582, -791, 8324, - 90, 4848, 7441, -791, -791, 2859, -791, -791, -791, -791, - 545, 548, 4848, 551, -791, 5649, -791, 553, 555, 5769, - -791, -791, -791, 44, 6369, 6369, 90, 7441, 2859, 556, - 4841, -791, 656, 6969, 6969, 5066, -791, 7441, -791, 90, - 8324, 4848, 542, 3476, -791, -791, -791, 2859, 90, 90, - 5022, -791, 90, -791, 5649, 90, 90, -791, 5769, -791, - -791, -791, -791, -791, 6369, 2859, -791, 7441, -791, -791, - -791, -791, 7441, -791, -791, 437, -791, -791, 8322, -791, - 8324, 4848, -791, -791, -791, 4848, -791, -791, -791, -791, - -791, -791, 2859, 90, 454, 7441, -791, 7441, -791, 8357, - -791, 6729, -791, -791, -791, -791, 497, 7441, -791, 15, - -791, 6729, -791, 520, 8324, 8324, -791, -791, -791, -791 + 33, 45, 6351, -915, -13, -915, 369, -915, 13, 20, + 590, 454, -56, 6703, -915, -915, -915, 7593, 7593, -915, + 104, 720, 6703, 6703, -915, 748, -915, 388, 6935, -915, + -915, 58, -915, 996, 1243, -915, 369, 203, -915, 131, + -915, -915, 7593, -915, 7593, 536, 235, -915, -915, 6935, + -915, -915, 6703, -915, 164, -915, -915, 6703, -915, 7464, + 3320, -915, -915, 577, -915, -7, 40, 52, 2621, 21, + 7464, 25, 7464, 7464, 30, 7464, 41, 7464, 60, 7464, + 153, 7464, 65, 2621, 28, 2621, 113, 2621, 7051, 7464, + 90, 35, 283, 7464, -915, 118, 7464, 7, 7464, 120, + 7464, 288, -915, -915, -915, -915, -915, -915, -915, -915, + -915, -915, -915, 79, -915, -915, -915, -915, 125, 2621, + -79, 140, 221, 374, 160, 7464, -915, -915, -915, -915, + -915, -915, 507, -915, 4671, 439, -915, 6703, -915, -915, + -915, 5151, 289, -915, -915, -915, -915, -915, 6703, -915, + -13, -915, -915, 7593, 7593, 6703, -915, -915, 164, -915, + -915, -915, 6703, -915, -915, -915, 58, -915, -915, -915, + 6703, 6703, 7593, 301, 413, 244, 687, 1593, 3746, 1700, + 1554, 7101, 1385, 1537, 851, 913, 1810, 7173, -915, 1935, + 7232, 424, 6904, 380, -915, -915, -915, -915, -915, -915, + -915, -915, 1714, 514, 526, 539, 7291, 411, 2291, -915, + -915, 438, -915, -915, 7550, 2712, -915, -915, -915, -13, + 7593, -915, 18, 202, 202, 43, 78, 180, 181, 229, + 298, 202, -12, -3, 409, 202, 11, 234, 6, 239, + 16, 223, 245, 172, 252, 327, 7593, 7593, 7550, -13, + 6703, -915, -915, -915, -915, 361, 268, -13, 4075, 280, + -13, 305, 299, 2947, 355, 357, 54, 190, 409, 389, + 213, 255, -915, -27, 6703, 3944, -915, 6904, 3623, -915, + -915, -915, -915, -13, -915, -915, -915, -915, -915, 7593, + 7593, -915, -915, 6703, 4412, -915, 207, 6703, -915, -915, + -915, -915, -915, -915, 6703, -915, -915, -915, 6703, -915, + -915, -915, -915, 6703, -915, -915, -915, 6703, -915, -915, + -915, 6703, -915, -915, -915, 6703, -915, -915, 6703, -915, + -915, -915, 6703, -915, -915, -915, -915, -915, -915, 6703, + -915, -915, -915, -915, -915, -915, 13, 20, 402, -915, + 410, -915, 415, -915, -915, 429, -915, 435, -915, 229, + -915, 298, -915, -915, 444, -915, 455, -915, -915, 465, + 499, -915, 522, -915, -915, 6703, -915, 6703, -915, -915, + 6703, -915, -915, 6703, -915, -915, -915, -915, 6703, -915, + -915, -915, -915, 6703, -915, -915, -915, -915, -915, -915, + 6703, 6703, 6703, 6703, 6703, 6703, 6703, 7464, -915, -915, + -915, -915, -915, -915, 6703, -915, -915, 6703, -915, -915, + -915, -915, -915, 6703, -915, 6703, -915, 6703, -915, 6703, + -915, 6703, -915, -915, -915, -915, -915, -13, -915, -915, + -915, 580, 642, -915, -915, 581, -915, 257, -915, -915, + -915, -915, 670, 4791, -915, -915, -915, -915, -915, -915, + -915, 482, 290, 3944, 5271, -915, 638, -915, -915, -915, + 3944, -915, 2767, 458, -915, 458, 2113, 342, 1231, -915, + -915, 393, -915, 4075, 4075, 4075, 4075, 4075, 6703, 6703, + 6703, 6703, 6703, 6703, 6703, 6703, 6703, 6703, 6703, 6703, + 6703, 6703, 6703, 6703, 6703, 4075, 3446, -13, -13, 7593, + -915, -915, 2767, 356, -915, -915, -915, 4075, 485, -915, + -915, -915, 6703, -915, 4075, 366, 485, 356, 5391, 3944, + 355, 381, -915, 7593, -915, -915, -915, -915, 7593, -915, + -915, -915, -915, -915, -915, -915, -915, 7593, -915, -915, + -915, -915, -915, -915, -915, -915, -915, 530, -13, -915, + 4075, 442, 443, 6587, -915, 6703, 6935, 3944, 546, -915, + 6935, -915, -915, -915, 6904, -915, -16, -915, 452, 468, + 3623, 6904, -915, 6904, -915, 4412, 470, 6904, 6904, 6904, + 6904, 6904, 6904, 6904, 6904, 6904, 3623, 6904, 3623, 6904, + 6904, 6904, 6904, 6904, 3623, 6904, 6904, 6904, 6904, 6904, + 6904, 6904, 6904, -915, 6904, 6904, 6904, 6904, 6904, 6904, + 6904, -915, -915, 6703, -915, -915, 580, -915, 7593, 7593, + -915, 6703, -13, -915, -915, 290, -915, -915, -915, 6703, + -915, 378, -915, -915, 6703, 595, 646, 270, 7593, -915, + -915, 6819, 3446, -915, -915, -915, -915, -915, 3843, 6904, + 1231, 1231, 1231, 1231, 1231, 561, 1231, 1231, 1231, 1231, + 408, 408, 318, 318, 318, -915, 6819, 493, 3499, -915, + -915, -915, 624, 646, 7550, -13, -915, 7593, -915, 6904, + -915, 7593, 7593, -915, -915, -13, -915, 4551, -915, -915, + -915, 619, -915, 3192, 280, 2447, -915, -915, -915, -915, + 7593, 3192, -915, -915, -915, 6703, 3059, 6819, 314, 505, + -915, 550, 4209, 568, -915, 6904, 570, -915, -915, -915, + 6471, 171, -12, 409, 11, 228, 6, 3623, -915, -13, + 529, -13, 560, 427, -915, -915, 4412, 472, 476, 494, + 5751, 3944, 6703, -915, 152, 337, 3944, -915, 6703, -915, + -13, 5871, 6904, -13, 6703, -915, -915, 6904, -915, 679, + -915, 6703, 565, -915, 573, 3499, 572, 6819, 6819, 4911, + 6703, -915, -915, -915, 4075, 647, -915, 4075, -915, -915, + 617, -13, 3876, 7593, 4075, 575, 584, 585, 4075, -915, + -915, -915, -915, 279, -915, 578, 6904, 282, -915, 4075, + -915, 6819, 6703, 602, 6111, -915, -915, 4077, -915, 4077, + 3623, -915, -915, -915, -915, -915, -915, -915, 3944, 4077, + -915, 4077, -915, -915, 5511, 3944, 5511, -915, -13, -915, + 6904, -915, 6904, 6703, 6819, -915, 588, 591, -915, 6904, + -915, 6703, -915, -915, 7593, -915, -13, -13, -915, 7593, + 4075, 7632, -915, 4075, 7378, 623, -915, 7593, -13, 4075, + 6703, -915, -915, -915, 6904, -915, -915, -915, -915, 596, + 592, 4075, 599, -915, 4911, -915, 600, 604, 5031, -915, + -915, -915, 205, 5631, 5631, -13, 6703, 6904, 606, -915, + -915, 6788, -915, 721, 6231, 6231, 7653, -915, 6703, -915, + -13, 7593, 4075, 585, 7421, -915, -915, -915, 6904, -13, + -13, 7507, -915, -13, -915, 4911, -13, -13, -915, 5031, + -915, -915, -915, -915, -915, 5631, 6904, -915, 6703, -915, + -915, -915, -915, 6703, -915, -915, 533, -915, -915, 7688, + -915, 7593, 4075, -915, -915, -915, 4075, -915, -915, -915, + -915, -915, -915, 6904, -13, 544, 6703, -915, 6703, -915, + 7709, -915, 5991, -915, -915, -915, -915, 552, 6703, -915, + 14, -915, 5991, -915, 553, 7593, 7593, -915, -915, -915, + -915 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -791, -791, -791, -791, 22, 618, -791, -791, -791, -791, - -791, -790, -459, 0, -621, -791, 32, -791, -791, -791, - -791, -791, -791, -791, -791, -791, -791, -791, 155, -791, - -131, -791, -791, 543, -791, 3740, 1482, 1533, 591, 284, - 592, 346, 593, 597, 527, 598, 578, 602, 766, -791, - 603, 1031, 604, 1135, 605, -2, 607, 88, 608, 441, - -791, 2655, 1694, 1855, 2016, -791, -167, -791, 2145, -791, - -791, -263, -791, -185, -56, -279, 289, 2228, -791, 2440, - -791, -791, -11, -791, -791, -791, -791, 4338, -791, -791, - -579, -558, -791, 2535, -791, 2523, 2704, -791, 2805, -791, - -791, -791, -791, -791, -791, -791, 2867, -791, -791, -791, - 4784, -791, -791, 1270, -791, -791, -791, -791, 684, 685, - 691, 692, 183, 616, 5, 697, 698, -791, 1321, -791, - 623, -791, -791, -791, -791, 560, 468, 13, -147, -791, - -791, -791, 202, -791, -791, -791, -791, -791, -791, 472, - 37, -791, -791, -791, -791, -791, -533, -791, -707, -791, - -12, -697, -251, -791, -151, -791, -791, -10, -401, -791, - -791, -791, -791, -791, -791, -791, -791, -791, -791, -791, - 287, -791, -791, -791, -791, -791, -791, -435, -791, -453, - -791, -791, -791, -791, -791, -791, -791, -791, 267, -791, - -791, -791, -791, -791, -791, -791, -791, -791, -791, -791, - -791, -791, -791, -255, 157, -791, -791, -791, -791, -791, - -791, -791, -791, -791, 81, -791, -791, -791, -791, -791, - -791, 89, -791, -791, -791, -791, -791, -791, -791, -791, - -791, -791, -791, 210, -562, -791, -791, 3656 + -915, -915, -915, -915, 49, 684, -915, -915, -915, -915, + -915, -747, -420, 122, -603, -915, 211, -915, -915, -915, + -915, -915, -915, -915, -915, -915, -915, -915, 106, -915, + -128, -915, -915, 608, -915, 3048, 1222, 1350, 659, 260, + 662, 263, 663, 664, 360, 668, 478, 672, 543, -915, + 674, 651, 675, 803, 677, -2, 678, 98, 681, 513, + -915, 7577, 1426, 1502, 1630, -915, -163, -915, 1643, -915, + -915, -556, -915, -213, -640, -496, -277, 363, 1800, -915, + 1844, -915, -915, -11, -915, -915, -915, -915, 3690, -915, + -915, -564, -524, -915, 2001, -915, 2014, 2117, -915, 2132, + -915, -915, -915, -915, -915, -915, -915, 2294, -915, -915, + -915, 4133, -915, -915, 927, -915, -915, -915, -915, 754, + 758, -915, 759, 198, 692, 5, -915, -915, -915, 1150, + 696, -915, -915, -915, -915, 632, 541, 103, -150, -915, + -915, -915, 278, -915, -915, -915, -915, -915, -915, 547, + 241, -915, -915, -915, -915, -915, -525, -915, -693, -915, + 82, -914, -170, -915, -67, -915, -915, 68, -523, -915, + -915, -915, -915, 368, -915, -915, -915, -915, -915, -915, + -427, -915, -442, -915, -915, -915, -915, -915, -915, -915, + -915, 338, -915, -915, -915, -915, -915, -915, -915, -915, + -915, -915, -915, -915, -915, -915, -174, 248, -915, -915, + -915, -915, -915, -915, -915, -915, -915, 174, -915, -915, + -915, -915, -915, -915, 176, -915, -915, -915, -915, -915, + -915, -915, -915, -915, -915, -915, -915, -915, 291, -915, + -695, -915, -915, 3015 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -626 +#define YYTABLE_NINF -618 static const yytype_int16 yytable[] = { - 84, 281, 194, 456, 575, 592, 480, 480, 487, 724, - 456, 740, 641, 644, 651, 654, 812, 156, 210, 662, - 389, 816, 311, 756, 61, 310, 234, 399, 314, 529, - 315, 387, 994, 580, 64, 255, -4, 331, 423, 129, - 893, 297, 781, 386, 299, 748, 390, 269, 3, 749, - 897, 311, 898, 400, 315, 303, 151, 286, 84, 334, - 995, 939, 700, 332, 424, 381, 306, 704, 306, 387, - 306, 306, 879, 306, 708, 306, 880, 306, 394, 306, - 793, 306, 290, 306, 940, 306, 370, 306, 338, 152, - 86, 306, 292, 320, 306, 345, 306, 293, 306, 581, - 324, 57, 319, 328, 395, 310, 247, 390, 882, 383, - 732, 300, 883, 588, 339, 323, 235, 306, -318, 300, - 437, 346, 530, 306, 298, 256, -98, -98, 320, -305, - -305, 311, 84, -98, -98, 300, 716, 270, 327, 84, - 300, 324, 300, 300, -98, -98, 438, 287, 86, -305, - -305, -305, -305, 300, -305, -305, 307, 420, 307, 300, - 307, 307, 602, 307, 328, 307, 482, 307, 603, 307, - 300, 307, 924, 307, 300, 307, 372, 307, 833, 822, - 300, 307, 300, 421, 307, 118, 307, 396, 307, 300, - 811, 253, 300, 300, -98, -98, 300, 340, 339, 770, - 339, -98, -98, 300, 347, 55, 56, 307, 764, 346, - 300, 245, -297, 307, 521, -98, -98, 300, -305, 424, - 300, 429, 86, 430, 300, 258, -98, -98, 264, 86, - 300, 400, 274, -30, -30, 300, 267, 279, 297, 341, - 395, 348, 346, 118, -113, -113, 384, 297, 521, 395, - 391, 309, 421, 300, 401, 974, 576, 415, 416, 417, - 418, -98, -98, -225, 438, 471, 337, 419, 344, 314, - 351, 376, 300, 425, 424, 431, 575, 432, 585, 439, - 986, 340, 462, 340, 297, -315, 69, 300, 429, 300, - 993, 434, 347, -307, -307, 315, -316, 431, 300, 474, - 475, 300, 428, 653, 465, -297, -319, 433, 300, 434, - 575, 332, 227, -307, -307, -307, -307, 118, -307, -307, - 300, 298, 413, 396, 118, 347, 297, -322, 647, 300, - 298, 300, 396, 227, -155, 169, -155, 862, 300, 647, - 864, 300, -567, 539, 69, -76, -76, 874, 71, 502, - -225, 878, -225, 300, 540, 782, -76, -76, 541, 954, - 837, 783, 884, 300, -617, -617, -617, 298, 270, 564, - 520, 848, 356, 633, 228, 634, 471, 635, 528, 636, - 295, 296, -307, 709, 300, 855, 856, 857, 858, 859, - 55, 56, 566, 840, 954, 228, 775, 657, 507, 508, - 509, 510, 511, -78, -78, 588, 71, 387, -567, 298, - 435, 286, 436, 916, 918, 567, 919, 954, 69, 954, - 55, 56, 926, 842, 516, 69, 430, 297, 758, 954, - 759, 311, 502, 931, 358, 5, 760, 443, 444, 445, - 446, 159, 160, 668, 900, 462, 902, 55, 56, 710, - 577, 315, 162, 163, 320, 164, 953, 84, 298, 166, - 697, 702, 959, 274, 733, 463, 464, 465, 84, 826, - -313, 167, 300, 168, 324, 462, 29, 30, 575, 339, - 71, 32, 170, 509, 510, 511, 346, 71, 669, 670, - 171, 672, 673, 674, 933, 650, 464, 465, 937, 978, - 421, 287, 980, 942, 943, 424, 982, 443, 642, 445, - 446, 43, 950, 951, 831, 696, 832, 831, 784, 834, - 988, 438, 172, 55, 56, 518, 50, 730, 576, 74, - 55, 56, 665, 967, 831, 84, 835, 970, 55, 56, - 705, -503, -503, 971, -623, -623, -623, 86, 734, 831, - 261, 836, 894, 741, 975, 229, 976, 746, 86, 719, - 55, 56, 576, -433, 227, -624, -624, -624, -28, -28, - 736, 975, 757, 984, -129, 544, 229, -509, -509, 269, - 76, -23, 404, 405, 801, -25, 299, 74, 553, 554, - 555, 556, 557, 558, 559, 560, 502, 638, -129, -129, - -129, 791, 406, 407, 408, 409, 230, 410, 411, 792, - -304, -304, 785, 803, 975, 361, 992, 823, -129, -129, - -129, -129, 852, -129, -129, 86, 228, 230, -512, -512, - -304, -304, -304, -304, 828, -304, -304, 975, 76, 997, - -515, -515, 118, 445, 446, 645, 646, 656, 657, 865, - 866, 412, 830, 118, 854, 863, 875, 881, 876, 877, - 270, 74, 886, 923, 929, 930, 363, -129, 74, 270, - 932, 413, 935, 949, 936, 946, -111, -111, 291, 355, - 357, 359, -129, -129, 470, 360, 362, -129, 532, -129, - 364, 366, 368, 369, 801, 371, 373, 206, 207, -304, - 521, 300, 630, 155, 377, 208, -129, -129, -129, 157, - 158, 379, 76, 84, 481, 794, -127, 817, 536, 76, - 118, 535, 577, 701, 985, 922, -129, -129, -129, -129, - 576, -129, -129, 303, 652, 643, 996, 825, 744, 776, - -127, -127, -127, 69, 0, 84, 0, 777, 0, 718, - 0, 0, 0, 0, 69, 274, 577, -306, -306, 84, - -127, -127, -127, -127, 274, -127, -127, 0, 78, 0, - 84, 0, 0, 0, 0, -129, 0, -306, -306, -306, - -306, 0, -306, -306, 84, 84, 84, 84, 84, 0, - 0, -129, 0, 0, 231, -129, 0, -129, 0, 0, - 0, 0, 0, 86, 909, 71, 0, 229, 0, -127, - 0, 0, 0, 0, 0, 231, 71, 0, 0, 0, - 0, 69, 0, 84, 0, -127, 78, 0, 0, -127, - 0, -127, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 84, 0, 84, -306, 0, 300, 86, - 0, 0, 0, 0, 365, 0, 227, 0, 230, 0, - 86, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 86, 86, 86, 86, 0, - 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 84, 0, 0, 0, 84, 118, 0, - 78, 381, 84, 84, 0, 0, 0, 78, 0, 0, - 0, 84, 84, 86, -131, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 577, -313, -313, 228, 0, 0, - 118, 0, 84, 86, 0, 86, 84, 0, -131, -131, - -131, 0, 84, 0, 118, -313, -313, -313, -313, 0, - -313, -313, 0, 0, 0, 118, 0, 0, -131, -131, - -131, -131, 0, -131, -131, 0, 0, 0, 0, 118, - 118, 118, 118, 118, 0, 0, 0, 0, 0, 84, - 0, 0, 0, 86, 0, 0, 74, 86, 0, 84, - 0, 0, 86, 86, 0, 0, 0, 74, 0, 69, - 0, 86, 86, 0, 0, 0, 0, -131, 118, 0, - 0, 0, 0, 0, -313, 0, 300, 0, 0, 0, - 0, 0, 86, -131, 0, 0, 86, -131, 118, -131, - 118, 69, 86, 80, 0, 0, 0, 76, 0, 0, - 0, 0, 0, 0, 0, 69, 231, 0, 76, 0, - 0, 0, 0, 0, 0, 0, 69, 0, 0, 232, - 0, 71, 0, 0, 74, 0, 0, 0, 0, 86, - 69, 69, 69, 69, 69, 0, 0, 0, 118, 86, - 232, 0, 118, 0, 0, 0, 0, 118, 118, 0, - 0, 80, 0, 71, 0, 0, 118, 118, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 71, 229, 69, - 0, 0, 0, 0, 0, 76, 0, 118, 71, 367, - 0, 118, 0, 0, 0, 0, 0, 118, 0, 69, - 0, 69, 71, 71, 71, 71, 71, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 230, 0, 0, 0, 0, 404, 405, 0, 0, 230, - 0, 0, 0, 233, 118, 80, 0, 0, 0, 0, - 0, 71, 80, 0, 118, 406, 407, 408, 409, 69, - 410, 411, 0, 69, 233, 0, 0, 0, 69, 69, - 0, 71, 0, 71, 0, 82, 0, 69, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, - 0, 0, 69, 0, 0, 78, 0, 0, 69, 0, - 0, 0, -312, -312, 332, 0, 78, 0, 0, 0, - 0, 71, 74, 0, 413, 71, 0, 0, 0, 0, - 71, 71, -312, -312, -312, -312, 0, -312, -312, 71, - 71, 0, 0, 0, 0, 69, 0, 0, 0, 82, - 0, 0, 113, 0, 74, 69, 82, 0, 0, 0, - 71, 0, 0, 0, 71, 0, 0, 0, 74, 0, - 71, 0, 0, 76, 0, 0, 0, 0, 244, 74, - 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, - 0, 232, 0, 74, 74, 74, 74, 74, 0, 244, - 0, -312, 0, 124, 0, 76, 0, 71, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 71, 231, 76, - 0, 0, 0, 0, 0, 0, 0, 231, 0, 246, - 76, -128, 74, 0, 0, 0, 0, 0, 375, 0, - 0, 0, 0, 0, 76, 76, 76, 76, 76, 0, - 246, 0, 74, 0, 74, -128, -128, -128, 0, 0, - 0, 124, 0, 0, 0, 0, 0, 0, 0, 383, - 0, 0, 0, 0, 0, -128, -128, -128, -128, 0, - -128, -128, 0, 76, 113, 0, 0, 0, 0, 378, - 0, 113, 0, -314, -314, 233, 0, 0, 0, 0, - 0, 0, 74, 76, 0, 76, 74, 0, 0, 0, - 0, 74, 74, -314, -314, -314, -314, 0, -314, -314, - 74, 74, 0, 0, -128, 0, 0, 0, 0, 0, - 319, 0, 0, 0, 0, 124, 0, 0, 0, 0, - -128, 74, 124, 0, -128, 74, -128, 0, 0, 0, - 0, 74, 0, 76, -309, -309, 320, 76, 0, 0, - 0, 78, 76, 76, 66, 0, 0, 0, 0, 0, - 80, 76, 76, 0, -309, -309, -309, -309, 0, -309, - -309, 80, -314, 0, 300, 0, 0, 0, 74, 0, - 225, 0, 76, 78, 0, 0, 76, 0, 74, 0, - 0, 0, 76, 0, 0, 0, 0, 78, 0, 0, - 0, 225, 0, 0, 0, 67, 0, 0, 78, 0, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 78, 78, 78, 78, 78, 0, 0, 76, - 0, 226, 0, -309, 0, 300, 0, 0, 80, 76, - 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, - 0, 0, 226, 0, -132, 0, 0, 0, 0, 0, - 0, 78, 0, 67, 82, 0, 0, 0, 0, -317, - -317, 246, 0, 232, 0, 82, 0, 0, -132, -132, - -132, 78, 232, 78, 0, 0, 66, 0, 0, -317, - -317, -317, -317, 66, -317, -317, 0, 0, -132, -132, - -132, -132, 0, -132, -132, 0, 0, -288, -288, -288, - -288, -288, -288, -288, -288, -288, 0, 0, 0, 0, - -288, -288, -288, -288, -288, -288, -288, -288, 0, 0, - 0, 78, 0, 0, 0, 78, 0, 67, 0, 0, - 78, 78, 82, 0, 67, 0, 0, -132, 0, 78, - 78, -506, -506, 0, 0, 0, 0, 0, -317, -130, - 300, 0, 0, -132, 0, 0, 90, -132, 0, -132, - 78, 0, 0, 0, 78, 0, 0, 233, 0, 0, - 78, 0, 0, -130, -130, -130, 233, 0, 0, 0, - 0, 0, 236, 0, 338, 0, 0, 0, 0, 113, - 0, 0, 0, -130, -130, -130, -130, 0, -130, -130, - 113, 0, 0, 271, 0, 0, 80, 78, -315, -315, - 339, 0, 0, 0, 90, 0, 0, 78, 0, 0, - 0, 0, 225, 0, 0, 0, 0, 0, -315, -315, - -315, -315, 0, -315, -315, 0, 0, 0, 80, 0, - 124, 0, -130, 0, 0, 0, 0, 0, 0, 0, - 0, 124, 80, 0, 0, 0, 0, 0, -130, 345, - 0, 0, -130, 80, -130, 0, 0, 113, 0, 0, - 0, 0, 0, 226, 0, 0, 0, 80, 80, 80, - 80, 80, 0, -316, -316, 346, 0, 0, 90, 0, - 0, 0, 0, 340, 0, 90, 0, -315, 0, 300, - 327, 0, 244, -316, -316, -316, -316, 0, -316, -316, - 82, 244, 0, 0, 0, 0, 80, 91, 124, 0, - 0, 0, 0, 0, -311, -311, 328, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 80, 0, 80, 0, - 0, 0, 82, 237, -311, -311, -311, -311, 0, -311, - -311, 0, 0, 246, 0, 0, 82, 0, 0, 0, - 0, 0, 246, 0, 237, 0, 0, 82, 347, 0, - 0, 0, -316, 0, 300, 91, 0, 0, 0, 0, - 0, 82, 82, 82, 82, 82, 80, 0, 0, 0, - 80, 0, 0, 0, 0, 80, 80, 0, 0, 0, - 0, 66, 0, 0, 80, 80, 0, 0, 0, 0, - 0, 0, 66, -311, 0, 300, 0, 0, 0, 0, - 82, 0, 0, 0, 0, 80, 0, 0, 0, 80, - 0, 0, 0, 0, 586, 80, 0, 0, 0, 0, - 82, 0, 82, 0, 0, 113, 0, 0, 0, 91, - 0, 0, 67, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, - 0, 0, 80, 0, 0, 0, 0, 113, 92, 66, - 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, - 82, 113, 0, 0, 82, 0, 124, 0, 0, 82, - 82, 0, 113, 0, 238, 0, 0, 0, 82, 82, - 0, 0, 0, 0, 225, 0, 113, 113, 113, 113, - 113, 0, 0, 225, 0, 272, 0, 0, 124, 82, - 67, 0, 0, 82, 420, 0, 92, 0, 0, 82, - 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 124, 0, 113, 0, 0, -308, -308, - 421, 0, 0, 0, 0, 226, 0, 124, 124, 124, - 124, 124, 0, 0, 226, 113, 82, 113, -308, -308, - -308, -308, 0, -308, -308, 0, 82, 0, 0, 0, - 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 124, 95, 0, 0, - 92, 0, 0, 90, 0, 0, 0, 92, 0, 0, - 0, 0, 0, 0, 90, 113, 124, 0, 124, 113, - 0, 0, 0, 239, 113, 113, 0, 0, 0, 0, - 0, 0, 0, 113, 113, 0, 0, -308, 0, 300, - 0, 0, 0, 0, 239, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 113, 95, 0, 0, 113, 0, - 0, 0, 0, 0, 113, 0, 124, 0, 0, 0, - 124, 0, 0, 0, 0, 124, 124, 0, 0, 66, - 97, 90, 0, 0, 124, 124, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 0, 67, 0, - 0, 113, 0, 0, 66, 124, 240, 0, 0, 124, - 0, 113, 0, 0, 0, 124, 737, 0, 66, 66, - 66, 66, 66, 0, 0, 271, 0, 273, 0, 95, - 67, 0, 0, 0, 0, 0, 95, 0, 97, 0, - 0, 437, 0, 0, 67, 0, 587, 0, 0, 0, - 0, 0, 124, 0, 0, 67, 386, 66, 0, 0, - 0, 0, 124, 0, 91, -321, -321, 438, 0, 67, - 67, 67, 67, 67, 0, 91, 0, 66, 0, 66, - -318, -318, 387, 0, 0, -321, -321, -321, -321, 0, - -321, -321, 0, 0, 0, 0, 0, 0, 0, 0, - -318, -318, -318, -318, 0, -318, -318, 0, 67, 0, - 0, 0, 97, 0, 0, 0, 0, 0, 0, 97, - 0, 0, 0, 0, 0, 0, 0, 66, 67, 0, - 67, 66, 0, 0, 0, 0, 66, 66, 0, 0, - 0, 0, 91, 0, 0, 66, 66, 0, 0, 0, - 0, 0, 0, 0, -321, 0, 300, 0, 0, 90, - 0, 0, 0, 0, 0, 0, 66, 0, 0, -318, - 66, 0, 0, 0, 0, 239, 66, 237, 67, 0, - 0, 0, 67, 0, 0, 0, 237, 67, 67, 0, - 0, 90, 99, 0, 0, 0, 67, 67, 0, 0, - 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 90, 67, 241, 0, - 0, 67, 0, 66, 0, 92, 0, 67, 0, 0, - 90, 90, 90, 90, 90, 0, 92, 0, 0, 241, + 84, 573, 191, 474, 474, 698, 450, 719, 706, 482, + 677, 774, 800, 450, 624, 627, 388, 804, 207, 634, + 637, 745, 810, 333, 565, 520, 232, -298, 291, 965, + 304, 985, 340, -4, 308, 252, 776, 332, 423, 313, + 424, 389, 389, 770, 377, 3, 381, 266, 151, 293, + 317, 61, 645, 291, 977, 152, 305, 280, 84, 986, + 309, 297, 155, 333, 984, 314, 300, 720, 300, 321, + 300, 300, 882, 300, 328, 300, 318, 300, 305, 300, + 781, 300, 886, 300, 887, 300, 364, 300, 414, 333, + 566, 300, 682, 245, 300, 322, 300, 686, 300, 375, + 86, 737, 55, 56, 690, 738, 334, -30, -30, 284, + -316, 292, 294, 309, 415, 341, 873, 300, 521, -317, + -298, 294, 339, 300, 390, 390, 233, 383, -323, 393, + 294, 294, 84, -319, 417, 253, 292, 846, 847, 84, + 714, 255, 251, -98, -98, 294, 334, 267, 340, 294, + -98, -98, 294, 384, 294, 394, 677, 281, 86, 294, + 418, 719, 325, 477, 294, 294, 301, 294, 301, 431, + 301, 301, 334, 301, 915, 301, 294, 301, 294, 301, + 799, 301, 822, 301, 294, 301, 366, 301, 326, 294, + 335, 301, 342, 759, 301, 432, 301, 378, 301, 753, + 118, 385, 294, 294, 898, 395, 291, 418, 409, 410, + 411, 412, 512, 64, 294, 314, 318, 301, 413, -76, + -76, 720, 930, 301, 419, 340, 243, 826, -98, -98, + 433, 341, 86, -98, -98, -98, -98, 294, 837, 86, + -98, -98, 294, 129, 294, 931, 512, 271, 389, 294, + 468, 469, 276, 304, 261, 719, 848, 425, 118, 426, + -113, -113, 69, -225, 322, 71, 303, 55, 56, 384, + 829, 286, 40, 41, 394, -98, -98, -306, -306, 305, + 415, 331, 57, 338, 294, 345, 370, 432, 225, 292, + 418, 226, 380, -155, -320, -155, 294, -306, -306, -306, + -306, 287, -306, -306, 294, 294, 465, 456, 341, 225, + 293, 889, 226, 891, 294, 720, 54, 422, 381, 511, + 69, 398, 399, 71, 585, 630, 294, 519, 636, 459, + 586, 390, 118, 326, -305, -305, 630, 294, 427, 118, + 428, 400, 401, 402, 403, 407, 404, 405, 350, 291, + -225, 352, -225, 294, -305, -305, -305, -305, 294, -305, + -305, 924, 74, 294, 850, 928, -306, 852, 294, 294, + 933, 934, -76, -76, 862, 495, 294, 166, 866, 294, + 531, 941, 942, 747, 945, 748, 532, 771, 227, 872, + 406, 749, 291, 772, 69, 465, 867, 71, 555, 870, + 868, 69, 958, 871, 71, 280, 961, 735, -562, 227, + 407, 557, 962, 398, 399, 764, 640, 691, 558, 945, + 74, 563, 297, -305, 381, 294, 502, 503, 504, -613, + -613, -613, 292, 400, 401, 402, 403, 291, 404, 405, + 907, 909, 945, 910, 945, 305, -307, -307, 355, 917, + 309, 84, 55, 56, 945, 831, 456, -28, -28, 652, + 815, 922, 84, -129, 314, 495, -307, -307, -307, -307, + 318, -307, -307, 684, -562, 292, 457, 458, 459, 333, + 76, 55, 56, 692, -98, -98, 944, -129, -129, -129, + 340, 429, 950, 430, 74, 701, 55, 56, 773, 456, + 415, 74, 407, -78, -78, 281, 228, -129, -129, -129, + -129, 292, -129, -129, 500, 501, 502, 503, 504, 633, + 458, 459, 437, 438, 439, 440, 84, 228, 506, 969, + 424, -314, 971, 294, 418, -307, 973, 294, 76, -508, + -508, 5, 621, 883, 820, 78, 821, 156, 157, 712, + 979, 86, 721, 55, 56, 509, -129, 432, 159, 160, + 716, 161, 86, 729, 266, 163, 357, 715, 732, 789, + -23, 229, -129, 55, 56, 648, -129, 164, -129, 165, + 289, 290, 29, 30, -111, -111, -25, 32, 167, 820, + -129, 823, 229, 820, 746, 824, 168, 439, 440, -127, + 55, 56, 687, 78, -435, 653, 654, 655, 656, 657, + 777, 820, 76, 825, -129, -129, -129, 43, 495, 76, + -615, -615, -615, -127, -127, -127, 86, 675, 169, -510, + -510, 359, 50, 780, -129, -129, -129, -129, 791, -129, + -129, -511, -511, -127, -127, -127, -127, 817, -127, -127, + 966, 118, 967, 80, -512, -512, 258, 437, 625, 439, + 440, 966, 118, 975, 267, -616, -616, -616, 267, 966, + 966, 983, 988, 628, 629, 639, 640, 78, 819, 230, + 853, 854, 512, -129, 78, 811, 789, 812, 841, 843, + 844, 845, -127, 851, 863, 84, 308, 869, 875, -129, + 230, 864, 865, -129, 914, -129, 721, 899, -127, 921, + 900, 80, -127, 69, -127, 920, 71, 535, 923, 926, + -308, -308, 309, 927, 69, 937, 118, 71, 84, -131, + 544, 545, 546, 547, 548, 549, 550, 551, 940, 361, + -308, -308, -308, -308, 285, -308, -308, 349, 84, 464, + 351, 353, 354, -131, -131, -131, 356, -128, 523, 84, + 358, 722, 360, 362, 271, 363, 365, 203, 271, 367, + 613, 204, 205, -131, -131, -131, -131, 84, -131, -131, + 371, -128, -128, -128, 373, 80, 475, 782, 69, 527, + 683, 71, 80, 805, 526, 86, 976, 913, 814, 635, + 721, -128, -128, -128, -128, 82, -128, -128, 987, -308, + 626, 294, 84, 74, 727, 765, 181, 766, 0, 0, + 0, 700, -131, 0, 74, 0, 225, 0, 86, 226, + 225, 231, 84, 226, 84, 0, 0, 0, -131, 0, + 0, 0, -131, 0, -131, 0, 0, 0, 86, 0, + -128, 0, 231, 0, 0, 0, 0, 0, 0, 86, + 375, 0, 0, 82, 0, 0, -128, 0, 0, 0, + -128, 0, -128, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 84, 0, -314, -314, 84, 0, 74, 0, + 0, 84, 84, 0, 0, 118, 0, 0, 0, 0, + 0, 0, 84, 84, -314, -314, -314, -314, 0, -314, + -314, 0, 86, 0, 0, 722, 0, 0, 0, 0, + 0, 0, 377, 84, 0, 0, 227, 84, 118, 113, + 227, 76, 86, 84, 86, 0, 0, 82, 0, 0, + 0, 0, 76, 0, 82, 0, -315, -315, 118, 0, + 0, 0, 0, 0, 0, 242, 0, 69, 0, 118, + 71, 0, 0, 0, 0, 0, -315, -315, -315, -315, + 84, -315, -315, -314, 0, 294, 242, 118, 0, 0, + 84, 0, 86, 0, 0, 0, 86, 113, 0, 0, + 69, 86, 86, 71, 0, 0, 78, 0, 0, 0, + 0, 0, 86, 86, 0, -132, 76, 78, 0, 722, + 69, 0, 118, 71, 0, 369, 0, 0, 0, 0, + 0, 69, 0, 86, 71, 0, 0, 86, 0, -132, + -132, -132, 118, 86, 118, -315, 0, 294, 0, 69, + 0, 0, 71, 0, 228, 0, 0, 0, 228, -132, + -132, -132, -132, 0, -132, -132, 0, 74, 0, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 113, 0, + 86, 78, 0, 0, 69, 0, 0, 71, 0, 0, + 86, 0, 118, 0, 0, 0, 118, 0, 0, 0, + 74, 118, 118, 0, 69, 0, 69, 71, -132, 71, + 0, 0, 118, 118, 80, 0, 0, 0, 0, 229, + 74, 0, 0, 229, -132, 80, 0, 0, -132, 0, + -132, 74, 0, 118, 0, 0, 0, 118, 0, 0, + 0, 0, 0, 118, 0, 0, 0, 0, 0, 74, + 0, 0, 0, 0, 69, 0, 0, 71, 69, 0, + 0, 71, 124, 69, 69, 0, 71, 71, 0, 0, + 0, 0, 0, 0, 69, 69, 0, 71, 71, 0, + 118, 0, 0, 0, 74, 76, 0, 0, 244, 80, + 118, 0, 0, 0, 0, 69, 0, 0, 71, 69, + 0, 0, 71, 0, 74, 69, 74, 0, 71, 244, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, + 124, 0, 0, 0, 0, 0, 0, 230, 0, 0, + 0, 230, 0, 0, 66, 0, 0, 0, 76, 0, + 0, 0, 69, 0, 0, 71, 0, 0, 372, 76, + 78, 0, 69, 0, 74, 71, 0, 0, 74, 0, + 223, 0, -130, 74, 74, 0, 82, 76, 0, 0, + 0, 490, 491, 492, 74, 74, 0, 82, 0, 0, + 0, 223, 0, 78, 0, 0, -130, -130, -130, 493, + 494, 0, 66, 0, 124, 74, 0, 0, 495, 74, + 0, 124, 76, 78, 0, 74, -130, -130, -130, -130, + 0, -130, -130, 0, 78, 0, 0, 0, 0, 0, + 0, 0, 76, 0, 76, 0, 0, 0, 0, 0, + 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, + 0, 82, 74, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 74, 0, 0, -130, 0, 0, 80, 0, + 0, 0, 67, 0, 0, 0, 66, 78, 0, 0, + 0, -130, 76, 66, 0, -130, 76, -130, 0, 231, + 0, 76, 76, 231, 0, 0, 0, 78, 224, 78, + 113, 80, 76, 76, 0, 0, 0, 0, 0, 0, + 0, 113, 0, 0, 332, 0, 0, 0, 0, 224, + 0, 80, 0, 76, 0, 0, 0, 76, 0, 0, + 67, 0, 80, 76, 0, 0, 0, 0, -316, -316, + 333, 0, 0, 0, 0, 0, 0, 78, 90, 0, + 80, 78, 0, 0, 0, 0, 78, 78, -316, -316, + -316, -316, 0, -316, -316, 0, 0, 78, 78, 0, + 76, 0, 0, 0, 234, 113, 0, 0, 0, 0, + 76, 0, 0, 0, 0, 80, 0, 0, 78, 0, + 0, 0, 78, 0, 0, 268, 0, 0, 78, 0, + 0, 0, 0, 0, 67, 80, 90, 80, 0, 0, + 0, 67, 0, 242, 0, 0, 0, 242, 0, 0, + 82, 0, 0, 334, 91, 0, 0, -316, 0, 294, + 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, + 235, 0, 0, 82, 0, 80, 0, 0, 0, 80, + 0, 0, 0, 0, 80, 80, 339, 0, 0, 0, + 0, 235, 0, 82, 0, 80, 80, 0, 0, 0, + 90, 0, 91, 325, 82, 0, 0, 90, 0, 0, + -317, -317, 340, 0, 0, 0, 80, 0, 0, 0, + 80, 0, 82, 0, 0, 0, 80, -313, -313, 326, + -317, -317, -317, -317, 0, -317, -317, 0, 0, 0, + 0, 0, 313, 124, 0, 0, 0, -313, -313, -313, + -313, 0, -313, -313, 124, 0, 0, 82, 0, 0, + 0, 0, 0, 80, 113, 0, -310, -310, 314, 0, + 0, 0, 92, 80, 0, 0, 91, 82, 0, 82, + 0, 0, 0, 91, 0, 95, -310, -310, -310, -310, + 0, -310, -310, 0, 0, 341, 0, 113, 236, -317, + 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 237, 0, 0, 0, 66, -313, 113, 124, 269, + 0, 0, 0, 0, 0, 0, 66, 82, 113, 0, + 92, 82, 237, 0, 0, 0, 82, 82, 0, 0, + 0, 0, 0, 95, 0, 0, 113, 82, 82, 321, + 0, 0, 0, 0, 0, -310, 244, 294, 0, 0, + 244, 0, 0, 414, 0, 0, 0, 0, 82, 0, + 0, 0, 82, -312, -312, 322, 0, 0, 82, 0, + 0, 113, 0, 0, 0, 0, 0, -309, -309, 415, + 66, 0, 0, -312, -312, -312, -312, 0, -312, -312, + 0, 113, 0, 113, 92, 0, 0, -309, -309, -309, + -309, 92, -309, -309, 0, 82, 0, 95, 0, 0, + 0, 0, 0, 0, 95, 82, 0, 0, 223, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97, 67, 0, 0, 0, 0, 0, 0, + 0, 113, 0, 0, 67, 113, 0, 0, 0, 380, + 113, 113, -312, 0, 294, 0, 0, 0, 238, 0, + 0, 113, 113, 0, 0, 0, -309, 0, 294, 0, + 0, 0, 0, -319, -319, 381, 99, 124, 0, 270, + 0, 0, 113, 0, 0, 0, 113, 0, 0, 0, + 97, 0, 113, -319, -319, -319, -319, 0, -319, -319, + 0, 0, 239, 0, 0, 0, 0, 0, 67, 90, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 90, 0, 0, 239, 0, 0, 0, 0, 0, 113, + 124, 0, 0, 0, 99, 0, 0, 0, 0, 113, + 0, 124, 0, 0, 0, 0, 224, 0, 0, 66, + 224, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 0, 0, -319, 0, 97, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 388, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 90, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 0, 91, 0, -323, -323, + 389, 0, 66, 0, 0, 0, 0, 0, 99, 0, + 0, 0, 0, 66, 124, 99, 124, 0, -323, -323, + -323, -323, 268, -323, -323, 0, 733, 0, 0, 0, + 0, 66, 0, 101, 0, 0, -273, -273, -273, -273, + -273, -273, -273, -273, -273, 0, 102, 0, 0, -273, + -273, -273, -273, -273, -273, -273, -273, 0, 0, 241, + 91, 0, 0, 0, 124, 0, 66, 0, 124, 0, + 0, 0, 0, 124, 124, 0, 0, 67, 0, 0, + 241, 0, 0, 390, 124, 124, 66, -323, 66, 294, + 0, 101, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 235, 0, 102, 124, 0, 0, 0, 124, + 67, 0, 0, 92, 0, 124, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 0, 95, 0, 0, 0, + 67, 0, 0, 0, 0, 0, 66, 95, 0, 0, + 66, 67, 0, 0, 0, 66, 66, 0, 0, 103, + 0, 0, 124, 90, 0, 0, 66, 66, 0, 67, + 0, 0, 124, 0, 104, 101, 0, 0, 0, 488, + 489, 0, 101, 490, 491, 492, 0, 66, 102, 0, + 0, 66, 0, 0, 0, 102, 90, 66, 92, 0, + 0, 493, 494, 0, 67, 0, 0, 0, 0, 0, + 495, 95, 0, 0, 0, 0, 90, 103, 0, 0, + 0, 0, 0, 0, 67, 0, 67, 90, 0, 0, + 0, 0, 104, 0, 66, 0, 269, 0, 0, 91, + 734, 0, 0, 0, 66, 90, 0, 0, 0, 237, + 0, 0, 0, 237, 0, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 0, 0, 0, 0, 0, 0, + 651, 0, 91, 0, 67, 0, 0, 0, 67, 0, + 90, 0, 0, 67, 67, 0, 0, 0, 0, 0, + 0, 103, 91, 97, 67, 67, 0, 0, 103, 0, + 90, 0, 90, 91, 97, 0, 104, 0, 0, 0, + 0, 0, 0, 104, 0, 67, 0, 0, 0, 67, + 0, 91, 0, 0, 0, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 99, 0, 0, + 431, 0, 0, 0, 0, 0, 0, 0, 99, 0, + 90, 0, 0, 0, 90, 0, 91, 0, 0, 90, + 90, 0, 67, 0, -322, -322, 432, 92, 97, 0, + 90, 90, 67, 0, 0, 0, 91, 0, 91, 0, + 95, 0, 0, 0, -322, -322, -322, -322, 0, -322, + -322, 90, 0, 0, 112, 90, 0, 0, 0, 0, + 92, 90, 0, 0, 0, 0, 270, 0, 0, 0, + 736, 0, 99, 95, 0, 0, 0, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 91, 0, 0, 0, + 91, 92, 0, 95, 0, 91, 91, 0, 90, 0, + 0, 0, 0, 0, 95, 0, 91, 91, 90, 92, + 239, 0, 0, -322, 239, 294, 0, 0, 0, 0, + 0, 0, 95, 0, 0, 0, 0, 91, 112, 0, + 0, 91, 0, 0, 0, 112, 0, 91, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 101, 0, 0, 95, 156, 157, + 0, 0, 0, 0, 92, 101, 92, 102, 0, 159, + 160, 0, 161, 0, 91, 0, 163, 95, 102, 95, + 0, 0, 0, 0, 91, 0, 0, 0, 164, 0, + 165, 0, 0, 29, 30, 0, 0, 97, 32, 167, + 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 92, 0, + 0, 0, 0, 92, 92, 0, 0, 95, 43, 101, + 97, 95, 0, 0, 92, 92, 95, 95, 0, 169, + 0, 99, 102, 50, 0, 0, 0, 95, 95, 0, + 97, 0, 0, 0, 0, 92, 0, 0, 0, 92, + 0, 97, 55, 56, 0, 92, 0, 241, 95, 0, + 103, 241, 95, 0, 99, 0, 0, 0, 95, 97, + 0, 103, 0, 0, 0, 104, 0, 0, 0, 0, + 0, 0, 0, 0, 99, 0, 104, 0, 0, 0, + 0, 0, 92, 0, 0, 99, 0, 0, 0, 0, + 0, 0, 92, 0, 97, 95, 0, 0, 0, 0, + 0, 0, 0, 99, 0, 95, 5, 0, 0, 0, + 0, 0, 156, 157, 97, 0, 97, 0, 0, 0, + 0, 0, 0, 159, 160, 103, 161, 0, 0, 0, + 163, 0, 0, 0, 0, 0, 0, 0, 99, 0, + 104, 0, 164, 0, 165, 0, 0, 29, 30, 0, + 0, 0, 32, 167, 0, 0, 0, 0, 99, 0, + 99, 168, 0, 0, 97, 0, 0, 0, 97, 0, + 40, 41, 0, 97, 97, 0, 0, 0, 101, 0, + 0, 0, 43, 0, 97, 97, 0, 0, 0, 0, + 0, 102, 0, 169, 0, 0, 0, 50, 0, 0, + 0, 328, 0, 0, 0, 97, 0, 0, 99, 97, + 0, 101, 99, 0, 54, 97, 0, 99, 99, 57, + 0, 0, 0, 0, 102, -318, -318, 112, 99, 99, + 0, 101, 0, 0, 0, 0, 0, 0, 112, 0, + 0, 0, 101, 0, 102, -318, -318, -318, -318, 99, + -318, -318, 97, 99, 0, 102, 0, 0, 0, 99, + 101, 0, 97, -289, -289, -289, -289, -289, -289, -289, + -289, -289, 0, 102, 0, 0, -289, -289, -289, -289, + -289, -289, -289, -289, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 101, 99, 0, 0, 0, + 0, 0, 112, 0, 0, 0, 99, 0, 102, 104, + 0, 0, 0, 0, -318, 101, 294, 101, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 103, 102, 0, + 102, 544, 545, 546, 547, 548, 549, 550, 551, 0, + 0, 0, 104, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 0, 0, 104, 0, 0, 101, 0, 0, 0, 101, + 0, 644, 0, 104, 101, 101, 103, 0, 102, 0, + 0, 0, 102, 0, 0, 101, 101, 102, 102, 0, + 0, 104, 0, 0, 0, 0, 0, 0, 102, 102, + 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, + 101, 103, 0, 0, 0, 0, 101, 0, 0, 102, + 0, 0, 0, 102, 0, 0, 104, 0, 0, 102, + 0, 103, 5, 103, 0, 0, 0, 0, 156, 157, + 0, 0, 0, 0, 0, 0, 104, 0, 104, 159, + 160, 0, 161, 101, 0, 0, 163, 0, 0, 0, + 0, 0, 0, 101, 0, 0, 102, 0, 164, 0, + 165, 112, 0, 29, 30, 0, 102, 0, 32, 167, + 0, 103, 0, 0, 0, 103, 0, 168, 0, 0, + 103, 103, 0, 0, 0, 0, 104, 146, 0, 147, + 104, 103, 103, 0, 112, 104, 104, 0, 43, 0, + 0, 0, 0, 0, 0, 0, 104, 104, 0, 169, + 0, 0, 103, 50, 112, 0, 103, 559, 0, 0, + 0, 0, 103, 0, 0, 112, 0, 104, 0, 0, + 0, 104, 0, 0, 5, 210, 212, 104, 0, 0, + 156, 157, 0, 112, 0, 288, 222, 0, 0, 0, + 0, 159, 160, 0, 161, 0, 0, 0, 163, 103, + 256, 0, 257, 259, 0, 0, 0, 265, 0, 103, + 164, 0, 165, 0, 104, 29, 30, 279, 112, 0, + 32, 167, 0, 0, 104, 0, 299, 0, 299, 168, + 299, 299, 0, 299, 0, 299, 0, 299, 112, 299, + 112, 299, 0, 299, 0, 299, 348, 299, 0, 0, + 43, 299, 0, 0, 299, 0, 299, 0, 299, 0, + 0, 169, 0, 0, 0, 50, 0, 0, 0, 808, + 0, 0, 0, 0, 0, 471, 0, 299, 0, 0, + 0, 0, 0, 299, 0, 0, 0, 0, 112, 0, + 0, 0, 112, 0, 0, 0, 0, 112, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 112, 112, + 0, 472, 472, 156, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 159, 160, 0, 161, 0, 112, + 481, 163, 0, 112, 0, 0, 510, 0, 0, 112, + 0, 0, 0, 164, 516, 165, 0, 0, 29, 30, + 0, 0, 0, 32, 167, 0, 0, 0, 0, 0, + 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 472, 0, 528, 0, 112, 0, 517, 0, + 0, 0, 534, 792, 0, 556, 112, 0, 0, 0, + 0, 0, 0, 0, 169, 0, 0, 0, 50, 0, + 568, 0, 0, 0, 524, 517, 472, 0, 577, 0, + 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, + 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, + -3, 283, 0, -27, -27, 5, 6, 7, 8, 0, + 9, 10, 11, 12, 13, 0, 0, 578, 579, 14, + 15, 16, 17, 18, 19, 20, 0, 0, 0, 21, + 0, 0, 0, 22, 23, 0, 24, 0, 0, 0, + 0, 25, 26, 27, 28, 0, 29, 30, 0, 0, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 34, 35, 36, 0, 0, 37, 0, 38, 39, 40, + 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 99, 0, 0, 0, 0, 0, 0, 0, 589, 5, - 0, 0, 0, 0, 67, 159, 160, 0, 0, 90, - 0, 0, 0, 0, 67, 102, 162, 163, 0, 164, - 0, 0, 0, 166, 0, 0, 0, 101, 0, 90, - 0, 90, 0, 0, 0, 167, 0, 168, 0, 0, - 29, 30, 0, 92, 0, 32, 170, 0, 0, 0, - 0, 0, 0, 243, 171, 0, 0, 0, 0, 0, - 91, 0, 0, 0, 99, 0, 0, 0, 0, 0, - 0, 99, 0, 102, 243, 43, 0, 0, 738, 90, - 0, 0, 0, 90, 0, 101, 172, 272, 90, 90, - 50, 0, 91, 0, 95, 0, 0, 90, 90, 0, - 0, 0, 0, 0, 0, 95, 91, 0, 0, 55, - 56, 0, 0, 0, 0, 0, 0, 91, 90, 0, - 0, 0, 90, 0, 0, 0, 0, 0, 90, 0, - 0, 91, 91, 91, 91, 91, 0, 0, 5, 0, - 0, 0, 0, 0, 159, 160, 0, 102, 0, 0, - 0, 0, 0, 0, 102, 162, 163, 0, 164, 101, - 0, 0, 166, 0, 0, 90, 101, 0, 0, 0, - 91, 0, 95, 0, 167, 90, 168, 97, 0, 29, - 30, 0, 0, 0, 32, 170, 0, 0, 97, 0, - 91, 0, 91, 171, 0, 0, 103, 0, 0, 0, - 0, 0, 40, 41, 0, 0, 0, 239, 0, 0, - 241, 0, 0, 0, 43, 313, 239, 317, 318, 0, - 322, 92, 326, 0, 330, 172, 333, 0, 336, 50, - 343, 0, 350, 374, 380, 0, 0, 0, 388, 0, - 91, 393, 0, 398, 91, 403, 54, 0, 0, 91, - 91, 57, 0, 92, 103, 97, 0, 0, 91, 91, - 0, 0, 0, 0, 427, 0, 0, 92, 0, 0, - 441, 0, 0, 0, 0, 0, 0, 0, 92, 91, - 0, 0, 0, 91, 0, 0, 0, 0, 0, 91, - 739, 0, 92, 92, 92, 92, 92, 104, 0, 273, - 0, 5, 0, 0, 0, 243, 0, 159, 160, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 162, 163, - 0, 164, 0, 0, 0, 166, 91, 0, 103, 0, - 0, 92, 0, 0, 0, 103, 91, 167, 0, 168, - 0, 0, 29, 30, 0, 0, 0, 32, 170, 0, - 95, 92, 0, 92, 0, 104, 171, 0, 0, 112, - 0, 0, 0, 0, 0, 40, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 495, 496, 43, 0, 497, - 498, 499, 95, 0, 0, 0, 0, 0, 172, 99, - 0, 0, 50, 0, 0, 0, 95, 500, 501, 0, - 99, 92, 0, 0, 0, 92, 502, 95, 0, 54, - 92, 92, 0, 0, 0, 0, 0, 112, 0, 92, - 92, 95, 95, 95, 95, 95, 0, 0, 0, 104, - 0, 0, 0, 97, 0, 0, 104, 0, 0, 0, - 92, 0, 0, 0, 92, 0, 0, 0, 0, 0, - 92, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 95, 0, 0, 0, 0, 97, 0, 99, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 0, 0, 97, - 95, 0, 95, 102, 101, 0, 0, 92, 0, 0, - 97, 112, 0, 0, 0, 101, 0, 92, 112, 0, - 0, 0, 241, 0, 97, 97, 97, 97, 97, 0, - 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 55, 56, 0, 57, 0, + 58, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 622, 7, 8, 279, 9, 156, 157, 12, + 158, 0, 0, 0, 0, 14, 15, 16, 159, 160, + 0, 161, 0, 0, 162, 163, 0, 0, 638, 22, + 23, 0, 0, 0, 0, 643, 0, 164, 649, 165, + 650, 0, 29, 30, 0, 0, 166, 32, 167, 0, + 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, + 0, 0, 0, 38, 0, 40, 41, 0, 0, 0, + 0, 0, 679, 680, 0, 488, 489, 43, 0, 490, + 491, 492, 0, 688, 0, 0, 0, 0, 169, 47, + 693, 694, 50, 0, 699, 53, 702, 493, 494, 0, + 0, 0, 170, 171, 0, 0, 495, 681, 0, 54, + 570, 0, 0, 676, 57, 0, 58, 0, 59, 0, + 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, + 0, 704, 728, 0, 0, 0, 708, 0, 0, 0, + 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, + 0, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 0, 718, 0, 0, 265, 0, 778, 0, 731, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 7, 8, 0, 9, 156, 157, 12, 158, 0, 0, + 0, 0, 14, 15, 16, 159, 160, 757, 161, 0, + 0, 162, 163, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 0, 164, 0, 165, 0, 0, 29, + 30, 0, 0, 166, 32, 167, 754, 755, 0, 0, + 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, + 38, 0, 40, 41, 0, 0, 472, 0, 0, 0, + 783, 0, 0, 192, 43, 0, 0, 0, 0, 0, + 788, 0, 217, 218, 0, 169, 47, 0, 0, 50, + 801, 0, 53, 569, 0, 0, 0, 0, 0, 170, + 171, 0, 472, 0, 0, 784, 54, 570, 0, 786, + 787, 57, 275, 58, 0, 59, 0, 277, 0, 0, + 0, 794, 0, 704, 816, 317, 818, 0, 802, 794, + 0, 0, 0, 0, 809, 718, 827, 0, 0, 830, + 832, 833, 0, 0, 0, 836, 0, 0, 839, -311, + -311, 318, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -311, + -311, -311, -311, 0, -311, -311, 858, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -259, -259, -259, + -259, -259, -259, -259, -259, -259, 0, 463, 0, 0, + -259, -259, -259, -259, -259, -259, -259, -259, 470, 0, + 860, 861, 0, 885, 0, 476, 0, 0, 0, 0, + 890, 0, 478, 893, 0, 0, 0, 0, 0, 718, + 479, 480, 0, 0, 0, 881, 0, 881, -311, 488, + 294, 904, 905, 490, 491, 492, 0, 881, 0, 881, + 0, 5, 0, 916, 0, 0, 0, 156, 157, 0, + 0, 493, 494, 0, 0, 0, 0, 0, 159, 160, + 495, 161, 902, 0, 0, 163, 0, 906, 0, 0, + 935, 0, 912, 0, 0, 802, 0, 164, 0, 165, + 0, 0, 29, 30, 0, 948, 0, 32, 167, 0, + 0, 0, 0, 0, 953, 954, 168, 0, 957, 0, + 529, 959, 960, 0, 0, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 0, 0, 0, 43, 0, 949, + 0, 0, 952, 0, 567, 0, 0, 0, 169, 956, + 488, 489, 50, 0, 490, 491, 492, 0, 0, 974, + 0, 0, 0, 581, 583, 0, 0, 587, 0, 0, + 859, 0, 493, 494, 588, 0, 0, 0, 589, 970, + 0, 495, 0, 590, 0, 0, 0, 591, 0, 0, + 0, 592, 0, 0, 0, 593, 0, 0, 594, 0, + 0, 0, 595, 0, 0, 0, 0, 0, 0, 597, + 0, 0, 0, 989, 990, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 0, 0, 0, 0, 55, + 56, 0, 0, 0, 0, 599, 0, 600, 0, 0, + 601, 0, 0, 602, 0, 0, 0, 0, 603, 0, + 0, 0, 5, 605, 0, 0, 0, 0, 156, 157, + 606, 607, 608, 609, 610, 611, 612, 0, 0, 159, + 160, 0, 161, 0, 614, 0, 163, 615, 0, 0, + 0, 0, 0, 616, 0, 617, 0, 618, 164, 619, + 165, 620, 0, 29, 30, 0, 0, 0, 32, 167, + 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, + 0, 0, 0, 0, 0, 0, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 0, 0, 0, 43, 544, + 545, 546, 547, 548, 549, 550, 551, 0, 0, 169, + 0, 0, 0, 50, 0, 0, 0, 878, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 673, 674, 0, 678, 0, 0, 295, + 298, 0, 306, 0, 310, 0, 0, 315, 0, 319, + 0, 323, 689, 0, 0, 329, 0, 0, 417, 343, + 0, 0, 0, 376, 379, 0, 0, 0, 386, 0, + 391, 0, 396, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -320, -320, 418, 0, 416, 0, 0, 0, + 0, 420, 0, 192, 0, 725, 0, 434, 0, 0, + 0, 0, -320, -320, -320, -320, 0, -320, -320, 0, + 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, + -291, -291, -291, -291, -291, -291, -291, -291, -291, 0, + 0, 0, 0, -291, -291, -291, -291, -291, -291, -291, + -291, 0, 0, 0, 0, 0, 295, 298, 306, 310, + 315, 319, 323, 751, 329, 0, 343, 376, 379, 0, + 386, 756, 391, 396, -617, -617, -617, 0, 0, 762, + 0, -320, 0, 294, 767, 416, 0, 0, 0, 420, + 0, 434, 775, 0, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 0, 295, 298, 306, 310, + 315, 319, 323, 0, 329, 0, 343, 376, 379, 0, + 386, 391, 396, 0, 0, 416, 420, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 95, 0, 0, 0, 95, 0, 0, 0, 0, 95, - 95, 0, 0, 97, 0, 0, 0, 0, 95, 95, - 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 97, 0, 97, 0, 0, 0, 95, - 0, 0, 0, 95, 0, 0, 0, 0, 0, 95, - 0, 0, 0, 5, 0, 0, 0, 0, 0, 159, - 160, 0, 0, 0, 0, 0, 0, 243, 0, 0, - 162, 163, 0, 164, 0, 0, 243, 166, 0, 0, - 0, 0, 0, 97, 0, 0, 95, 97, 0, 167, - 0, 168, 97, 97, 29, 30, 95, 0, 0, 32, - 170, 97, 97, 0, 0, 0, 0, 0, 171, 0, - 0, 0, 0, 0, 0, 99, 0, 0, 5, 0, - 0, 0, 97, 103, 159, 160, 97, 0, 0, 804, - 0, 0, 97, 0, 103, 162, 163, 0, 164, 0, - 172, 0, 166, 0, 50, 0, 0, 99, 0, 0, - 0, 0, 0, 0, 167, 0, 168, 0, 0, 29, - 30, 99, 805, 0, 32, 170, 0, 0, 0, 97, - 0, 0, 99, 171, 0, 0, 0, 0, 0, 97, - 0, 0, 0, 0, 0, 0, 99, 99, 99, 99, - 99, 0, 0, 0, 43, 0, 0, 0, 102, 0, - 0, 103, 0, 0, 0, 172, 0, 0, 0, 50, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 99, 0, 871, 0, 0, - 102, 0, 0, 0, 0, 104, 0, 0, 0, 0, - 0, 0, 101, 0, 102, 99, 0, 99, 0, 0, - 0, 0, 0, 0, 0, 102, 101, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 0, 102, - 102, 102, 102, 102, 497, 498, 499, 0, 0, 0, - 0, 101, 101, 101, 101, 101, 112, 0, 0, 0, - 0, 0, 500, 501, 0, 99, 0, 112, 0, 99, - 0, 502, 104, 0, 99, 99, 0, 0, 102, 0, - 0, 0, 0, 99, 99, 0, 0, 0, 0, 5, - 101, 0, 0, 0, 0, 159, 160, 0, 102, 0, - 102, 0, 0, 0, 99, 0, 162, 163, 99, 164, - 101, 0, 101, 166, 99, 0, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 167, 0, 168, 0, 0, - 29, 30, 0, 0, 112, 32, 170, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 0, 0, 102, 103, - 0, 99, 102, 0, 0, 0, 0, 102, 102, 0, - 101, 99, 0, 0, 101, 804, 102, 102, 0, 101, - 101, 0, 0, 0, 0, 0, 172, 0, 101, 101, - 50, 103, 0, 0, 0, 0, 0, 102, 0, 0, - 0, 102, 0, 0, 0, 103, 0, 102, 920, 101, - 0, 0, 0, 101, 0, 0, 103, 0, 0, 101, - 0, 5, 0, 0, 0, 0, 0, 159, 160, 0, - 103, 103, 103, 103, 103, 0, 0, 0, 162, 163, - 0, 164, 0, 0, 102, 166, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 0, 101, 167, 0, 168, - 104, 0, 29, 30, 0, 0, 101, 32, 170, 103, - 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 103, 104, 0, 0, 0, 0, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 104, 0, 172, 0, - 0, 0, 50, 0, 0, 0, 0, 104, 0, 0, - 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, - 960, 104, 104, 104, 104, 104, 0, 0, 0, 103, - 495, 496, 0, 103, 497, 498, 499, 0, 103, 103, - 0, 0, 0, 0, 112, 0, 0, 103, 103, 0, - 0, 0, 500, 501, 0, 0, 0, 0, 112, 0, - 104, 502, 0, 0, 0, 0, 0, 0, 103, 112, - 0, 0, 103, 0, 0, 0, 0, 0, 103, 0, - 104, 0, 104, 112, 112, 112, 112, 112, 146, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 103, 0, 0, 0, 55, - 56, 0, 112, 0, 0, 103, 0, 0, 0, 0, - 104, 0, 0, 0, 104, 0, 0, 0, 0, 104, - 104, 0, 112, 0, 112, 0, 294, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 0, 0, 0, 104, 0, 0, 0, 0, 0, 104, - 0, 0, 0, 0, 0, 0, 0, 212, 214, 0, - 0, 0, 112, 0, 0, 0, 112, 0, 224, 0, - 0, 112, 112, 0, 0, 0, 0, 254, 0, 0, - 112, 112, 259, 0, 260, 262, 104, 0, 0, 268, - 0, 0, 0, 0, 0, 0, 104, 0, 0, 285, - 0, 112, 0, 0, 0, 112, 477, 0, 305, 0, - 305, 112, 305, 305, 0, 305, 0, 305, 0, 305, - 0, 305, 0, 305, 0, 305, 0, 305, 354, 305, - 0, 0, 0, 305, 0, 0, 305, 5, 305, 0, - 305, 0, 0, 159, 160, 0, 0, 0, 112, 0, - 0, 0, 0, 0, 162, 163, 0, 164, 112, 305, - 0, 166, 0, 0, 0, 305, 0, 0, 0, 519, - 0, 0, 0, 167, 0, 168, 0, 525, 29, 30, - 0, 0, 0, 32, 170, 0, 0, 0, 0, 0, - 0, 0, 171, 478, 478, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 0, 0, - 0, 0, 0, 43, 0, 486, 543, 0, 0, 565, - 0, 0, 0, 0, 172, 0, 0, 0, 50, 0, - 0, 0, 568, 0, 583, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 0, 594, 0, 0, 553, 554, - 555, 556, 557, 558, 559, 560, 478, 0, 0, 0, - 0, 0, 526, 5, 0, 7, 8, 0, 9, 159, - 160, 12, 161, 0, 0, 0, 0, 14, 15, 16, - 162, 163, 917, 164, 0, 0, 165, 166, 533, 526, - 478, 22, 23, 0, 0, 0, 0, 0, 0, 167, - 0, 168, 0, 0, 29, 30, 569, 574, 169, 32, - 170, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 584, 0, 0, 0, 0, 38, 0, 40, 41, 0, - 0, 0, 0, 0, 0, 595, 596, 0, 0, 43, - 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, - 172, 47, 0, 0, 50, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 173, 174, -322, -322, 395, 0, - 0, 54, 572, 0, 0, 573, 57, 0, 58, 0, - 59, 0, 0, 0, 0, 0, -322, -322, -322, -322, - 0, -322, -322, 0, 0, 0, 0, 0, 0, 639, - 0, 0, 0, 0, -272, -272, -272, -272, -272, -272, - -272, -272, -272, 0, 0, 0, 0, -272, -272, -272, - -272, -272, -272, -272, -272, 655, 0, 0, 0, 0, - 0, 0, 660, 0, 0, 666, 495, 667, 0, 0, - 497, 498, 499, 0, 0, 0, 671, 0, 0, 0, - 675, 396, 0, 285, 0, -322, 0, 300, 500, 501, - 0, 0, 0, 0, 0, 0, 0, 502, 693, 694, - 695, 0, 0, 698, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, - 711, 712, 0, 0, 717, 0, 720, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 0, 0, 731, 0, 0, 0, 0, 5, 0, - 7, 8, 0, 9, 159, 160, 12, 161, 745, 0, - 0, 0, 14, 15, 16, 162, 163, 0, 164, 0, - 0, 165, 166, 0, 0, 0, 22, 23, 699, 0, - 0, 0, 0, 0, 167, 0, 168, 0, 0, 29, - 30, 0, 0, 169, 32, 170, 0, 0, 0, 574, - 0, 0, 722, 171, 0, 0, 0, 726, 0, 0, - 38, 0, 40, 41, 0, 0, 727, 0, 0, 0, - 0, 0, 0, 0, 43, 768, 0, 0, 0, 0, - 0, 0, 735, 574, 0, 172, 47, 0, 0, 50, - 0, 268, 53, 590, 0, 0, 0, 0, 0, 173, - 174, 0, 0, 0, 0, 0, 54, 280, 0, 0, - 0, 57, 0, 58, 0, 59, 0, 0, 0, 0, - 0, 195, 0, 0, 0, 0, 5, 0, 0, 795, - 219, 220, 159, 160, 0, 0, 0, 0, 0, 800, - 0, 0, 0, 162, 163, 0, 164, 0, 0, 813, - 166, 0, 0, 0, 0, 765, 766, 0, 0, 0, - 278, 0, 167, 0, 168, 0, 0, 29, 30, 0, - 0, 0, 32, 170, 0, 478, 827, 0, 829, 0, - 0, 171, 0, 0, 0, 0, 0, 0, 838, 0, - 0, 841, 843, 844, 0, 0, 0, 847, 0, 0, - 850, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 478, 172, 0, 796, 0, 50, 0, 798, - 799, 820, 0, 0, 0, 0, 0, 0, 0, 870, - 0, 806, 0, 722, 0, 0, 0, 0, 814, 806, - 0, 0, 5, 0, 821, 469, 0, 0, 159, 160, - 0, 574, 0, 0, 0, 0, 476, 0, 0, 162, - 163, 0, 164, 0, 0, 896, 166, 0, 0, 0, - 0, 0, 901, 483, 0, 904, 0, 0, 167, 0, - 168, 484, 485, 29, 30, 0, 0, 0, 32, 170, - 0, 0, 0, 0, 913, 914, 0, 171, 0, 0, - 0, 0, 0, 0, 0, 0, 925, 0, 0, 0, - 0, 0, 0, 0, 872, 873, 0, 0, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 0, 0, 944, 50, 0, 0, 0, 889, 892, 0, - 892, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 892, 0, 892, 0, 962, 963, 0, 0, 966, 0, - 538, 968, 969, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 195, 911, 0, 0, 0, - 0, 915, 0, 0, 0, 582, 921, 0, 0, 814, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 983, - 0, 0, 0, 0, 0, 0, 0, 598, 600, 0, - 0, 604, 0, 0, 0, 0, 0, 0, 605, 0, - 0, 0, 606, 0, 0, 0, 0, 607, 0, 0, - 958, 608, 0, 961, 0, 609, 0, 0, 0, 610, - 965, 0, 611, 0, 0, 0, 612, 0, 0, 0, - 0, 0, 0, 614, 0, 0, 0, 0, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 0, 0, 0, - 979, 553, 554, 555, 556, 557, 558, 559, 560, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, - 0, 617, 0, 0, 618, 0, 0, 619, 0, 0, - 0, 0, 620, 0, 998, 999, 0, 622, 0, 323, - 0, 661, 0, 0, 623, 624, 625, 626, 627, 628, - 629, 0, 0, 0, 0, 0, 0, 0, 631, 0, - 0, 632, 0, -310, -310, 324, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 637, 0, 0, 0, 0, - 0, 0, 0, -310, -310, -310, -310, 0, -310, -310, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -258, -258, -258, -258, -258, -258, -258, -258, -258, - 0, 0, 0, 0, -258, -258, -258, -258, -258, -258, - -258, -258, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 301, 304, -310, 312, 300, 316, 0, 0, 321, 0, - 325, 0, 329, 0, 0, 0, 335, 495, 496, 707, - 349, 497, 498, 499, 382, 385, 0, 195, 0, 392, - 0, 397, 0, 402, 0, 0, 0, 0, 947, 500, - 501, 0, 0, 0, 0, 0, 0, 422, 502, 0, - 0, 0, 426, 0, 0, 0, 0, 0, 440, 0, - 0, 195, 0, 0, 0, 0, 0, 0, 742, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 0, 0, - 0, 0, 553, 554, 555, 556, 557, 558, 559, 560, - 600, 0, 0, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 0, 0, 0, 0, 0, 0, 0, 0, - 301, 304, 312, 316, 321, 325, 329, 0, 335, 0, - 349, 382, 385, 0, 392, 0, 397, 402, 762, 0, - 0, 0, 0, 0, 0, 0, 767, 0, 0, 422, - 0, 0, 0, 426, 773, 440, 0, 0, 0, 778, - 0, 335, 0, 0, 0, 0, 0, 0, 0, 301, - 304, 312, 316, 321, 325, 329, 0, 335, 0, 349, - 382, 385, 0, 392, 397, 402, 0, 5, 422, 426, - 440, 0, 0, 159, 160, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 162, 163, 0, 164, 0, 0, - 0, 166, 0, 0, 349, 382, 0, 397, 426, 0, - 0, 0, 0, 167, 0, 168, 0, 0, 29, 30, - 0, 818, 0, 32, 170, 0, 0, 0, 0, 195, - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 600, 0, 0, 0, 0, - 0, 839, 0, 43, 0, 0, 0, 846, 0, 0, - 0, 0, 0, 851, 172, 0, 0, 0, 50, 0, - 853, 0, 964, 0, 0, 0, 0, 0, 0, 0, - 861, 0, 0, 0, 0, 0, 0, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 0, 0, 0, 329, - 553, 554, 555, 556, 557, 558, 559, 560, 0, 0, - 0, 885, 0, 0, 0, 0, -3, 289, 0, -27, - -27, 5, 6, 7, 8, 0, 9, 10, 11, 12, - 13, 0, 0, 0, 952, 14, 15, 16, 17, 18, - 19, 20, 908, 0, 0, 21, 0, 0, 0, 22, - 23, 910, 24, 0, 0, 0, 0, 25, 26, 27, - 28, 0, 29, 30, 0, 0, 31, 32, 33, 0, - 927, 0, 0, 0, 0, 0, 34, 35, 36, 0, - 0, 37, 0, 38, 39, 40, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 945, 42, 43, 44, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 0, 55, 56, 0, 57, 972, 58, 450, 59, -110, - -110, 5, 6, 7, 8, 0, 9, 10, 451, 12, - 13, -502, -502, -502, -502, 14, 15, 16, 17, 18, - 452, 453, 0, 0, 0, 21, 0, 0, 0, 22, - 23, 0, 24, -502, -502, -502, -502, 25, 26, 27, - 28, -502, 29, 30, 0, 0, 31, 32, 33, 0, - 0, 0, 0, 0, 0, 0, 34, 35, 36, -502, - -502, 37, 0, 38, 39, 40, 41, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 42, 43, 44, 45, - 382, 0, 0, 397, 0, 0, 0, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, - 0, 55, 56, 0, 57, 0, 58, 0, 59, 0, - 450, 0, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -536, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, -536, -536, -536, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 382, 54, 397, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -537, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, -537, -537, -537, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, -501, -501, -501, -501, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, -501, -501, -501, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -585, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, -585, -585, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -586, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, -586, -586, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, -501, -501, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, -501, -501, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, -501, -501, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, -501, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, -501, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, -501, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, 888, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, -501, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 4, 59, -27, -27, 5, 6, 7, 8, 0, 9, - 10, 11, 12, 13, 0, 0, 0, 0, 14, 15, - 16, 17, 18, 19, 20, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 450, 59, -110, -110, 5, 6, 7, 8, 0, 9, - 10, 451, 12, 13, 0, 0, 0, 0, 14, 15, - 16, 17, 18, 452, 453, 0, 0, 0, 21, 0, - 0, 0, 22, 23, 0, 24, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 29, 30, 0, 0, 31, - 32, 33, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 47, 48, 49, 50, 51, 52, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 5, 59, 7, 8, 0, 9, 159, 160, 12, 161, - 0, 0, 0, 0, 14, 15, 16, 162, 163, 0, - 164, 0, 0, 165, 166, 0, 0, 0, 22, 23, - 0, 0, 0, 0, 0, 0, 167, 0, 168, 0, - 0, 29, 30, 0, 0, 169, 32, 170, 0, 0, - 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, - 0, 0, 38, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 47, 0, - 0, 50, 0, 0, 53, 599, 0, 0, 0, 0, - 0, 173, 174, 0, 0, 0, 0, 0, 54, 175, - 0, 0, 0, 57, 0, 58, 5, 59, 7, 8, - 0, 9, 159, 160, 12, 161, 0, 0, 0, 0, - 14, 15, 16, 162, 163, 0, 164, 0, 0, 165, - 166, 0, 0, 0, 22, 23, 0, 0, 0, 0, - 0, 0, 167, 0, 168, 0, 0, 29, 30, 0, - 0, 169, 32, 170, 0, 0, 0, 0, 0, 0, - 0, 171, 0, 0, 0, 0, 0, 0, 38, 0, + 343, 376, 0, 391, 420, 806, 0, 192, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, + 8, 0, 9, 156, 157, 12, 158, 0, 0, 0, + 0, 14, 15, 16, 159, 160, 583, 161, 0, 0, + 162, 163, 828, 0, 0, 22, 23, 0, 835, 0, + 0, 0, 0, 164, 840, 165, 0, 0, 29, 30, + 0, 842, 166, 32, 167, 0, 0, 0, 0, 0, + 849, 0, 168, 0, 0, 0, 0, 0, 0, 38, + 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 323, 43, 0, 0, 0, 0, 0, 0, + 0, 192, 874, 0, 169, 47, 0, 0, 50, 0, + 0, 53, 582, 0, 0, 0, 0, 0, 170, 171, + 0, 0, 0, 0, 0, 54, 172, 0, 0, 0, + 57, 0, 58, 897, 59, 0, 0, 0, 0, 0, + 0, 901, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 0, -110, -110, 5, 6, 7, 8, + 918, 9, 10, 445, 12, 13, -504, -504, -504, -504, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 936, 24, -504, -504, + -504, -504, 25, 26, 27, 28, -504, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, -504, -504, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 963, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -531, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, -531, -531, + -531, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 47, 0, 0, 50, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 173, 174, 0, - 0, 0, 0, 0, 54, 175, 0, 0, 0, 57, - 0, 58, 5, 59, 7, 8, 0, 9, 159, 160, - 12, 161, 0, 0, 0, 0, 14, 15, 16, 162, - 163, 0, 164, 0, 0, 165, 166, 0, 0, 0, - 22, 23, 0, 0, 0, 0, 0, 0, 167, 0, - 168, 0, 0, 29, 30, 0, 0, 169, 32, 170, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -532, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, -532, -532, + -532, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 420, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 376, 0, 0, 391, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, -503, -503, -503, -503, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, -503, -503, + -503, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -580, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, -580, -580, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -581, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, -581, -581, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, -503, -503, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, -503, + -503, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, -503, -503, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, -503, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, -503, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, -503, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, 877, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, -503, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 4, 59, -27, -27, 5, 6, 7, 8, + 0, 9, 10, 11, 12, 13, 0, 0, 0, 0, + 14, 15, 16, 17, 18, 19, 20, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 444, 59, -110, -110, 5, 6, 7, 8, + 0, 9, 10, 445, 12, 13, 0, 0, 0, 0, + 14, 15, 16, 17, 18, 446, 447, 0, 0, 0, + 21, 0, 0, 0, 22, 23, 0, 24, 0, 0, + 0, 0, 25, 26, 27, 28, 0, 29, 30, 0, + 0, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 34, 35, 36, 0, 0, 37, 0, 38, 39, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 43, 44, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 5, 59, 7, 8, 0, 9, 156, 157, + 12, 158, 0, 0, 0, 0, 14, 15, 16, 159, + 160, 0, 161, 0, 0, 162, 163, 0, 0, 0, + 22, 23, 0, 0, 0, 0, 0, 0, 164, 0, + 165, 0, 0, 29, 30, 0, 0, 166, 32, 167, + 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 38, 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 47, 0, 0, 50, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 173, 174, 0, 0, 0, 0, 0, - 54, 280, 0, 0, 0, 57, 0, 58, 5, 59, - 7, 8, 0, 9, 159, 160, 12, 161, 0, 0, - 0, 0, 14, 15, 16, 162, 163, 0, 164, 0, - 0, 165, 166, 0, 0, 0, 22, 23, 0, 0, - 0, 0, 0, 0, 167, 0, 168, 0, 0, 29, - 30, 0, 0, 169, 32, 170, 0, 0, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 171, 0, 0, 0, 0, 0, + 54, 570, 0, 0, 717, 57, 0, 58, 5, 59, + 7, 8, 0, 9, 156, 157, 12, 158, 0, 0, + 0, 0, 14, 15, 16, 159, 160, 0, 161, 0, + 0, 162, 163, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 0, 164, 0, 165, 0, 0, 29, + 30, 0, 0, 166, 32, 167, 0, 0, 0, 0, + 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 38, 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 47, 0, 0, 50, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 173, - 174, 0, 0, 0, 0, 0, 54, 572, 0, 0, - 0, 57, 0, 58, 5, 59, 7, 8, 0, 9, - 159, 160, 12, 161, 0, 0, 0, 0, 14, 15, - 16, 162, 163, 0, 164, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 167, 0, 168, 0, 0, 29, 30, 0, 0, 169, - 32, 170, 0, 0, 0, 0, 0, 0, 0, 171, + 0, 0, 0, 0, 0, 169, 47, 0, 0, 50, + 0, 0, 53, 0, 0, 0, 0, 0, 0, 170, + 171, 0, 0, 0, 488, 489, 54, 172, 490, 491, + 492, 57, 0, 58, 5, 59, 7, 8, 0, 9, + 156, 157, 12, 158, 0, 938, 493, 494, 14, 15, + 16, 159, 160, 0, 161, 495, 0, 162, 163, 0, + 0, 0, 22, 23, 0, 0, 0, 0, 0, 0, + 164, 0, 165, 0, 0, 29, 30, 0, 0, 166, + 32, 167, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 38, 0, 40, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 47, 0, 0, 50, 0, 0, 53, 0, + 0, 169, 47, 0, 0, 50, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 170, 171, 0, 0, 0, + 488, 489, 54, 570, 490, 491, 492, 57, 0, 58, + 5, 59, 7, 8, 0, 9, 156, 157, 12, 158, + 0, 0, 493, 494, 14, 15, 16, 159, 160, 0, + 161, 495, 0, 0, 163, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 0, 165, 0, + 0, 29, 30, 0, 0, 166, 32, 167, 0, 0, + 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, + 0, 0, 38, 0, 40, 41, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 169, 47, 0, + 0, 50, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, + 0, 0, 0, 57, 0, 58, 5, 59, 7, 346, + 0, 347, 156, 157, 12, 158, 0, 0, 0, 0, + 14, 15, 16, 159, 160, 0, 161, 0, 0, 0, + 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 0, 165, 0, 0, 29, 30, 0, + 0, 0, 32, 167, 0, 0, 0, 0, 0, 0, + 328, 168, 0, 0, 0, 0, 0, 0, 38, 0, + 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 43, 0, -318, -318, 0, 0, 0, 0, + 0, 0, 0, 169, 47, 0, 0, 50, 0, 0, + 0, 0, 0, 0, -318, -318, -318, -318, 0, -318, + -318, 0, 0, 0, 54, 0, 0, 0, 0, 57, + 0, 58, -289, -289, -289, -289, -289, -289, -289, -289, + -289, 0, 383, 0, 0, -289, -289, -289, -289, -289, + -289, -289, -289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -321, -321, 384, 0, + 0, 0, 0, 0, 0, 0, -509, -509, 0, 0, + 0, 0, 0, -318, 0, 294, -321, -321, -321, -321, + 0, -321, -321, 0, 0, 0, 0, 0, 0, 0, + 0, 393, 0, 0, -269, -269, -269, -269, -269, -269, + -269, -269, -269, 0, 0, 0, 0, -269, -269, -269, + -269, -269, -269, -269, -269, -324, -324, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 57, 0, 58, - 5, 59, 7, 352, 0, 353, 159, 160, 12, 161, - 0, 0, 0, 0, 14, 15, 16, 162, 163, 0, - 164, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 167, 0, 168, 0, - 0, 29, 30, 0, 0, 0, 32, 170, 0, 0, - 0, 0, 0, 0, 423, 171, 0, 0, 0, 0, - 0, 0, 38, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, -319, -319, - 424, 0, 0, 0, 0, 0, 0, 172, 47, 0, - 0, 50, 0, 0, 0, 0, 0, 0, -319, -319, - -319, -319, 0, -319, -319, 0, 0, 0, 54, 0, - 0, 0, 0, 57, 0, 58, -290, -290, -290, -290, - -290, -290, -290, -290, -290, 0, 389, 0, 0, -290, - -290, -290, -290, -290, -290, -290, -290, 0, 0, 0, + 0, 0, 0, 0, 0, -324, -324, -324, -324, 0, + -324, -324, 0, 0, 0, -321, 0, 294, 0, 0, + 417, 0, 0, -276, -276, -276, -276, -276, -276, -276, + -276, -276, 0, 0, 0, 0, -276, -276, -276, -276, + -276, -276, -276, -276, -320, -320, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -320, -320, 390, 0, 0, 0, 0, 0, 0, 0, - -625, -625, -625, 0, 0, 0, 0, -319, 0, 300, - -320, -320, -320, -320, 0, -320, -320, 0, 0, 0, - 0, 0, 0, 0, 0, 399, 0, 0, -268, -268, - -268, -268, -268, -268, -268, -268, -268, 0, 0, 0, - 0, -268, -268, -268, -268, -268, -268, -268, -268, -323, - -323, 400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -323, - -323, -323, -323, 0, -323, -323, 0, 0, 0, -320, - 0, 300, 0, 0, 423, 0, 0, -275, -275, -275, - -275, -275, -275, -275, -275, -275, 0, 0, 0, 0, - -275, -275, -275, -275, -275, -275, -275, -275, -319, -319, - 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -319, -319, - -319, -319, 0, -319, -319, 0, 0, 0, -323, 0, - 300, 0, 0, 334, 0, 0, -290, -290, -290, -290, - -290, -290, -290, -290, -290, 0, 0, 0, 0, -290, - -290, -290, -290, -290, -290, -290, -290, -317, -317, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -317, -317, -317, - -317, 0, -317, -317, 0, 0, 0, -319, 0, 300, - 0, 0, 0, 0, 0, -288, -288, -288, -288, -288, - -288, -288, -288, -288, 0, 0, 0, 0, -288, -288, - -288, -288, -288, -288, -288, -288, 5, 0, 0, 0, - 0, 0, 159, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 162, 163, 0, 164, 0, 0, 0, - 166, 0, 0, 0, 0, 0, -317, 0, 300, 5, - 0, 0, 167, 0, 168, 159, 160, 29, 30, 0, - 0, 0, 32, 170, 0, 0, 162, 163, 0, 164, - 0, 171, 0, 166, 0, 0, 0, 0, 0, 0, - 40, 41, 0, 0, 0, 167, 0, 168, 0, 0, - 29, 30, 43, 0, 0, 32, 170, 0, 0, 0, - 0, 0, 0, 172, 171, 0, 0, 50, 0, 0, + 0, 0, 0, 0, -320, -320, -320, -320, 0, -320, + -320, 0, 0, 0, -324, 0, 294, 0, 0, 0, + 0, 0, -291, -291, -291, -291, -291, -291, -291, -291, + -291, 0, 0, 0, 0, -291, -291, -291, -291, -291, + -291, -291, -291, 5, 0, 0, 0, 0, 0, 156, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 160, 0, 161, 0, 0, 0, 163, 0, 0, + 0, 0, 0, -320, 0, 294, 0, 0, 0, 164, + 0, 165, 0, 0, 29, 30, 5, 0, 0, 32, + 167, 0, 156, 157, 0, 0, 0, 0, 168, 0, + 0, 0, 0, 159, 160, 0, 161, 0, 0, 0, + 163, 0, 0, 0, 0, 0, 0, 0, 0, 792, + 0, 0, 164, 0, 165, 0, 0, 29, 30, 5, + 169, 0, 32, 167, 50, 156, 157, 0, 0, 0, + 0, 168, 0, 0, 0, 0, 159, 160, 0, 161, + 0, 0, 911, 163, 0, 0, 0, 0, 0, 0, + 0, 0, 43, 0, 0, 164, 0, 165, 0, 0, + 29, 30, 5, 169, 0, 32, 167, 50, 156, 157, + 0, 0, 0, 0, 168, 0, 0, 0, 0, 159, + 160, 0, 161, 40, 41, 951, 163, 0, 0, 0, + 0, 0, 0, 0, 0, 43, 0, 0, 164, 0, + 165, 0, 0, 29, 30, 5, 169, 0, 32, 167, + 50, 156, 157, 0, 0, 0, 0, 168, 0, 0, + 0, 0, 159, 160, 0, 161, 0, 54, 0, 163, + 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, + 0, 164, 0, 165, 0, 0, 29, 30, 5, 169, + 0, 32, 167, 50, 156, 157, 0, 955, 0, 0, + 168, 0, 0, 0, 0, 159, 160, 0, 161, 40, + 41, 0, 163, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 0, 0, 164, 0, 165, 0, 0, 29, + 30, 0, 169, 0, 32, 167, 50, 307, 0, 311, + 312, 0, 316, 168, 320, 0, 324, 0, 327, 0, + 330, 0, 337, 0, 344, 368, 374, 0, 0, 0, + 382, 0, 0, 387, 43, 392, 0, 397, 0, 0, + 0, 0, 0, 0, 0, 169, 0, 0, 0, 50, + 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, + 0, 0, 435, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 0, 0, 0, 0, 544, 545, 546, 547, + 548, 549, 550, 551, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 0, 0, 0, 0, 544, 545, 546, + 547, 548, 549, 550, 551, 0, 0, 0, 0, 0, + 908, 0, 0, 0, 0, 0, 0, 0, 0, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 0, 0, + 0, 943, 544, 545, 546, 547, 548, 549, 550, 551, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 0, 0, 0, 0, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 0, 0, 0, 43, 553, 554, 555, 556, - 557, 558, 559, 560, 0, 0, 172, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 0, 0, 0, - 977, 553, 554, 555, 556, 557, 558, 559, 560, 0, + 551, 0, 0, 0, 0, 0, 968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 987 + 0, 0, 0, 0, 0, 0, 0, 978 }; static const yytype_int16 yycheck[] = { - 2, 57, 13, 134, 267, 284, 153, 154, 175, 542, - 141, 573, 447, 448, 467, 468, 723, 12, 13, 478, - 9, 728, 35, 602, 2, 9, 28, 9, 9, 9, - 35, 35, 17, 51, 2, 37, 0, 9, 9, 2, - 830, 35, 663, 9, 9, 117, 35, 49, 0, 121, - 840, 35, 842, 35, 35, 9, 35, 59, 60, 9, - 45, 17, 521, 35, 35, 9, 68, 526, 70, 35, - 72, 73, 117, 75, 533, 77, 121, 79, 9, 81, - 701, 83, 60, 85, 40, 87, 88, 89, 9, 35, - 2, 93, 60, 35, 96, 9, 98, 60, 100, 117, - 35, 118, 9, 35, 35, 9, 35, 35, 117, 9, - 569, 124, 121, 280, 35, 9, 28, 119, 122, 124, - 9, 35, 102, 125, 118, 37, 115, 116, 35, 33, - 34, 35, 134, 115, 116, 124, 537, 49, 9, 141, - 124, 35, 124, 124, 115, 116, 35, 59, 60, 53, - 54, 55, 56, 124, 58, 59, 68, 9, 70, 124, - 72, 73, 117, 75, 35, 77, 161, 79, 123, 81, - 124, 83, 879, 85, 124, 87, 88, 89, 757, 741, - 124, 93, 124, 35, 96, 2, 98, 118, 100, 124, - 723, 36, 124, 124, 115, 116, 124, 118, 35, 652, - 35, 115, 116, 124, 118, 115, 116, 119, 643, 35, - 124, 28, 9, 125, 216, 115, 116, 124, 122, 35, - 124, 117, 134, 119, 124, 10, 115, 116, 19, 141, - 124, 35, 49, 3, 4, 124, 66, 54, 35, 84, - 35, 86, 35, 60, 3, 4, 91, 35, 250, 35, - 95, 68, 35, 124, 99, 952, 267, 102, 103, 104, - 105, 115, 116, 35, 35, 17, 83, 112, 85, 9, - 87, 88, 124, 118, 35, 117, 539, 119, 280, 124, - 977, 118, 17, 118, 35, 122, 2, 124, 117, 124, - 987, 119, 118, 33, 34, 35, 122, 117, 124, 144, - 145, 124, 119, 38, 39, 102, 122, 117, 124, 119, - 573, 35, 28, 53, 54, 55, 56, 134, 58, 59, - 124, 118, 122, 118, 141, 118, 35, 122, 459, 124, - 118, 124, 118, 49, 122, 50, 124, 796, 124, 470, - 799, 124, 51, 66, 60, 115, 116, 806, 2, 57, - 122, 810, 124, 124, 19, 117, 115, 116, 118, 917, - 761, 123, 821, 124, 115, 116, 117, 118, 280, 118, - 215, 772, 88, 429, 28, 431, 17, 433, 223, 435, - 3, 4, 122, 51, 124, 786, 787, 788, 789, 790, - 115, 116, 106, 118, 952, 49, 37, 38, 106, 107, - 108, 109, 110, 115, 116, 572, 60, 35, 117, 118, - 117, 413, 119, 872, 873, 119, 875, 975, 134, 977, - 115, 116, 881, 118, 117, 141, 119, 35, 613, 987, - 615, 35, 57, 892, 88, 5, 621, 15, 16, 17, - 18, 11, 12, 117, 845, 17, 847, 115, 116, 117, - 267, 35, 22, 23, 35, 25, 915, 459, 118, 29, - 516, 117, 921, 280, 125, 37, 38, 39, 470, 748, - 122, 41, 124, 43, 35, 17, 46, 47, 741, 35, - 134, 51, 52, 108, 109, 110, 35, 141, 488, 489, - 60, 491, 492, 493, 895, 37, 38, 39, 899, 958, - 35, 413, 961, 904, 905, 35, 965, 15, 16, 17, - 18, 81, 913, 914, 117, 515, 119, 117, 665, 119, - 979, 35, 92, 115, 116, 117, 96, 19, 539, 2, - 115, 116, 117, 934, 117, 537, 119, 938, 115, 116, - 117, 115, 116, 944, 115, 116, 117, 459, 117, 117, - 120, 119, 831, 117, 117, 28, 119, 17, 470, 114, - 115, 116, 573, 9, 280, 115, 116, 117, 3, 4, - 572, 117, 124, 119, 9, 71, 49, 115, 116, 581, - 2, 118, 33, 34, 715, 118, 9, 60, 84, 85, - 86, 87, 88, 89, 90, 91, 57, 442, 33, 34, - 35, 117, 53, 54, 55, 56, 28, 58, 59, 9, - 33, 34, 668, 19, 117, 88, 119, 117, 53, 54, - 55, 56, 9, 58, 59, 537, 280, 49, 115, 116, - 53, 54, 55, 56, 118, 58, 59, 117, 60, 119, - 115, 116, 459, 17, 18, 3, 4, 37, 38, 63, - 64, 102, 118, 470, 124, 46, 119, 119, 117, 117, - 572, 134, 96, 81, 119, 117, 88, 102, 141, 581, - 119, 122, 119, 17, 119, 119, 3, 4, 60, 88, - 88, 88, 9, 118, 141, 88, 88, 122, 247, 124, - 88, 88, 88, 88, 825, 88, 88, 13, 13, 122, - 702, 124, 413, 12, 88, 13, 33, 34, 35, 12, - 12, 88, 134, 715, 154, 702, 9, 729, 250, 141, - 537, 249, 539, 521, 975, 876, 53, 54, 55, 56, - 741, 58, 59, 9, 467, 448, 991, 747, 581, 658, - 33, 34, 35, 459, -1, 747, -1, 658, -1, 539, - -1, -1, -1, -1, 470, 572, 573, 33, 34, 761, - 53, 54, 55, 56, 581, 58, 59, -1, 2, -1, - 772, -1, -1, -1, -1, 102, -1, 53, 54, 55, - 56, -1, 58, 59, 786, 787, 788, 789, 790, -1, - -1, 118, -1, -1, 28, 122, -1, 124, -1, -1, - -1, -1, -1, 715, 860, 459, -1, 280, -1, 102, - -1, -1, -1, -1, -1, 49, 470, -1, -1, -1, - -1, 537, -1, 825, -1, 118, 60, -1, -1, 122, - -1, 124, -1, -1, -1, 747, -1, -1, -1, -1, - -1, -1, -1, 845, -1, 847, 122, -1, 124, 761, - -1, -1, -1, -1, 88, -1, 572, -1, 280, -1, - 772, -1, -1, -1, -1, 581, -1, -1, -1, -1, - -1, -1, -1, -1, 786, 787, 788, 789, 790, -1, - -1, -1, -1, 537, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 895, -1, -1, -1, 899, 715, -1, - 134, 9, 904, 905, -1, -1, -1, 141, -1, -1, - -1, 913, 914, 825, 9, -1, -1, -1, 572, -1, - -1, -1, -1, -1, 741, 33, 34, 581, -1, -1, - 747, -1, 934, 845, -1, 847, 938, -1, 33, 34, - 35, -1, 944, -1, 761, 53, 54, 55, 56, -1, - 58, 59, -1, -1, -1, 772, -1, -1, 53, 54, - 55, 56, -1, 58, 59, -1, -1, -1, -1, 786, - 787, 788, 789, 790, -1, -1, -1, -1, -1, 981, - -1, -1, -1, 895, -1, -1, 459, 899, -1, 991, - -1, -1, 904, 905, -1, -1, -1, 470, -1, 715, - -1, 913, 914, -1, -1, -1, -1, 102, 825, -1, - -1, -1, -1, -1, 122, -1, 124, -1, -1, -1, - -1, -1, 934, 118, -1, -1, 938, 122, 845, 124, - 847, 747, 944, 2, -1, -1, -1, 459, -1, -1, - -1, -1, -1, -1, -1, 761, 280, -1, 470, -1, - -1, -1, -1, -1, -1, -1, 772, -1, -1, 28, - -1, 715, -1, -1, 537, -1, -1, -1, -1, 981, - 786, 787, 788, 789, 790, -1, -1, -1, 895, 991, - 49, -1, 899, -1, -1, -1, -1, 904, 905, -1, - -1, 60, -1, 747, -1, -1, 913, 914, -1, 572, - -1, -1, -1, -1, -1, -1, -1, 761, 581, 825, - -1, -1, -1, -1, -1, 537, -1, 934, 772, 88, - -1, 938, -1, -1, -1, -1, -1, 944, -1, 845, - -1, 847, 786, 787, 788, 789, 790, 2, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, - 572, -1, -1, -1, -1, 33, 34, -1, -1, 581, - -1, -1, -1, 28, 981, 134, -1, -1, -1, -1, - -1, 825, 141, -1, 991, 53, 54, 55, 56, 895, - 58, 59, -1, 899, 49, -1, -1, -1, 904, 905, - -1, 845, -1, 847, -1, 60, -1, 913, 914, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 934, -1, - -1, -1, 938, -1, -1, 459, -1, -1, 944, -1, - -1, -1, 33, 34, 35, -1, 470, -1, -1, -1, - -1, 895, 715, -1, 122, 899, -1, -1, -1, -1, - 904, 905, 53, 54, 55, 56, -1, 58, 59, 913, - 914, -1, -1, -1, -1, 981, -1, -1, -1, 134, - -1, -1, 2, -1, 747, 991, 141, -1, -1, -1, - 934, -1, -1, -1, 938, -1, -1, -1, 761, -1, - 944, -1, -1, 715, -1, -1, -1, -1, 28, 772, - -1, -1, -1, 537, -1, -1, -1, -1, -1, -1, - -1, 280, -1, 786, 787, 788, 789, 790, -1, 49, - -1, 122, -1, 2, -1, 747, -1, 981, -1, -1, - 60, -1, -1, -1, -1, -1, -1, 991, 572, 761, - -1, -1, -1, -1, -1, -1, -1, 581, -1, 28, - 772, 9, 825, -1, -1, -1, -1, -1, 88, -1, - -1, -1, -1, -1, 786, 787, 788, 789, 790, -1, - 49, -1, 845, -1, 847, 33, 34, 35, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, -1, 9, - -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, - 58, 59, -1, 825, 134, -1, -1, -1, -1, 88, - -1, 141, -1, 33, 34, 280, -1, -1, -1, -1, - -1, -1, 895, 845, -1, 847, 899, -1, -1, -1, - -1, 904, 905, 53, 54, 55, 56, -1, 58, 59, - 913, 914, -1, -1, 102, -1, -1, -1, -1, -1, - 9, -1, -1, -1, -1, 134, -1, -1, -1, -1, - 118, 934, 141, -1, 122, 938, 124, -1, -1, -1, - -1, 944, -1, 895, 33, 34, 35, 899, -1, -1, - -1, 715, 904, 905, 2, -1, -1, -1, -1, -1, - 459, 913, 914, -1, 53, 54, 55, 56, -1, 58, - 59, 470, 122, -1, 124, -1, -1, -1, 981, -1, - 28, -1, 934, 747, -1, -1, 938, -1, 991, -1, - -1, -1, 944, -1, -1, -1, -1, 761, -1, -1, - -1, 49, -1, -1, -1, 2, -1, -1, 772, -1, - -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, - 280, -1, 786, 787, 788, 789, 790, -1, -1, 981, - -1, 28, -1, 122, -1, 124, -1, -1, 537, 991, - -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, - -1, -1, 49, -1, 9, -1, -1, -1, -1, -1, - -1, 825, -1, 60, 459, -1, -1, -1, -1, 33, - 34, 280, -1, 572, -1, 470, -1, -1, 33, 34, - 35, 845, 581, 847, -1, -1, 134, -1, -1, 53, - 54, 55, 56, 141, 58, 59, -1, -1, 53, 54, - 55, 56, -1, 58, 59, -1, -1, 71, 72, 73, - 74, 75, 76, 77, 78, 79, -1, -1, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, - -1, 895, -1, -1, -1, 899, -1, 134, -1, -1, - 904, 905, 537, -1, 141, -1, -1, 102, -1, 913, - 914, 115, 116, -1, -1, -1, -1, -1, 122, 9, - 124, -1, -1, 118, -1, -1, 2, 122, -1, 124, - 934, -1, -1, -1, 938, -1, -1, 572, -1, -1, - 944, -1, -1, 33, 34, 35, 581, -1, -1, -1, - -1, -1, 28, -1, 9, -1, -1, -1, -1, 459, - -1, -1, -1, 53, 54, 55, 56, -1, 58, 59, - 470, -1, -1, 49, -1, -1, 715, 981, 33, 34, - 35, -1, -1, -1, 60, -1, -1, 991, -1, -1, - -1, -1, 280, -1, -1, -1, -1, -1, 53, 54, - 55, 56, -1, 58, 59, -1, -1, -1, 747, -1, - 459, -1, 102, -1, -1, -1, -1, -1, -1, -1, - -1, 470, 761, -1, -1, -1, -1, -1, 118, 9, - -1, -1, 122, 772, 124, -1, -1, 537, -1, -1, - -1, -1, -1, 280, -1, -1, -1, 786, 787, 788, - 789, 790, -1, 33, 34, 35, -1, -1, 134, -1, - -1, -1, -1, 118, -1, 141, -1, 122, -1, 124, - 9, -1, 572, 53, 54, 55, 56, -1, 58, 59, - 715, 581, -1, -1, -1, -1, 825, 2, 537, -1, - -1, -1, -1, -1, 33, 34, 35, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 845, -1, 847, -1, - -1, -1, 747, 28, 53, 54, 55, 56, -1, 58, - 59, -1, -1, 572, -1, -1, 761, -1, -1, -1, - -1, -1, 581, -1, 49, -1, -1, 772, 118, -1, - -1, -1, 122, -1, 124, 60, -1, -1, -1, -1, - -1, 786, 787, 788, 789, 790, 895, -1, -1, -1, - 899, -1, -1, -1, -1, 904, 905, -1, -1, -1, - -1, 459, -1, -1, 913, 914, -1, -1, -1, -1, - -1, -1, 470, 122, -1, 124, -1, -1, -1, -1, - 825, -1, -1, -1, -1, 934, -1, -1, -1, 938, - -1, -1, -1, -1, 280, 944, -1, -1, -1, -1, - 845, -1, 847, -1, -1, 715, -1, -1, -1, 134, - -1, -1, 459, -1, -1, -1, 141, -1, -1, -1, - -1, -1, -1, 470, -1, -1, -1, -1, -1, -1, - -1, -1, 981, -1, -1, -1, -1, 747, 2, 537, - -1, -1, 991, -1, -1, -1, -1, -1, -1, -1, - 895, 761, -1, -1, 899, -1, 715, -1, -1, 904, - 905, -1, 772, -1, 28, -1, -1, -1, 913, 914, - -1, -1, -1, -1, 572, -1, 786, 787, 788, 789, - 790, -1, -1, 581, -1, 49, -1, -1, 747, 934, - 537, -1, -1, 938, 9, -1, 60, -1, -1, 944, - -1, -1, 761, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 772, -1, 825, -1, -1, 33, 34, - 35, -1, -1, -1, -1, 572, -1, 786, 787, 788, - 789, 790, -1, -1, 581, 845, 981, 847, 53, 54, - 55, 56, -1, 58, 59, -1, 991, -1, -1, -1, - -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 825, 2, -1, -1, - 134, -1, -1, 459, -1, -1, -1, 141, -1, -1, - -1, -1, -1, -1, 470, 895, 845, -1, 847, 899, - -1, -1, -1, 28, 904, 905, -1, -1, -1, -1, - -1, -1, -1, 913, 914, -1, -1, 122, -1, 124, - -1, -1, -1, -1, 49, -1, -1, 715, -1, -1, - -1, -1, -1, -1, 934, 60, -1, -1, 938, -1, - -1, -1, -1, -1, 944, -1, 895, -1, -1, -1, - 899, -1, -1, -1, -1, 904, 905, -1, -1, 747, - 2, 537, -1, -1, 913, 914, -1, -1, -1, -1, - -1, -1, -1, 761, -1, -1, -1, -1, 715, -1, - -1, 981, -1, -1, 772, 934, 28, -1, -1, 938, - -1, 991, -1, -1, -1, 944, 572, -1, 786, 787, - 788, 789, 790, -1, -1, 581, -1, 49, -1, 134, - 747, -1, -1, -1, -1, -1, 141, -1, 60, -1, - -1, 9, -1, -1, 761, -1, 280, -1, -1, -1, - -1, -1, 981, -1, -1, 772, 9, 825, -1, -1, - -1, -1, 991, -1, 459, 33, 34, 35, -1, 786, - 787, 788, 789, 790, -1, 470, -1, 845, -1, 847, - 33, 34, 35, -1, -1, 53, 54, 55, 56, -1, - 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, - 53, 54, 55, 56, -1, 58, 59, -1, 825, -1, - -1, -1, 134, -1, -1, -1, -1, -1, -1, 141, - -1, -1, -1, -1, -1, -1, -1, 895, 845, -1, - 847, 899, -1, -1, -1, -1, 904, 905, -1, -1, - -1, -1, 537, -1, -1, 913, 914, -1, -1, -1, - -1, -1, -1, -1, 122, -1, 124, -1, -1, 715, - -1, -1, -1, -1, -1, -1, 934, -1, -1, 122, - 938, -1, -1, -1, -1, 280, 944, 572, 895, -1, - -1, -1, 899, -1, -1, -1, 581, 904, 905, -1, - -1, 747, 2, -1, -1, -1, 913, 914, -1, -1, - -1, -1, -1, -1, -1, 761, -1, -1, -1, -1, - -1, -1, -1, 981, -1, -1, 772, 934, 28, -1, - -1, 938, -1, 991, -1, 459, -1, 944, -1, -1, - 786, 787, 788, 789, 790, -1, 470, -1, -1, 49, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, -1, -1, -1, -1, -1, 280, 5, - -1, -1, -1, -1, 981, 11, 12, -1, -1, 825, - -1, -1, -1, -1, 991, 2, 22, 23, -1, 25, - -1, -1, -1, 29, -1, -1, -1, 2, -1, 845, - -1, 847, -1, -1, -1, 41, -1, 43, -1, -1, - 46, 47, -1, 537, -1, 51, 52, -1, -1, -1, - -1, -1, -1, 28, 60, -1, -1, -1, -1, -1, - 715, -1, -1, -1, 134, -1, -1, -1, -1, -1, - -1, 141, -1, 60, 49, 81, -1, -1, 572, 895, - -1, -1, -1, 899, -1, 60, 92, 581, 904, 905, - 96, -1, 747, -1, 459, -1, -1, 913, 914, -1, - -1, -1, -1, -1, -1, 470, 761, -1, -1, 115, - 116, -1, -1, -1, -1, -1, -1, 772, 934, -1, - -1, -1, 938, -1, -1, -1, -1, -1, 944, -1, - -1, 786, 787, 788, 789, 790, -1, -1, 5, -1, - -1, -1, -1, -1, 11, 12, -1, 134, -1, -1, - -1, -1, -1, -1, 141, 22, 23, -1, 25, 134, - -1, -1, 29, -1, -1, 981, 141, -1, -1, -1, - 825, -1, 537, -1, 41, 991, 43, 459, -1, 46, - 47, -1, -1, -1, 51, 52, -1, -1, 470, -1, - 845, -1, 847, 60, -1, -1, 2, -1, -1, -1, - -1, -1, 69, 70, -1, -1, -1, 572, -1, -1, - 280, -1, -1, -1, 81, 70, 581, 72, 73, -1, - 75, 715, 77, -1, 79, 92, 81, -1, 83, 96, - 85, -1, 87, 88, 89, -1, -1, -1, 93, -1, - 895, 96, -1, 98, 899, 100, 113, -1, -1, 904, - 905, 118, -1, 747, 60, 537, -1, -1, 913, 914, - -1, -1, -1, -1, 119, -1, -1, 761, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, 772, 934, - -1, -1, -1, 938, -1, -1, -1, -1, -1, 944, - 572, -1, 786, 787, 788, 789, 790, 2, -1, 581, - -1, 5, -1, -1, -1, 280, -1, 11, 12, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, - -1, 25, -1, -1, -1, 29, 981, -1, 134, -1, - -1, 825, -1, -1, -1, 141, 991, 41, -1, 43, - -1, -1, 46, 47, -1, -1, -1, 51, 52, -1, - 715, 845, -1, 847, -1, 60, 60, -1, -1, 2, - -1, -1, -1, -1, -1, 69, 70, -1, -1, -1, - -1, -1, -1, -1, -1, 26, 27, 81, -1, 30, - 31, 32, 747, -1, -1, -1, -1, -1, 92, 459, - -1, -1, 96, -1, -1, -1, 761, 48, 49, -1, - 470, 895, -1, -1, -1, 899, 57, 772, -1, 113, - 904, 905, -1, -1, -1, -1, -1, 60, -1, 913, - 914, 786, 787, 788, 789, 790, -1, -1, -1, 134, - -1, -1, -1, 715, -1, -1, 141, -1, -1, -1, - 934, -1, -1, -1, 938, -1, -1, -1, -1, -1, - 944, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 825, -1, -1, -1, -1, 747, -1, 537, -1, -1, - -1, -1, 459, -1, -1, -1, -1, -1, -1, 761, - 845, -1, 847, 470, 459, -1, -1, 981, -1, -1, - 772, 134, -1, -1, -1, 470, -1, 991, 141, -1, - -1, -1, 572, -1, 786, 787, 788, 789, 790, -1, - -1, 581, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 895, -1, -1, -1, 899, -1, -1, -1, -1, 904, - 905, -1, -1, 825, -1, -1, -1, -1, 913, 914, - 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 537, 845, -1, 847, -1, -1, -1, 934, - -1, -1, -1, 938, -1, -1, -1, -1, -1, 944, - -1, -1, -1, 5, -1, -1, -1, -1, -1, 11, - 12, -1, -1, -1, -1, -1, -1, 572, -1, -1, - 22, 23, -1, 25, -1, -1, 581, 29, -1, -1, - -1, -1, -1, 895, -1, -1, 981, 899, -1, 41, - -1, 43, 904, 905, 46, 47, 991, -1, -1, 51, - 52, 913, 914, -1, -1, -1, -1, -1, 60, -1, - -1, -1, -1, -1, -1, 715, -1, -1, 5, -1, - -1, -1, 934, 459, 11, 12, 938, -1, -1, 81, - -1, -1, 944, -1, 470, 22, 23, -1, 25, -1, - 92, -1, 29, -1, 96, -1, -1, 747, -1, -1, - -1, -1, -1, -1, 41, -1, 43, -1, -1, 46, - 47, 761, 114, -1, 51, 52, -1, -1, -1, 981, - -1, -1, 772, 60, -1, -1, -1, -1, -1, 991, - -1, -1, -1, -1, -1, -1, 786, 787, 788, 789, - 790, -1, -1, -1, 81, -1, -1, -1, 715, -1, - -1, 537, -1, -1, -1, 92, -1, -1, -1, 96, - 715, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 459, 825, -1, 114, -1, -1, - 747, -1, -1, -1, -1, 470, -1, -1, -1, -1, - -1, -1, 747, -1, 761, 845, -1, 847, -1, -1, - -1, -1, -1, -1, -1, 772, 761, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 772, -1, 786, - 787, 788, 789, 790, 30, 31, 32, -1, -1, -1, - -1, 786, 787, 788, 789, 790, 459, -1, -1, -1, - -1, -1, 48, 49, -1, 895, -1, 470, -1, 899, - -1, 57, 537, -1, 904, 905, -1, -1, 825, -1, - -1, -1, -1, 913, 914, -1, -1, -1, -1, 5, - 825, -1, -1, -1, -1, 11, 12, -1, 845, -1, - 847, -1, -1, -1, 934, -1, 22, 23, 938, 25, - 845, -1, 847, 29, 944, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 41, -1, 43, -1, -1, - 46, 47, -1, -1, 537, 51, 52, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, -1, 895, 715, - -1, 981, 899, -1, -1, -1, -1, 904, 905, -1, - 895, 991, -1, -1, 899, 81, 913, 914, -1, 904, - 905, -1, -1, -1, -1, -1, 92, -1, 913, 914, - 96, 747, -1, -1, -1, -1, -1, 934, -1, -1, - -1, 938, -1, -1, -1, 761, -1, 944, 114, 934, - -1, -1, -1, 938, -1, -1, 772, -1, -1, 944, - -1, 5, -1, -1, -1, -1, -1, 11, 12, -1, - 786, 787, 788, 789, 790, -1, -1, -1, 22, 23, - -1, 25, -1, -1, 981, 29, -1, -1, -1, -1, - -1, -1, -1, -1, 991, -1, 981, 41, -1, 43, - 715, -1, 46, 47, -1, -1, 991, 51, 52, 825, - -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 845, - -1, 847, 747, -1, -1, -1, -1, 81, -1, -1, - -1, -1, -1, -1, -1, -1, 761, -1, 92, -1, - -1, -1, 96, -1, -1, -1, -1, 772, -1, -1, - -1, -1, 715, -1, -1, -1, -1, -1, -1, -1, - 114, 786, 787, 788, 789, 790, -1, -1, -1, 895, - 26, 27, -1, 899, 30, 31, 32, -1, 904, 905, - -1, -1, -1, -1, 747, -1, -1, 913, 914, -1, - -1, -1, 48, 49, -1, -1, -1, -1, 761, -1, - 825, 57, -1, -1, -1, -1, -1, -1, 934, 772, - -1, -1, 938, -1, -1, -1, -1, -1, 944, -1, - 845, -1, 847, 786, 787, 788, 789, 790, 2, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 981, -1, -1, -1, 115, - 116, -1, 825, -1, -1, 991, -1, -1, -1, -1, - 895, -1, -1, -1, 899, -1, -1, -1, -1, 904, - 905, -1, 845, -1, 847, -1, 60, -1, 913, 914, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 934, - -1, -1, -1, 938, -1, -1, -1, -1, -1, 944, - -1, -1, -1, -1, -1, -1, -1, 17, 18, -1, - -1, -1, 895, -1, -1, -1, 899, -1, 28, -1, - -1, 904, 905, -1, -1, -1, -1, 37, -1, -1, - 913, 914, 42, -1, 44, 45, 981, -1, -1, 49, - -1, -1, -1, -1, -1, -1, 991, -1, -1, 59, - -1, 934, -1, -1, -1, 938, 150, -1, 68, -1, - 70, 944, 72, 73, -1, 75, -1, 77, -1, 79, - -1, 81, -1, 83, -1, 85, -1, 87, 88, 89, - -1, -1, -1, 93, -1, -1, 96, 5, 98, -1, - 100, -1, -1, 11, 12, -1, -1, -1, 981, -1, - -1, -1, -1, -1, 22, 23, -1, 25, 991, 119, - -1, 29, -1, -1, -1, 125, -1, -1, -1, 213, - -1, -1, -1, 41, -1, 43, -1, 221, 46, 47, + 2, 278, 13, 153, 154, 528, 134, 563, 533, 172, + 506, 651, 705, 141, 441, 442, 9, 710, 13, 461, + 462, 585, 717, 35, 51, 9, 28, 9, 35, 943, + 9, 17, 35, 0, 9, 37, 676, 9, 117, 9, + 119, 35, 35, 646, 9, 0, 35, 49, 35, 9, + 9, 2, 472, 35, 968, 35, 35, 59, 60, 45, + 35, 9, 118, 35, 978, 35, 68, 563, 70, 9, + 72, 73, 819, 75, 9, 77, 35, 79, 35, 81, + 683, 83, 829, 85, 831, 87, 88, 89, 9, 35, + 117, 93, 512, 35, 96, 35, 98, 517, 100, 9, + 2, 117, 115, 116, 524, 121, 118, 3, 4, 60, + 122, 118, 124, 35, 35, 118, 811, 119, 102, 122, + 102, 124, 9, 125, 118, 118, 28, 9, 122, 9, + 124, 124, 134, 122, 9, 37, 118, 777, 778, 141, + 560, 10, 36, 115, 116, 124, 118, 49, 35, 124, + 115, 116, 124, 35, 124, 35, 652, 59, 60, 124, + 35, 717, 9, 158, 124, 124, 68, 124, 70, 9, + 72, 73, 118, 75, 867, 77, 124, 79, 124, 81, + 705, 83, 746, 85, 124, 87, 88, 89, 35, 124, + 84, 93, 86, 635, 96, 35, 98, 91, 100, 626, + 2, 95, 124, 124, 844, 99, 35, 35, 102, 103, + 104, 105, 214, 2, 124, 35, 35, 119, 112, 115, + 116, 717, 17, 125, 118, 35, 28, 750, 115, 116, + 124, 118, 134, 115, 116, 115, 116, 124, 761, 141, + 115, 116, 124, 2, 124, 40, 248, 49, 35, 124, + 144, 145, 54, 9, 19, 811, 779, 117, 60, 119, + 3, 4, 2, 35, 35, 2, 68, 115, 116, 35, + 118, 60, 69, 70, 35, 115, 116, 33, 34, 35, + 35, 83, 118, 85, 124, 87, 88, 35, 28, 118, + 35, 28, 9, 122, 122, 124, 124, 53, 54, 55, + 56, 60, 58, 59, 124, 124, 17, 17, 118, 49, + 9, 834, 49, 836, 124, 811, 113, 119, 35, 213, + 60, 33, 34, 60, 117, 453, 124, 221, 38, 39, + 123, 118, 134, 35, 33, 34, 464, 124, 117, 141, + 119, 53, 54, 55, 56, 122, 58, 59, 88, 35, + 122, 88, 124, 124, 53, 54, 55, 56, 124, 58, + 59, 884, 2, 124, 784, 888, 122, 787, 124, 124, + 893, 894, 115, 116, 794, 57, 124, 50, 798, 124, + 19, 904, 905, 596, 908, 598, 118, 117, 28, 809, + 102, 604, 35, 123, 134, 17, 117, 134, 118, 117, + 121, 141, 925, 121, 141, 407, 929, 570, 51, 49, + 122, 106, 935, 33, 34, 37, 38, 51, 119, 943, + 60, 66, 9, 122, 35, 124, 108, 109, 110, 115, + 116, 117, 118, 53, 54, 55, 56, 35, 58, 59, + 860, 861, 966, 863, 968, 35, 33, 34, 88, 869, + 35, 453, 115, 116, 978, 118, 17, 3, 4, 117, + 737, 881, 464, 9, 35, 57, 53, 54, 55, 56, + 35, 58, 59, 117, 117, 118, 37, 38, 39, 35, + 2, 115, 116, 117, 115, 116, 906, 33, 34, 35, + 35, 117, 912, 119, 134, 114, 115, 116, 648, 17, + 35, 141, 122, 115, 116, 407, 28, 53, 54, 55, + 56, 118, 58, 59, 106, 107, 108, 109, 110, 37, + 38, 39, 15, 16, 17, 18, 528, 49, 117, 949, + 119, 122, 952, 124, 35, 122, 956, 124, 60, 115, + 116, 5, 436, 820, 117, 2, 119, 11, 12, 19, + 970, 453, 563, 115, 116, 117, 102, 35, 22, 23, + 117, 25, 464, 17, 566, 29, 88, 125, 570, 697, + 118, 28, 118, 115, 116, 117, 122, 41, 124, 43, + 3, 4, 46, 47, 3, 4, 118, 51, 52, 117, + 9, 119, 49, 117, 124, 119, 60, 17, 18, 9, + 115, 116, 117, 60, 9, 483, 484, 485, 486, 487, + 117, 117, 134, 119, 33, 34, 35, 81, 57, 141, + 115, 116, 117, 33, 34, 35, 528, 505, 92, 115, + 116, 88, 96, 9, 53, 54, 55, 56, 19, 58, + 59, 115, 116, 53, 54, 55, 56, 118, 58, 59, + 117, 453, 119, 2, 115, 116, 120, 15, 16, 17, + 18, 117, 464, 119, 566, 115, 116, 117, 570, 117, + 117, 119, 119, 3, 4, 37, 38, 134, 118, 28, + 63, 64, 684, 102, 141, 117, 814, 117, 9, 124, + 117, 119, 102, 46, 119, 697, 9, 119, 96, 118, + 49, 117, 117, 122, 81, 124, 717, 119, 118, 117, + 119, 60, 122, 453, 124, 119, 453, 71, 119, 119, + 33, 34, 35, 119, 464, 119, 528, 464, 730, 9, + 84, 85, 86, 87, 88, 89, 90, 91, 17, 88, + 53, 54, 55, 56, 60, 58, 59, 88, 750, 141, + 88, 88, 88, 33, 34, 35, 88, 9, 245, 761, + 88, 563, 88, 88, 566, 88, 88, 13, 570, 88, + 407, 13, 13, 53, 54, 55, 56, 779, 58, 59, + 88, 33, 34, 35, 88, 134, 154, 684, 528, 248, + 512, 528, 141, 711, 247, 697, 966, 864, 730, 461, + 811, 53, 54, 55, 56, 2, 58, 59, 982, 122, + 442, 124, 814, 453, 566, 641, 13, 641, -1, -1, + -1, 530, 102, -1, 464, -1, 566, -1, 730, 566, + 570, 28, 834, 570, 836, -1, -1, -1, 118, -1, + -1, -1, 122, -1, 124, -1, -1, -1, 750, -1, + 102, -1, 49, -1, -1, -1, -1, -1, -1, 761, + 9, -1, -1, 60, -1, -1, 118, -1, -1, -1, + 122, -1, 124, -1, -1, -1, -1, 779, -1, -1, + -1, -1, 884, -1, 33, 34, 888, -1, 528, -1, + -1, 893, 894, -1, -1, 697, -1, -1, -1, -1, + -1, -1, 904, 905, 53, 54, 55, 56, -1, 58, + 59, -1, 814, -1, -1, 717, -1, -1, -1, -1, + -1, -1, 9, 925, -1, -1, 566, 929, 730, 2, + 570, 453, 834, 935, 836, -1, -1, 134, -1, -1, + -1, -1, 464, -1, 141, -1, 33, 34, 750, -1, + -1, -1, -1, -1, -1, 28, -1, 697, -1, 761, + 697, -1, -1, -1, -1, -1, 53, 54, 55, 56, + 972, 58, 59, 122, -1, 124, 49, 779, -1, -1, + 982, -1, 884, -1, -1, -1, 888, 60, -1, -1, + 730, 893, 894, 730, -1, -1, 453, -1, -1, -1, + -1, -1, 904, 905, -1, 9, 528, 464, -1, 811, + 750, -1, 814, 750, -1, 88, -1, -1, -1, -1, + -1, 761, -1, 925, 761, -1, -1, 929, -1, 33, + 34, 35, 834, 935, 836, 122, -1, 124, -1, 779, + -1, -1, 779, -1, 566, -1, -1, -1, 570, 53, + 54, 55, 56, -1, 58, 59, -1, 697, -1, -1, + -1, 134, -1, -1, -1, -1, -1, -1, 141, -1, + 972, 528, -1, -1, 814, -1, -1, 814, -1, -1, + 982, -1, 884, -1, -1, -1, 888, -1, -1, -1, + 730, 893, 894, -1, 834, -1, 836, 834, 102, 836, + -1, -1, 904, 905, 453, -1, -1, -1, -1, 566, + 750, -1, -1, 570, 118, 464, -1, -1, 122, -1, + 124, 761, -1, 925, -1, -1, -1, 929, -1, -1, + -1, -1, -1, 935, -1, -1, -1, -1, -1, 779, + -1, -1, -1, -1, 884, -1, -1, 884, 888, -1, + -1, 888, 2, 893, 894, -1, 893, 894, -1, -1, + -1, -1, -1, -1, 904, 905, -1, 904, 905, -1, + 972, -1, -1, -1, 814, 697, -1, -1, 28, 528, + 982, -1, -1, -1, -1, 925, -1, -1, 925, 929, + -1, -1, 929, -1, 834, 935, 836, -1, 935, 49, + -1, -1, -1, -1, -1, -1, -1, -1, 730, -1, + 60, -1, -1, -1, -1, -1, -1, 566, -1, -1, + -1, 570, -1, -1, 2, -1, -1, -1, 750, -1, + -1, -1, 972, -1, -1, 972, -1, -1, 88, 761, + 697, -1, 982, -1, 884, 982, -1, -1, 888, -1, + 28, -1, 9, 893, 894, -1, 453, 779, -1, -1, + -1, 30, 31, 32, 904, 905, -1, 464, -1, -1, + -1, 49, -1, 730, -1, -1, 33, 34, 35, 48, + 49, -1, 60, -1, 134, 925, -1, -1, 57, 929, + -1, 141, 814, 750, -1, 935, 53, 54, 55, 56, + -1, 58, 59, -1, 761, -1, -1, -1, -1, -1, + -1, -1, 834, -1, 836, -1, -1, -1, -1, -1, + -1, -1, 779, -1, -1, -1, -1, -1, -1, -1, + -1, 528, 972, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 982, -1, -1, 102, -1, -1, 697, -1, + -1, -1, 2, -1, -1, -1, 134, 814, -1, -1, + -1, 118, 884, 141, -1, 122, 888, 124, -1, 566, + -1, 893, 894, 570, -1, -1, -1, 834, 28, 836, + 453, 730, 904, 905, -1, -1, -1, -1, -1, -1, + -1, 464, -1, -1, 9, -1, -1, -1, -1, 49, + -1, 750, -1, 925, -1, -1, -1, 929, -1, -1, + 60, -1, 761, 935, -1, -1, -1, -1, 33, 34, + 35, -1, -1, -1, -1, -1, -1, 884, 2, -1, + 779, 888, -1, -1, -1, -1, 893, 894, 53, 54, + 55, 56, -1, 58, 59, -1, -1, 904, 905, -1, + 972, -1, -1, -1, 28, 528, -1, -1, -1, -1, + 982, -1, -1, -1, -1, 814, -1, -1, 925, -1, + -1, -1, 929, -1, -1, 49, -1, -1, 935, -1, + -1, -1, -1, -1, 134, 834, 60, 836, -1, -1, + -1, 141, -1, 566, -1, -1, -1, 570, -1, -1, + 697, -1, -1, 118, 2, -1, -1, 122, -1, 124, + -1, -1, -1, -1, -1, 972, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 982, -1, -1, -1, -1, + 28, -1, -1, 730, -1, 884, -1, -1, -1, 888, + -1, -1, -1, -1, 893, 894, 9, -1, -1, -1, + -1, 49, -1, 750, -1, 904, 905, -1, -1, -1, + 134, -1, 60, 9, 761, -1, -1, 141, -1, -1, + 33, 34, 35, -1, -1, -1, 925, -1, -1, -1, + 929, -1, 779, -1, -1, -1, 935, 33, 34, 35, + 53, 54, 55, 56, -1, 58, 59, -1, -1, -1, + -1, -1, 9, 453, -1, -1, -1, 53, 54, 55, + 56, -1, 58, 59, 464, -1, -1, 814, -1, -1, + -1, -1, -1, 972, 697, -1, 33, 34, 35, -1, + -1, -1, 2, 982, -1, -1, 134, 834, -1, 836, + -1, -1, -1, 141, -1, 2, 53, 54, 55, 56, + -1, 58, 59, -1, -1, 118, -1, 730, 28, 122, + -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 28, -1, -1, -1, 453, 122, 750, 528, 49, + -1, -1, -1, -1, -1, -1, 464, 884, 761, -1, + 60, 888, 49, -1, -1, -1, 893, 894, -1, -1, + -1, -1, -1, 60, -1, -1, 779, 904, 905, 9, + -1, -1, -1, -1, -1, 122, 566, 124, -1, -1, + 570, -1, -1, 9, -1, -1, -1, -1, 925, -1, + -1, -1, 929, 33, 34, 35, -1, -1, 935, -1, + -1, 814, -1, -1, -1, -1, -1, 33, 34, 35, + 528, -1, -1, 53, 54, 55, 56, -1, 58, 59, + -1, 834, -1, 836, 134, -1, -1, 53, 54, 55, + 56, 141, 58, 59, -1, 972, -1, 134, -1, -1, + -1, -1, -1, -1, 141, 982, -1, -1, 566, -1, + -1, -1, 570, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2, 453, -1, -1, -1, -1, -1, -1, + -1, 884, -1, -1, 464, 888, -1, -1, -1, 9, + 893, 894, 122, -1, 124, -1, -1, -1, 28, -1, + -1, 904, 905, -1, -1, -1, 122, -1, 124, -1, + -1, -1, -1, 33, 34, 35, 2, 697, -1, 49, + -1, -1, 925, -1, -1, -1, 929, -1, -1, -1, + 60, -1, 935, 53, 54, 55, 56, -1, 58, 59, + -1, -1, 28, -1, -1, -1, -1, -1, 528, 453, + 730, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 464, -1, -1, 49, -1, -1, -1, -1, -1, 972, + 750, -1, -1, -1, 60, -1, -1, -1, -1, 982, + -1, 761, -1, -1, -1, -1, 566, -1, -1, 697, + 570, -1, -1, -1, -1, -1, -1, -1, -1, 779, + -1, -1, 122, -1, 134, -1, -1, -1, -1, -1, + -1, 141, -1, -1, 9, -1, -1, -1, -1, -1, + -1, -1, 730, -1, 528, 453, -1, -1, -1, -1, + -1, -1, -1, -1, 814, -1, 464, -1, 33, 34, + 35, -1, 750, -1, -1, -1, -1, -1, 134, -1, + -1, -1, -1, 761, 834, 141, 836, -1, 53, 54, + 55, 56, 566, 58, 59, -1, 570, -1, -1, -1, + -1, 779, -1, 2, -1, -1, 71, 72, 73, 74, + 75, 76, 77, 78, 79, -1, 2, -1, -1, 84, + 85, 86, 87, 88, 89, 90, 91, -1, -1, 28, + 528, -1, -1, -1, 884, -1, 814, -1, 888, -1, + -1, -1, -1, 893, 894, -1, -1, 697, -1, -1, + 49, -1, -1, 118, 904, 905, 834, 122, 836, 124, + -1, 60, -1, -1, -1, -1, -1, -1, 566, -1, + -1, -1, 570, -1, 60, 925, -1, -1, -1, 929, + 730, -1, -1, 453, -1, 935, -1, -1, -1, -1, + -1, -1, -1, -1, 464, -1, 453, -1, -1, -1, + 750, -1, -1, -1, -1, -1, 884, 464, -1, -1, + 888, 761, -1, -1, -1, 893, 894, -1, -1, 2, + -1, -1, 972, 697, -1, -1, 904, 905, -1, 779, + -1, -1, 982, -1, 2, 134, -1, -1, -1, 26, + 27, -1, 141, 30, 31, 32, -1, 925, 134, -1, + -1, 929, -1, -1, -1, 141, 730, 935, 528, -1, + -1, 48, 49, -1, 814, -1, -1, -1, -1, -1, + 57, 528, -1, -1, -1, -1, 750, 60, -1, -1, + -1, -1, -1, -1, 834, -1, 836, 761, -1, -1, + -1, -1, 60, -1, 972, -1, 566, -1, -1, 697, + 570, -1, -1, -1, 982, 779, -1, -1, -1, 566, + -1, -1, -1, 570, -1, 102, 103, 104, 105, 106, + 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, + 117, -1, 730, -1, 884, -1, -1, -1, 888, -1, + 814, -1, -1, 893, 894, -1, -1, -1, -1, -1, + -1, 134, 750, 453, 904, 905, -1, -1, 141, -1, + 834, -1, 836, 761, 464, -1, 134, -1, -1, -1, + -1, -1, -1, 141, -1, 925, -1, -1, -1, 929, + -1, 779, -1, -1, -1, 935, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2, 453, -1, -1, + 9, -1, -1, -1, -1, -1, -1, -1, 464, -1, + 884, -1, -1, -1, 888, -1, 814, -1, -1, 893, + 894, -1, 972, -1, 33, 34, 35, 697, 528, -1, + 904, 905, 982, -1, -1, -1, 834, -1, 836, -1, + 697, -1, -1, -1, 53, 54, 55, 56, -1, 58, + 59, 925, -1, -1, 60, 929, -1, -1, -1, -1, + 730, 935, -1, -1, -1, -1, 566, -1, -1, -1, + 570, -1, 528, 730, -1, -1, -1, -1, -1, -1, + 750, -1, -1, -1, -1, -1, 884, -1, -1, -1, + 888, 761, -1, 750, -1, 893, 894, -1, 972, -1, + -1, -1, -1, -1, 761, -1, 904, 905, 982, 779, + 566, -1, -1, 122, 570, 124, -1, -1, -1, -1, + -1, -1, 779, -1, -1, -1, -1, 925, 134, -1, + -1, 929, -1, -1, -1, 141, -1, 935, -1, -1, + -1, -1, -1, -1, 814, -1, -1, -1, -1, -1, + -1, -1, 5, -1, 453, -1, -1, 814, 11, 12, + -1, -1, -1, -1, 834, 464, 836, 453, -1, 22, + 23, -1, 25, -1, 972, -1, 29, 834, 464, 836, + -1, -1, -1, -1, 982, -1, -1, -1, 41, -1, + 43, -1, -1, 46, 47, -1, -1, 697, 51, 52, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + -1, -1, -1, -1, 884, -1, -1, -1, 888, -1, + -1, -1, -1, 893, 894, -1, -1, 884, 81, 528, + 730, 888, -1, -1, 904, 905, 893, 894, -1, 92, + -1, 697, 528, 96, -1, -1, -1, 904, 905, -1, + 750, -1, -1, -1, -1, 925, -1, -1, -1, 929, + -1, 761, 115, 116, -1, 935, -1, 566, 925, -1, + 453, 570, 929, -1, 730, -1, -1, -1, 935, 779, + -1, 464, -1, -1, -1, 453, -1, -1, -1, -1, + -1, -1, -1, -1, 750, -1, 464, -1, -1, -1, + -1, -1, 972, -1, -1, 761, -1, -1, -1, -1, + -1, -1, 982, -1, 814, 972, -1, -1, -1, -1, + -1, -1, -1, 779, -1, 982, 5, -1, -1, -1, + -1, -1, 11, 12, 834, -1, 836, -1, -1, -1, + -1, -1, -1, 22, 23, 528, 25, -1, -1, -1, + 29, -1, -1, -1, -1, -1, -1, -1, 814, -1, + 528, -1, 41, -1, 43, -1, -1, 46, 47, -1, + -1, -1, 51, 52, -1, -1, -1, -1, 834, -1, + 836, 60, -1, -1, 884, -1, -1, -1, 888, -1, + 69, 70, -1, 893, 894, -1, -1, -1, 697, -1, + -1, -1, 81, -1, 904, 905, -1, -1, -1, -1, + -1, 697, -1, 92, -1, -1, -1, 96, -1, -1, + -1, 9, -1, -1, -1, 925, -1, -1, 884, 929, + -1, 730, 888, -1, 113, 935, -1, 893, 894, 118, + -1, -1, -1, -1, 730, 33, 34, 453, 904, 905, + -1, 750, -1, -1, -1, -1, -1, -1, 464, -1, + -1, -1, 761, -1, 750, 53, 54, 55, 56, 925, + 58, 59, 972, 929, -1, 761, -1, -1, -1, 935, + 779, -1, 982, 71, 72, 73, 74, 75, 76, 77, + 78, 79, -1, 779, -1, -1, 84, 85, 86, 87, + 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 697, 814, 972, -1, -1, -1, + -1, -1, 528, -1, -1, -1, 982, -1, 814, 697, + -1, -1, -1, -1, 122, 834, 124, 836, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 730, 834, -1, + 836, 84, 85, 86, 87, 88, 89, 90, 91, -1, + -1, -1, 730, -1, -1, -1, -1, 750, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 761, -1, + -1, -1, 750, -1, -1, 884, -1, -1, -1, 888, + -1, 124, -1, 761, 893, 894, 779, -1, 884, -1, + -1, -1, 888, -1, -1, 904, 905, 893, 894, -1, + -1, 779, -1, -1, -1, -1, -1, -1, 904, 905, + -1, -1, -1, -1, -1, -1, 925, -1, -1, -1, + 929, 814, -1, -1, -1, -1, 935, -1, -1, 925, + -1, -1, -1, 929, -1, -1, 814, -1, -1, 935, + -1, 834, 5, 836, -1, -1, -1, -1, 11, 12, + -1, -1, -1, -1, -1, -1, 834, -1, 836, 22, + 23, -1, 25, 972, -1, -1, 29, -1, -1, -1, + -1, -1, -1, 982, -1, -1, 972, -1, 41, -1, + 43, 697, -1, 46, 47, -1, 982, -1, 51, 52, + -1, 884, -1, -1, -1, 888, -1, 60, -1, -1, + 893, 894, -1, -1, -1, -1, 884, 2, -1, 4, + 888, 904, 905, -1, 730, 893, 894, -1, 81, -1, + -1, -1, -1, -1, -1, -1, 904, 905, -1, 92, + -1, -1, 925, 96, 750, -1, 929, 100, -1, -1, + -1, -1, 935, -1, -1, 761, -1, 925, -1, -1, + -1, 929, -1, -1, 5, 17, 18, 935, -1, -1, + 11, 12, -1, 779, -1, 60, 28, -1, -1, -1, + -1, 22, 23, -1, 25, -1, -1, -1, 29, 972, + 42, -1, 44, 45, -1, -1, -1, 49, -1, 982, + 41, -1, 43, -1, 972, 46, 47, 59, 814, -1, + 51, 52, -1, -1, 982, -1, 68, -1, 70, 60, + 72, 73, -1, 75, -1, 77, -1, 79, 834, 81, + 836, 83, -1, 85, -1, 87, 88, 89, -1, -1, + 81, 93, -1, -1, 96, -1, 98, -1, 100, -1, + -1, 92, -1, -1, -1, 96, -1, -1, -1, 100, + -1, -1, -1, -1, -1, 150, -1, 119, -1, -1, + -1, -1, -1, 125, -1, -1, -1, -1, 884, -1, + -1, -1, 888, -1, -1, -1, -1, 893, 894, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 904, 905, + -1, 153, 154, 11, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 22, 23, -1, 25, -1, 925, + 172, 29, -1, 929, -1, -1, 211, -1, -1, 935, + -1, -1, -1, 41, 219, 43, -1, -1, 46, 47, -1, -1, -1, 51, 52, -1, -1, -1, -1, -1, - -1, -1, 60, 153, 154, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 251, -1, -1, - -1, -1, -1, 81, -1, 175, 260, -1, -1, 263, - -1, -1, -1, -1, 92, -1, -1, -1, 96, -1, - -1, -1, 100, -1, 278, 71, 72, 73, 74, 75, - 76, 77, 78, 79, -1, 289, -1, -1, 84, 85, - 86, 87, 88, 89, 90, 91, 216, -1, -1, -1, - -1, -1, 222, 5, -1, 7, 8, -1, 10, 11, - 12, 13, 14, -1, -1, -1, -1, 19, 20, 21, - 22, 23, 118, 25, -1, -1, 28, 29, 248, 249, - 250, 33, 34, -1, -1, -1, -1, -1, -1, 41, - -1, 43, -1, -1, 46, 47, 266, 267, 50, 51, - 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, - 280, -1, -1, -1, -1, 67, -1, 69, 70, -1, - -1, -1, -1, -1, -1, 295, 296, -1, -1, 81, - -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, - 92, 93, -1, -1, 96, -1, -1, 99, -1, -1, - -1, -1, -1, -1, 106, 107, 33, 34, 35, -1, - -1, 113, 114, -1, -1, 117, 118, -1, 120, -1, - 122, -1, -1, -1, -1, -1, 53, 54, 55, 56, - -1, 58, 59, -1, -1, -1, -1, -1, -1, 443, - -1, -1, -1, -1, 71, 72, 73, 74, 75, 76, - 77, 78, 79, -1, -1, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 469, -1, -1, -1, -1, - -1, -1, 476, -1, -1, 479, 26, 481, -1, -1, - 30, 31, 32, -1, -1, -1, 490, -1, -1, -1, - 494, 118, -1, 413, -1, 122, -1, 124, 48, 49, - -1, -1, -1, -1, -1, -1, -1, 57, 512, 513, - 514, -1, -1, 517, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 527, -1, -1, -1, -1, -1, -1, - 534, 535, -1, -1, 538, -1, 540, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 110, -1, -1, 567, -1, -1, -1, -1, 5, -1, - 7, 8, -1, 10, 11, 12, 13, 14, 582, -1, - -1, -1, 19, 20, 21, 22, 23, -1, 25, -1, - -1, 28, 29, -1, -1, -1, 33, 34, 518, -1, - -1, -1, -1, -1, 41, -1, 43, -1, -1, 46, - 47, -1, -1, 50, 51, 52, -1, -1, -1, 539, - -1, -1, 542, 60, -1, -1, -1, 547, -1, -1, - 67, -1, 69, 70, -1, -1, 556, -1, -1, -1, - -1, -1, -1, -1, 81, 649, -1, -1, -1, -1, - -1, -1, 572, 573, -1, 92, 93, -1, -1, 96, - -1, 581, 99, 100, -1, -1, -1, -1, -1, 106, - 107, -1, -1, -1, -1, -1, 113, 114, -1, -1, - -1, 118, -1, 120, -1, 122, -1, -1, -1, -1, - -1, 13, -1, -1, -1, -1, 5, -1, -1, 703, - 22, 23, 11, 12, -1, -1, -1, -1, -1, 713, - -1, -1, -1, 22, 23, -1, 25, -1, -1, 723, - 29, -1, -1, -1, -1, 645, 646, -1, -1, -1, - 52, -1, 41, -1, 43, -1, -1, 46, 47, -1, - -1, -1, 51, 52, -1, 665, 750, -1, 752, -1, - -1, 60, -1, -1, -1, -1, -1, -1, 762, -1, - -1, 765, 766, 767, -1, -1, -1, 771, -1, -1, - 774, -1, 81, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 702, 92, -1, 705, -1, 96, -1, 709, - 710, 100, -1, -1, -1, -1, -1, -1, -1, 803, - -1, 721, -1, 723, -1, -1, -1, -1, 728, 729, - -1, -1, 5, -1, 734, 137, -1, -1, 11, 12, - -1, 741, -1, -1, -1, -1, 148, -1, -1, 22, - 23, -1, 25, -1, -1, 839, 29, -1, -1, -1, - -1, -1, 846, 165, -1, 849, -1, -1, 41, -1, - 43, 173, 174, 46, 47, -1, -1, -1, 51, 52, - -1, -1, -1, -1, 868, 869, -1, 60, -1, -1, - -1, -1, -1, -1, -1, -1, 880, -1, -1, -1, - -1, -1, -1, -1, 804, 805, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - -1, -1, 906, 96, -1, -1, -1, 100, 828, -1, - 830, -1, -1, -1, -1, 919, -1, -1, -1, -1, - 840, -1, 842, -1, 928, 929, -1, -1, 932, -1, - 252, 935, 936, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 267, 866, -1, -1, -1, - -1, 871, -1, -1, -1, 277, 876, -1, -1, 879, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 973, - -1, -1, -1, -1, -1, -1, -1, 299, 300, -1, - -1, 303, -1, -1, -1, -1, -1, -1, 310, -1, - -1, -1, 314, -1, -1, -1, -1, 319, -1, -1, - 920, 323, -1, 923, -1, 327, -1, -1, -1, 331, - 930, -1, 334, -1, -1, -1, 338, -1, -1, -1, - -1, -1, -1, 345, -1, -1, -1, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, - 960, 84, 85, 86, 87, 88, 89, 90, 91, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 381, - -1, 383, -1, -1, 386, -1, -1, 389, -1, -1, - -1, -1, 394, -1, 994, 995, -1, 399, -1, 9, - -1, 124, -1, -1, 406, 407, 408, 409, 410, 411, - 412, -1, -1, -1, -1, -1, -1, -1, 420, -1, - -1, 423, -1, 33, 34, 35, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 437, -1, -1, -1, -1, - -1, -1, -1, 53, 54, 55, 56, -1, 58, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, - -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, - 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 66, 67, 122, 69, 124, 71, -1, -1, 74, -1, - 76, -1, 78, -1, -1, -1, 82, 26, 27, 531, - 86, 30, 31, 32, 90, 91, -1, 539, -1, 95, - -1, 97, -1, 99, -1, -1, -1, -1, 47, 48, - 49, -1, -1, -1, -1, -1, -1, 113, 57, -1, - -1, -1, 118, -1, -1, -1, -1, -1, 124, -1, - -1, 573, -1, -1, -1, -1, -1, -1, 580, 71, - 72, 73, 74, 75, 76, 77, 78, 79, -1, -1, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 602, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, - 176, 177, 178, 179, 180, 181, 182, -1, 184, -1, - 186, 187, 188, -1, 190, -1, 192, 193, 640, -1, - -1, -1, -1, -1, -1, -1, 648, -1, -1, 205, - -1, -1, -1, 209, 656, 211, -1, -1, -1, 661, - -1, 217, -1, -1, -1, -1, -1, -1, -1, 225, - 226, 227, 228, 229, 230, 231, -1, 233, -1, 235, - 236, 237, -1, 239, 240, 241, -1, 5, 244, 245, - 246, -1, -1, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, -1, 25, -1, -1, - -1, 29, -1, -1, 270, 271, -1, 273, 274, -1, - -1, -1, -1, 41, -1, 43, -1, -1, 46, 47, - -1, 733, -1, 51, 52, -1, -1, -1, -1, 741, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 757, -1, -1, -1, -1, - -1, 763, -1, 81, -1, -1, -1, 769, -1, -1, - -1, -1, -1, 775, 92, -1, -1, -1, 96, -1, - 782, -1, 100, -1, -1, -1, -1, -1, -1, -1, - 792, -1, -1, -1, -1, -1, -1, 71, 72, 73, - 74, 75, 76, 77, 78, 79, -1, -1, -1, 365, - 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, - -1, 823, -1, -1, -1, -1, 0, 1, -1, 3, - 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, - 14, -1, -1, -1, 118, 19, 20, 21, 22, 23, - 24, 25, 854, -1, -1, 29, -1, -1, -1, 33, - 34, 863, 36, -1, -1, -1, -1, 41, 42, 43, - 44, -1, 46, 47, -1, -1, 50, 51, 52, -1, - 882, -1, -1, -1, -1, -1, 60, 61, 62, -1, - -1, 65, -1, 67, 68, 69, 70, -1, -1, -1, - -1, -1, -1, -1, -1, 907, 80, 81, 82, 83, - -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, - 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, - -1, 115, 116, -1, 118, 947, 120, 1, 122, 3, - 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, -1, -1, 50, 51, 52, -1, - -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, - 64, 65, -1, 67, 68, 69, 70, -1, -1, -1, - -1, 577, -1, -1, -1, -1, 80, 81, 82, 83, - 586, -1, -1, 589, -1, -1, -1, -1, 92, 93, - 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, - -1, 115, 116, -1, 118, -1, 120, -1, 122, -1, - 1, -1, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, 37, 38, 39, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, + -1, -1, 214, -1, 249, -1, 972, -1, 220, -1, + -1, -1, 257, 81, -1, 260, 982, -1, -1, -1, + -1, -1, -1, -1, 92, -1, -1, -1, 96, -1, + 275, -1, -1, -1, 246, 247, 248, -1, 283, -1, + -1, -1, -1, -1, -1, -1, 114, -1, -1, -1, + -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, -1, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, 13, 14, -1, -1, 289, 290, 19, + 20, 21, 22, 23, 24, 25, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + -1, 41, 42, 43, 44, -1, 46, 47, -1, -1, + 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, + 60, 61, 62, -1, -1, 65, -1, 67, 68, 69, + 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 80, 81, 82, 83, -1, -1, -1, -1, -1, -1, + -1, -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 737, 113, 739, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, 37, 38, 39, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, + -1, -1, -1, 113, -1, 115, 116, -1, 118, -1, + 120, -1, 122, -1, -1, -1, -1, -1, -1, -1, + -1, 5, 437, 7, 8, 407, 10, 11, 12, 13, + 14, -1, -1, -1, -1, 19, 20, 21, 22, 23, + -1, 25, -1, -1, 28, 29, -1, -1, 463, 33, + 34, -1, -1, -1, -1, 470, -1, 41, 473, 43, + 475, -1, 46, 47, -1, -1, 50, 51, 52, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, + -1, -1, -1, 67, -1, 69, 70, -1, -1, -1, + -1, -1, 507, 508, -1, 26, 27, 81, -1, 30, + 31, 32, -1, 518, -1, -1, -1, -1, 92, 93, + 525, 526, 96, -1, 529, 99, 531, 48, 49, -1, + -1, -1, 106, 107, -1, -1, 57, 509, -1, 113, + 114, -1, -1, 117, 118, -1, 120, -1, 122, -1, + -1, -1, -1, 558, -1, -1, -1, -1, -1, -1, + -1, 533, 567, -1, -1, -1, 538, -1, -1, -1, + -1, -1, -1, -1, -1, 547, -1, -1, -1, -1, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, + -1, 563, -1, -1, 566, -1, 117, -1, 570, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, + 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, + -1, -1, 19, 20, 21, 22, 23, 632, 25, -1, + -1, 28, 29, -1, -1, -1, 33, 34, -1, -1, + -1, -1, -1, -1, 41, -1, 43, -1, -1, 46, + 47, -1, -1, 50, 51, 52, 628, 629, -1, -1, + -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, + 67, -1, 69, 70, -1, -1, 648, -1, -1, -1, + 685, -1, -1, 13, 81, -1, -1, -1, -1, -1, + 695, -1, 22, 23, -1, 92, 93, -1, -1, 96, + 705, -1, 99, 100, -1, -1, -1, -1, -1, 106, + 107, -1, 684, -1, -1, 687, 113, 114, -1, 691, + 692, 118, 52, 120, -1, 122, -1, 57, -1, -1, + -1, 703, -1, 705, 739, 9, 741, -1, 710, 711, + -1, -1, -1, -1, 716, 717, 751, -1, -1, 754, + 755, 756, -1, -1, -1, 760, -1, -1, 763, 33, + 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, + 54, 55, 56, -1, 58, 59, 791, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 71, 72, 73, + 74, 75, 76, 77, 78, 79, -1, 137, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 91, 148, -1, + 792, 793, -1, 828, -1, 155, -1, -1, -1, -1, + 835, -1, 162, 838, -1, -1, -1, -1, -1, 811, + 170, 171, -1, -1, -1, 817, -1, 819, 122, 26, + 124, 856, 857, 30, 31, 32, -1, 829, -1, 831, + -1, 5, -1, 868, -1, -1, -1, 11, 12, -1, + -1, 48, 49, -1, -1, -1, -1, -1, 22, 23, + 57, 25, 854, -1, -1, 29, -1, 859, -1, -1, + 895, -1, 864, -1, -1, 867, -1, 41, -1, 43, + -1, -1, 46, 47, -1, 910, -1, 51, 52, -1, + -1, -1, -1, -1, 919, 920, 60, -1, 923, -1, + 250, 926, 927, -1, -1, 102, 103, 104, 105, 106, + 107, 108, 109, 110, -1, -1, -1, 81, -1, 911, + -1, -1, 914, -1, 274, -1, -1, -1, 92, 921, + 26, 27, 96, -1, 30, 31, 32, -1, -1, 964, + -1, -1, -1, 293, 294, -1, -1, 297, -1, -1, + 114, -1, 48, 49, 304, -1, -1, -1, 308, 951, + -1, 57, -1, 313, -1, -1, -1, 317, -1, -1, + -1, 321, -1, -1, -1, 325, -1, -1, 328, -1, + -1, -1, 332, -1, -1, -1, -1, -1, -1, 339, + -1, -1, -1, 985, 986, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + 106, 107, 108, 109, 110, -1, -1, -1, -1, 115, + 116, -1, -1, -1, -1, 375, -1, 377, -1, -1, + 380, -1, -1, 383, -1, -1, -1, -1, 388, -1, + -1, -1, 5, 393, -1, -1, -1, -1, 11, 12, + 400, 401, 402, 403, 404, 405, 406, -1, -1, 22, + 23, -1, 25, -1, 414, -1, 29, 417, -1, -1, + -1, -1, -1, 423, -1, 425, -1, 427, 41, 429, + 43, 431, -1, 46, 47, -1, -1, -1, 51, 52, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, + 75, 76, 77, 78, 79, -1, -1, -1, 81, 84, + 85, 86, 87, 88, 89, 90, 91, -1, -1, 92, + -1, -1, -1, 96, -1, -1, -1, 100, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, -1, 506, -1, -1, 66, + 67, -1, 69, -1, 71, -1, -1, 74, -1, 76, + -1, 78, 522, -1, -1, 82, -1, -1, 9, 86, + -1, -1, -1, 90, 91, -1, -1, -1, 95, -1, + 97, -1, 99, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, 34, 35, -1, 113, -1, -1, -1, + -1, 118, -1, 563, -1, 565, -1, 124, -1, -1, + -1, -1, 53, 54, 55, 56, -1, 58, 59, -1, + -1, -1, -1, -1, -1, 585, -1, -1, -1, -1, + 71, 72, 73, 74, 75, 76, 77, 78, 79, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + 91, -1, -1, -1, -1, -1, 173, 174, 175, 176, + 177, 178, 179, 623, 181, -1, 183, 184, 185, -1, + 187, 631, 189, 190, 115, 116, 117, -1, -1, 639, + -1, 122, -1, 124, 644, 202, -1, -1, -1, 206, + -1, 208, 652, -1, -1, -1, -1, -1, 215, -1, + -1, -1, -1, -1, -1, -1, 223, 224, 225, 226, + 227, 228, 229, -1, 231, -1, 233, 234, 235, -1, + 237, 238, 239, -1, -1, 242, 243, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, 37, 38, 39, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, 37, 38, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, 37, 38, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, 64, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, 38, 39, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, 37, 38, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, 18, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, 45, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 1, 122, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, -1, -1, 19, 20, - 21, 22, 23, 24, 25, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - 41, 42, 43, 44, -1, 46, 47, -1, -1, 50, - 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, - 5, 122, 7, 8, -1, 10, 11, 12, 13, 14, - -1, -1, -1, -1, 19, 20, 21, 22, 23, -1, - 25, -1, -1, 28, 29, -1, -1, -1, 33, 34, - -1, -1, -1, -1, -1, -1, 41, -1, 43, -1, - -1, 46, 47, -1, -1, 50, 51, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, - -1, -1, 67, -1, 69, 70, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, - -1, 96, -1, -1, 99, 100, -1, -1, -1, -1, - -1, 106, 107, -1, -1, -1, -1, -1, 113, 114, - -1, -1, -1, 118, -1, 120, 5, 122, 7, 8, - -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, - 19, 20, 21, 22, 23, -1, 25, -1, -1, 28, - 29, -1, -1, -1, 33, 34, -1, -1, -1, -1, - -1, -1, 41, -1, 43, -1, -1, 46, 47, -1, + 267, 268, -1, 270, 271, 715, -1, 717, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, -1, 7, + 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, + -1, 19, 20, 21, 22, 23, 746, 25, -1, -1, + 28, 29, 752, -1, -1, 33, 34, -1, 758, -1, + -1, -1, -1, 41, 764, 43, -1, -1, 46, 47, + -1, 771, 50, 51, 52, -1, -1, -1, -1, -1, + 780, -1, 60, -1, -1, -1, -1, -1, -1, 67, + -1, 69, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 359, 81, -1, -1, -1, -1, -1, -1, + -1, 811, 812, -1, 92, 93, -1, -1, 96, -1, + -1, 99, 100, -1, -1, -1, -1, -1, 106, 107, + -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, + 118, -1, 120, 843, 122, -1, -1, -1, -1, -1, + -1, 851, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, + 870, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, 896, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, 67, -1, + -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, 938, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, 37, 38, + 39, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 92, 93, -1, -1, 96, -1, -1, - 99, -1, -1, -1, -1, -1, -1, 106, 107, -1, - -1, -1, -1, -1, 113, 114, -1, -1, -1, 118, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, 37, 38, + 39, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, 722, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, 733, -1, -1, 736, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, 37, 38, + 39, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, 37, 38, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, 37, 38, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, 63, 64, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, 38, + 39, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, 37, 38, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, 18, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, 40, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, + -1, 120, 1, 122, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, -1, 41, 42, 43, 44, -1, 46, 47, -1, + -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, -1, -1, 65, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 80, 81, 82, 83, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 113, -1, 115, 116, -1, 118, -1, 120, 5, 122, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 19, 20, 21, 22, 23, -1, 25, -1, -1, 28, 29, -1, -1, -1, @@ -3197,7 +3029,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, 96, -1, -1, 99, -1, -1, -1, -1, -1, -1, 106, 107, -1, -1, -1, -1, -1, - 113, 114, -1, -1, -1, 118, -1, 120, 5, 122, + 113, 114, -1, -1, 117, 118, -1, 120, 5, 122, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 19, 20, 21, 22, 23, -1, 25, -1, -1, 28, 29, -1, -1, -1, 33, 34, -1, -1, @@ -3208,76 +3040,108 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, 96, -1, -1, 99, -1, -1, -1, -1, -1, -1, 106, - 107, -1, -1, -1, -1, -1, 113, 114, -1, -1, - -1, 118, -1, 120, 5, 122, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, -1, -1, 19, 20, - 21, 22, 23, -1, 25, -1, -1, -1, 29, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 107, -1, -1, -1, 26, 27, 113, 114, 30, 31, + 32, 118, -1, 120, 5, 122, 7, 8, -1, 10, + 11, 12, 13, 14, -1, 47, 48, 49, 19, 20, + 21, 22, 23, -1, 25, 57, -1, 28, 29, -1, + -1, -1, 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 43, -1, -1, 46, 47, -1, -1, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 67, -1, 69, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, 96, -1, -1, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, -1, -1, -1, -1, 118, -1, 120, + -1, -1, -1, -1, -1, 106, 107, -1, -1, -1, + 26, 27, 113, 114, 30, 31, 32, 118, -1, 120, 5, 122, 7, 8, -1, 10, 11, 12, 13, 14, - -1, -1, -1, -1, 19, 20, 21, 22, 23, -1, - 25, -1, -1, -1, 29, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 19, 20, 21, 22, 23, -1, + 25, 57, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, 43, -1, - -1, 46, 47, -1, -1, -1, 51, 52, -1, -1, - -1, -1, -1, -1, 9, 60, -1, -1, -1, -1, - -1, -1, 67, -1, 69, 70, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 81, -1, 33, 34, - 35, -1, -1, -1, -1, -1, -1, 92, 93, -1, - -1, 96, -1, -1, -1, -1, -1, -1, 53, 54, - 55, 56, -1, 58, 59, -1, -1, -1, 113, -1, - -1, -1, -1, 118, -1, 120, 71, 72, 73, 74, - 75, 76, 77, 78, 79, -1, 9, -1, -1, 84, - 85, 86, 87, 88, 89, 90, 91, -1, -1, -1, + -1, 46, 47, -1, -1, 50, 51, 52, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, + -1, -1, 67, -1, 69, 70, 102, 103, 104, 105, + 106, 107, 108, 109, 110, -1, 81, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, + -1, 96, -1, -1, 99, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, + -1, -1, -1, 118, -1, 120, 5, 122, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, + 19, 20, 21, 22, 23, -1, 25, -1, -1, -1, + 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, -1, 43, -1, -1, 46, 47, -1, + -1, -1, 51, 52, -1, -1, -1, -1, -1, -1, + 9, 60, -1, -1, -1, -1, -1, -1, 67, -1, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 81, -1, 33, 34, -1, -1, -1, -1, + -1, -1, -1, 92, 93, -1, -1, 96, -1, -1, + -1, -1, -1, -1, 53, 54, 55, 56, -1, 58, + 59, -1, -1, -1, 113, -1, -1, -1, -1, 118, + -1, 120, 71, 72, 73, 74, 75, 76, 77, 78, + 79, -1, 9, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, 34, 35, -1, + -1, -1, -1, -1, -1, -1, 115, 116, -1, -1, + -1, -1, -1, 122, -1, 124, 53, 54, 55, 56, + -1, 58, 59, -1, -1, -1, -1, -1, -1, -1, + -1, 9, -1, -1, 71, 72, 73, 74, 75, 76, + 77, 78, 79, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, 91, 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, - 115, 116, 117, -1, -1, -1, -1, 122, -1, 124, - 53, 54, 55, 56, -1, 58, 59, -1, -1, -1, - -1, -1, -1, -1, -1, 9, -1, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, - -1, 84, 85, 86, 87, 88, 89, 90, 91, 33, - 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, - 54, 55, 56, -1, 58, 59, -1, -1, -1, 122, - -1, 124, -1, -1, 9, -1, -1, 71, 72, 73, - 74, 75, 76, 77, 78, 79, -1, -1, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, - 55, 56, -1, 58, 59, -1, -1, -1, 122, -1, - 124, -1, -1, 9, -1, -1, 71, 72, 73, 74, - 75, 76, 77, 78, 79, -1, -1, -1, -1, 84, - 85, 86, 87, 88, 89, 90, 91, 33, 34, -1, + -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, + 58, 59, -1, -1, -1, 122, -1, 124, -1, -1, + 9, -1, -1, 71, 72, 73, 74, 75, 76, 77, + 78, 79, -1, -1, -1, -1, 84, 85, 86, 87, + 88, 89, 90, 91, 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 53, 54, 55, - 56, -1, 58, 59, -1, -1, -1, 122, -1, 124, - -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, - 76, 77, 78, 79, -1, -1, -1, -1, 84, 85, - 86, 87, 88, 89, 90, 91, 5, -1, -1, -1, - -1, -1, 11, 12, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 53, 54, 55, 56, -1, 58, + 59, -1, -1, -1, 122, -1, 124, -1, -1, -1, + -1, -1, 71, 72, 73, 74, 75, 76, 77, 78, + 79, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 5, -1, -1, -1, -1, -1, 11, + 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 22, 23, -1, 25, -1, -1, -1, 29, -1, -1, + -1, -1, -1, 122, -1, 124, -1, -1, -1, 41, + -1, 43, -1, -1, 46, 47, 5, -1, -1, 51, + 52, -1, 11, 12, -1, -1, -1, -1, 60, -1, -1, -1, -1, 22, 23, -1, 25, -1, -1, -1, - 29, -1, -1, -1, -1, -1, 122, -1, 124, 5, - -1, -1, 41, -1, 43, 11, 12, 46, 47, -1, - -1, -1, 51, 52, -1, -1, 22, 23, -1, 25, - -1, 60, -1, 29, -1, -1, -1, -1, -1, -1, - 69, 70, -1, -1, -1, 41, -1, 43, -1, -1, - 46, 47, 81, -1, -1, 51, 52, -1, -1, -1, - -1, -1, -1, 92, 60, -1, -1, 96, -1, -1, - -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, - 78, 79, -1, -1, -1, 81, 84, 85, 86, 87, - 88, 89, 90, 91, -1, -1, 92, -1, -1, -1, - 96, -1, -1, -1, -1, -1, -1, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, - 118, 84, 85, 86, 87, 88, 89, 90, 91, -1, + 29, -1, -1, -1, -1, -1, -1, -1, -1, 81, + -1, -1, 41, -1, 43, -1, -1, 46, 47, 5, + 92, -1, 51, 52, 96, 11, 12, -1, -1, -1, + -1, 60, -1, -1, -1, -1, 22, 23, -1, 25, + -1, -1, 114, 29, -1, -1, -1, -1, -1, -1, + -1, -1, 81, -1, -1, 41, -1, 43, -1, -1, + 46, 47, 5, 92, -1, 51, 52, 96, 11, 12, + -1, -1, -1, -1, 60, -1, -1, -1, -1, 22, + 23, -1, 25, 69, 70, 114, 29, -1, -1, -1, + -1, -1, -1, -1, -1, 81, -1, -1, 41, -1, + 43, -1, -1, 46, 47, 5, 92, -1, 51, 52, + 96, 11, 12, -1, -1, -1, -1, 60, -1, -1, + -1, -1, 22, 23, -1, 25, -1, 113, -1, 29, + -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, + -1, 41, -1, 43, -1, -1, 46, 47, 5, 92, + -1, 51, 52, 96, 11, 12, -1, 100, -1, -1, + 60, -1, -1, -1, -1, 22, 23, -1, 25, 69, + 70, -1, 29, -1, -1, -1, -1, -1, -1, -1, + -1, 81, -1, -1, 41, -1, 43, -1, -1, 46, + 47, -1, 92, -1, 51, 52, 96, 70, -1, 72, + 73, -1, 75, 60, 77, -1, 79, -1, 81, -1, + 83, -1, 85, -1, 87, 88, 89, -1, -1, -1, + 93, -1, -1, 96, 81, 98, -1, 100, -1, -1, + -1, -1, -1, -1, -1, 92, -1, -1, -1, 96, + -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, + -1, -1, 125, 71, 72, 73, 74, 75, 76, 77, + 78, 79, -1, -1, -1, -1, 84, 85, 86, 87, + 88, 89, 90, 91, 71, 72, 73, 74, 75, 76, + 77, 78, 79, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, 91, -1, -1, -1, -1, -1, + 118, -1, -1, -1, -1, -1, -1, -1, -1, 71, + 72, 73, 74, 75, 76, 77, 78, 79, -1, -1, + -1, 118, 84, 85, 86, 87, 88, 89, 90, 91, + 71, 72, 73, 74, 75, 76, 77, 78, 79, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + 91, -1, -1, -1, -1, -1, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 118 + -1, -1, -1, -1, -1, -1, -1, 118 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -3293,97 +3157,97 @@ static const yytype_uint16 yystos[] = 129, 130, 131, 136, 142, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 188, 189, 190, 191, 192, 194, 198, 203, 204, 205, - 207, 219, 221, 222, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 239, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 256, 257, 270, 273, 276, - 291, 292, 295, 314, 316, 318, 328, 331, 333, 343, - 348, 351, 353, 360, 368, 371, 373, 373, 147, 154, - 155, 35, 35, 258, 259, 246, 250, 251, 252, 11, - 12, 14, 22, 23, 25, 28, 29, 41, 43, 50, - 52, 60, 92, 106, 107, 114, 162, 163, 165, 167, - 170, 172, 174, 177, 179, 181, 183, 188, 189, 190, - 194, 197, 203, 205, 208, 213, 219, 221, 222, 223, - 224, 232, 233, 234, 235, 239, 244, 245, 247, 248, - 250, 254, 161, 160, 161, 145, 148, 179, 208, 213, - 213, 317, 274, 146, 161, 162, 163, 165, 167, 170, - 172, 174, 177, 179, 181, 183, 188, 189, 190, 194, - 203, 205, 218, 219, 239, 248, 254, 35, 271, 260, - 150, 361, 144, 154, 161, 181, 183, 367, 10, 161, - 161, 120, 161, 282, 19, 153, 240, 66, 161, 181, - 183, 188, 190, 203, 248, 340, 341, 352, 213, 248, - 114, 200, 213, 217, 175, 161, 181, 183, 202, 1, - 130, 131, 142, 276, 373, 3, 4, 35, 118, 9, - 124, 236, 237, 9, 236, 161, 181, 183, 187, 248, - 9, 35, 236, 187, 9, 35, 236, 187, 187, 9, - 35, 236, 187, 9, 35, 236, 187, 9, 35, 236, - 187, 9, 35, 187, 9, 236, 187, 248, 9, 35, - 118, 154, 236, 187, 248, 9, 35, 118, 154, 236, - 187, 248, 8, 10, 161, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 176, 177, 178, 180, - 181, 182, 183, 184, 187, 239, 248, 249, 254, 256, - 187, 9, 236, 9, 154, 236, 9, 35, 187, 9, - 35, 154, 236, 187, 9, 35, 118, 236, 187, 9, - 35, 154, 236, 187, 33, 34, 53, 54, 55, 56, - 58, 59, 102, 122, 220, 154, 154, 154, 154, 154, - 9, 35, 236, 9, 35, 154, 236, 187, 248, 117, - 119, 117, 119, 117, 119, 117, 119, 9, 35, 154, - 236, 187, 143, 15, 16, 17, 18, 306, 308, 313, - 1, 12, 24, 25, 130, 142, 156, 157, 158, 159, - 276, 373, 17, 37, 38, 39, 315, 319, 324, 213, - 159, 17, 349, 350, 154, 154, 213, 373, 161, 261, - 264, 261, 250, 213, 213, 213, 161, 192, 209, 214, - 298, 210, 211, 212, 296, 26, 27, 30, 31, 32, - 48, 49, 57, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 300, 302, 304, 215, 117, 152, 117, 373, - 154, 181, 262, 263, 264, 373, 161, 275, 154, 9, - 102, 337, 185, 161, 272, 275, 262, 373, 213, 66, - 19, 118, 278, 373, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 84, 85, 86, 87, 88, 89, 90, - 91, 138, 139, 140, 118, 373, 106, 119, 100, 161, - 242, 243, 114, 117, 161, 197, 208, 248, 369, 370, - 51, 117, 213, 373, 161, 181, 188, 190, 192, 203, - 100, 200, 201, 238, 373, 161, 161, 193, 213, 100, - 213, 216, 117, 123, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 195, 213, 196, 213, 213, 213, 213, - 213, 206, 213, 213, 213, 213, 213, 213, 213, 213, - 202, 213, 213, 200, 200, 200, 200, 213, 154, 373, - 309, 313, 16, 306, 313, 3, 4, 156, 320, 325, - 37, 315, 324, 38, 315, 373, 37, 38, 354, 357, - 373, 124, 138, 268, 269, 117, 373, 373, 117, 139, - 139, 373, 139, 139, 139, 373, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 373, 373, 373, 139, 200, 373, 161, - 138, 268, 117, 149, 138, 117, 373, 213, 138, 51, - 117, 373, 373, 151, 156, 293, 294, 373, 369, 114, - 373, 277, 161, 281, 282, 284, 161, 161, 279, 283, - 19, 373, 138, 125, 117, 161, 181, 188, 190, 203, - 370, 117, 213, 342, 340, 373, 17, 372, 117, 121, - 132, 134, 133, 135, 199, 201, 216, 124, 199, 199, - 199, 307, 213, 311, 313, 161, 161, 213, 373, 322, - 315, 327, 329, 213, 358, 37, 350, 357, 213, 265, - 266, 140, 117, 123, 264, 200, 299, 297, 301, 303, - 305, 117, 9, 140, 263, 373, 161, 334, 161, 161, - 373, 156, 362, 19, 81, 114, 161, 286, 289, 290, - 285, 282, 284, 373, 161, 280, 284, 286, 213, 241, - 100, 161, 370, 117, 344, 293, 201, 373, 118, 373, - 118, 117, 119, 216, 119, 119, 119, 294, 373, 213, - 118, 373, 118, 373, 373, 326, 213, 373, 294, 355, - 373, 213, 9, 213, 124, 294, 294, 294, 294, 294, - 255, 213, 138, 46, 138, 63, 64, 364, 365, 366, - 373, 114, 161, 161, 138, 119, 117, 117, 138, 117, - 121, 119, 117, 121, 138, 213, 96, 347, 17, 100, - 137, 141, 161, 137, 201, 310, 373, 137, 137, 321, - 294, 373, 294, 330, 373, 359, 356, 267, 213, 200, - 213, 161, 363, 373, 373, 161, 138, 118, 138, 138, - 114, 161, 290, 81, 284, 373, 138, 213, 345, 119, - 117, 138, 119, 294, 312, 119, 119, 294, 323, 17, - 40, 332, 294, 294, 373, 213, 119, 47, 338, 17, - 294, 294, 118, 138, 217, 287, 288, 373, 161, 138, - 114, 161, 373, 373, 100, 161, 373, 294, 373, 373, - 294, 294, 213, 335, 287, 117, 119, 118, 138, 161, - 138, 346, 138, 373, 119, 288, 287, 118, 138, 294, - 339, 336, 119, 287, 17, 45, 339, 119, 161, 161 + 188, 189, 190, 191, 192, 194, 198, 204, 205, 206, + 208, 220, 222, 223, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 240, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 270, 273, 276, + 291, 292, 295, 307, 309, 311, 321, 324, 326, 336, + 341, 344, 346, 353, 361, 367, 369, 369, 147, 154, + 155, 35, 35, 258, 259, 118, 11, 12, 14, 22, + 23, 25, 28, 29, 41, 43, 50, 52, 60, 92, + 106, 107, 114, 162, 163, 165, 167, 170, 172, 174, + 177, 179, 181, 183, 188, 189, 190, 194, 197, 204, + 206, 209, 214, 220, 222, 223, 224, 225, 233, 234, + 235, 236, 240, 245, 246, 248, 249, 251, 255, 298, + 161, 160, 161, 145, 148, 179, 209, 214, 214, 310, + 274, 146, 161, 162, 163, 165, 167, 170, 172, 174, + 177, 179, 181, 183, 188, 189, 190, 194, 204, 206, + 219, 220, 240, 249, 255, 35, 271, 260, 150, 354, + 144, 154, 181, 183, 360, 10, 161, 161, 120, 161, + 282, 19, 153, 241, 363, 161, 181, 183, 188, 190, + 204, 249, 333, 334, 345, 214, 249, 214, 175, 161, + 181, 183, 203, 1, 130, 131, 142, 276, 369, 3, + 4, 35, 118, 9, 124, 237, 238, 9, 237, 161, + 181, 183, 187, 249, 9, 35, 237, 187, 9, 35, + 237, 187, 187, 9, 35, 237, 187, 9, 35, 237, + 187, 9, 35, 237, 187, 9, 35, 187, 9, 237, + 187, 249, 9, 35, 118, 154, 237, 187, 249, 9, + 35, 118, 154, 237, 187, 249, 8, 10, 161, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 176, 177, 178, 180, 181, 182, 183, 184, 187, 240, + 249, 250, 255, 256, 187, 9, 237, 9, 154, 237, + 9, 35, 187, 9, 35, 154, 237, 187, 9, 35, + 118, 237, 187, 9, 35, 154, 237, 187, 33, 34, + 53, 54, 55, 56, 58, 59, 102, 122, 221, 154, + 154, 154, 154, 154, 9, 35, 237, 9, 35, 154, + 237, 187, 249, 117, 119, 117, 119, 117, 119, 117, + 119, 9, 35, 154, 237, 187, 143, 15, 16, 17, + 18, 299, 301, 306, 1, 12, 24, 25, 130, 142, + 156, 157, 158, 159, 276, 369, 17, 37, 38, 39, + 308, 312, 317, 214, 159, 17, 342, 343, 154, 154, + 214, 369, 161, 261, 264, 261, 214, 251, 214, 214, + 214, 161, 192, 210, 215, 211, 212, 213, 26, 27, + 30, 31, 32, 48, 49, 57, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 216, 117, 296, 152, 117, + 369, 154, 181, 262, 263, 264, 369, 161, 275, 154, + 9, 102, 330, 185, 161, 272, 275, 262, 369, 214, + 362, 19, 118, 278, 369, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 84, 85, 86, 87, 88, 89, + 90, 91, 138, 139, 140, 118, 369, 106, 119, 100, + 161, 243, 244, 66, 364, 51, 117, 214, 369, 100, + 114, 200, 201, 202, 214, 218, 239, 369, 161, 161, + 193, 214, 100, 214, 217, 117, 123, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 195, 214, 196, 214, + 214, 214, 214, 214, 207, 214, 214, 214, 214, 214, + 214, 214, 214, 203, 214, 214, 214, 214, 214, 214, + 214, 154, 369, 302, 306, 16, 299, 306, 3, 4, + 156, 313, 318, 37, 308, 317, 38, 308, 369, 37, + 38, 347, 350, 369, 124, 138, 268, 269, 117, 369, + 369, 117, 117, 139, 139, 139, 139, 139, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 139, 117, 201, 214, 369, + 369, 161, 138, 268, 117, 149, 138, 117, 369, 214, + 138, 51, 117, 369, 369, 151, 156, 293, 294, 369, + 364, 114, 369, 277, 161, 281, 282, 284, 161, 161, + 279, 283, 19, 369, 138, 125, 117, 117, 161, 197, + 201, 209, 249, 365, 366, 214, 335, 333, 369, 17, + 368, 161, 181, 188, 190, 192, 204, 117, 121, 132, + 134, 133, 135, 199, 202, 217, 124, 199, 199, 199, + 300, 214, 304, 306, 161, 161, 214, 369, 315, 308, + 320, 322, 214, 351, 37, 343, 350, 214, 265, 266, + 140, 117, 123, 264, 200, 214, 200, 117, 117, 297, + 9, 140, 263, 369, 161, 327, 161, 161, 369, 156, + 355, 19, 81, 114, 161, 286, 289, 290, 285, 282, + 284, 369, 161, 280, 284, 286, 214, 242, 100, 161, + 366, 117, 117, 337, 293, 202, 369, 118, 369, 118, + 117, 119, 217, 119, 119, 119, 294, 369, 214, 118, + 369, 118, 369, 369, 319, 214, 369, 294, 348, 369, + 214, 9, 214, 124, 117, 119, 200, 200, 294, 214, + 138, 46, 138, 63, 64, 357, 358, 359, 369, 114, + 161, 161, 138, 119, 117, 117, 138, 117, 121, 119, + 117, 121, 138, 366, 214, 96, 340, 17, 100, 137, + 141, 161, 137, 202, 303, 369, 137, 137, 314, 294, + 369, 294, 323, 369, 352, 349, 267, 214, 200, 119, + 119, 214, 161, 356, 369, 369, 161, 138, 118, 138, + 138, 114, 161, 290, 81, 284, 369, 138, 214, 338, + 119, 117, 138, 119, 294, 305, 119, 119, 294, 316, + 17, 40, 325, 294, 294, 369, 214, 119, 47, 331, + 17, 294, 294, 118, 138, 218, 287, 288, 369, 161, + 138, 114, 161, 369, 369, 100, 161, 369, 294, 369, + 369, 294, 294, 214, 328, 287, 117, 119, 118, 138, + 161, 138, 339, 138, 369, 119, 288, 287, 118, 138, + 294, 332, 329, 119, 287, 17, 45, 332, 119, 161, + 161 }; #define yyerrok (yyerrstatus = 0) @@ -3898,14 +3762,14 @@ yydestruct (yymsg, yytype, yyvaluep, pComp) switch (yytype) { case 19: /* "LITERAL" */ -#line 259 "harbour.y" +#line 260 "harbour.y" { if( (yyvaluep->valChar).dealloc ) hb_xfree( (yyvaluep->valChar).string ); }; -#line 3904 "harboury.c" +#line 3768 "harboury.c" break; case 93: /* "CBSTART" */ -#line 258 "harbour.y" +#line 259 "harbour.y" { if( (yyvaluep->asCodeblock).string ) hb_xfree( (yyvaluep->asCodeblock).string ); }; -#line 3909 "harboury.c" +#line 3773 "harboury.c" break; default: @@ -4214,248 +4078,248 @@ yyreduce: switch (yyn) { case 2: -#line 263 "harbour.y" +#line 264 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); ;} break; case 3: -#line 263 "harbour.y" +#line 264 "harbour.y" { ;} break; case 10: -#line 272 "harbour.y" +#line 273 "harbour.y" { yyclearin; yyerrok; ;} break; case 16: -#line 278 "harbour.y" +#line 279 "harbour.y" { yyclearin; yyerrok; ;} break; case 17: -#line 282 "harbour.y" +#line 283 "harbour.y" { if( (yyvsp[(3) - (4)].valChar).dealloc ) { hb_xfree( (yyvsp[(3) - (4)].valChar).string ); (yyvsp[(3) - (4)].valChar).dealloc = FALSE; } ;} break; case 18: -#line 284 "harbour.y" +#line 285 "harbour.y" { if( (yyvsp[(3) - (6)].valChar).dealloc ) { hb_xfree( (yyvsp[(3) - (6)].valChar).string ); (yyvsp[(3) - (6)].valChar).dealloc = FALSE; } if( (yyvsp[(5) - (6)].valChar).dealloc ) { hb_xfree( (yyvsp[(5) - (6)].valChar).string ); (yyvsp[(5) - (6)].valChar).dealloc = FALSE; } ;} break; case 19: -#line 288 "harbour.y" +#line 289 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), 0 ); ;} break; case 20: -#line 288 "harbour.y" +#line 289 "harbour.y" {;} break; case 21: -#line 289 "harbour.y" +#line 290 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), FUN_PROCEDURE ); ;} break; case 22: -#line 289 "harbour.y" +#line 290 "harbour.y" {;} break; case 23: -#line 290 "harbour.y" +#line 291 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), 0 ); HB_COMP_PARAM->iVarScope = VS_PARAMETER; ;} break; case 24: -#line 290 "harbour.y" +#line 291 "harbour.y" {;} break; case 25: -#line 291 "harbour.y" +#line 292 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; hb_compFunctionAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), ( HB_SYMBOLSCOPE ) (yyvsp[(1) - (3)].iNumber), FUN_PROCEDURE ); HB_COMP_PARAM->iVarScope = VS_PARAMETER;;} break; case 26: -#line 291 "harbour.y" +#line 292 "harbour.y" {;} break; case 27: -#line 294 "harbour.y" +#line 295 "harbour.y" { (yyval.iNumber) = HB_FS_PUBLIC; ;} break; case 28: -#line 295 "harbour.y" +#line 296 "harbour.y" { (yyval.iNumber) = HB_FS_STATIC; ;} break; case 29: -#line 296 "harbour.y" +#line 297 "harbour.y" { (yyval.iNumber) = HB_FS_INIT; ;} break; case 30: -#line 297 "harbour.y" +#line 298 "harbour.y" { (yyval.iNumber) = HB_FS_EXIT; ;} break; case 31: -#line 300 "harbour.y" +#line 301 "harbour.y" { (yyval.iNumber) = 0; ;} break; case 32: -#line 301 "harbour.y" +#line 302 "harbour.y" { HB_COMP_PARAM->functions.pLast->fVParams = TRUE; (yyval.iNumber) = 0; ;} break; case 34: -#line 303 "harbour.y" +#line 304 "harbour.y" { HB_COMP_PARAM->functions.pLast->fVParams = TRUE; (yyval.iNumber) = (yyvsp[(1) - (3)].iNumber); ;} break; case 35: -#line 306 "harbour.y" +#line 307 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 37: -#line 310 "harbour.y" +#line 311 "harbour.y" { HB_COMP_PARAM->cVarType = 'N'; ;} break; case 38: -#line 311 "harbour.y" +#line 312 "harbour.y" { HB_COMP_PARAM->cVarType = 'C'; ;} break; case 39: -#line 312 "harbour.y" +#line 313 "harbour.y" { HB_COMP_PARAM->cVarType = 'D'; ;} break; case 40: -#line 313 "harbour.y" +#line 314 "harbour.y" { HB_COMP_PARAM->cVarType = 'L'; ;} break; case 41: -#line 314 "harbour.y" +#line 315 "harbour.y" { HB_COMP_PARAM->cVarType = 'B'; ;} break; case 42: -#line 315 "harbour.y" +#line 316 "harbour.y" { HB_COMP_PARAM->cVarType = 'O'; ;} break; case 43: -#line 316 "harbour.y" +#line 317 "harbour.y" { HB_COMP_PARAM->cVarType = 'S'; HB_COMP_PARAM->szFromClass = (yyvsp[(2) - (2)].string); ;} break; case 44: -#line 317 "harbour.y" +#line 318 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 46: -#line 321 "harbour.y" +#line 322 "harbour.y" { HB_COMP_PARAM->cVarType = 'A'; ;} break; case 47: -#line 322 "harbour.y" +#line 323 "harbour.y" { HB_COMP_PARAM->cVarType = 'n'; ;} break; case 48: -#line 323 "harbour.y" +#line 324 "harbour.y" { HB_COMP_PARAM->cVarType = 'c'; ;} break; case 49: -#line 324 "harbour.y" +#line 325 "harbour.y" { HB_COMP_PARAM->cVarType = 'd'; ;} break; case 50: -#line 325 "harbour.y" +#line 326 "harbour.y" { HB_COMP_PARAM->cVarType = 'l'; ;} break; case 51: -#line 326 "harbour.y" +#line 327 "harbour.y" { HB_COMP_PARAM->cVarType = 'a'; ;} break; case 52: -#line 327 "harbour.y" +#line 328 "harbour.y" { HB_COMP_PARAM->cVarType = 'b'; ;} break; case 53: -#line 328 "harbour.y" +#line 329 "harbour.y" { HB_COMP_PARAM->cVarType = 'o'; ;} break; case 54: -#line 329 "harbour.y" +#line 330 "harbour.y" { HB_COMP_PARAM->cVarType = 's'; HB_COMP_PARAM->szFromClass = (yyvsp[(2) - (2)].string); ;} break; case 55: -#line 332 "harbour.y" +#line 333 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); (yyval.iNumber) = 1; ;} break; case 56: -#line 333 "harbour.y" +#line 334 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); (yyval.iNumber)++; ;} break; case 57: -#line 341 "harbour.y" +#line 342 "harbour.y" { HB_COMP_PARAM->fDontGenLineNum = TRUE; ;} break; case 58: -#line 341 "harbour.y" - { ;} - break; - - case 59: #line 342 "harbour.y" { ;} break; - case 60: + case 59: #line 343 "harbour.y" - { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} + { ;} break; - case 61: + case 60: #line 344 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 62: + case 61: #line 345 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 63: + case 62: #line 346 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 64: + case 63: #line 347 "harbour.y" + { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} + break; + + case 64: +#line 348 "harbour.y" { if( HB_COMP_ISSUPPORTED( HB_COMPFLAG_XBASE ) ) hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); else @@ -4465,7 +4329,7 @@ yyreduce: break; case 65: -#line 353 "harbour.y" +#line 354 "harbour.y" { if( HB_COMP_ISSUPPORTED( HB_COMPFLAG_XBASE ) ) hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); else @@ -4475,53 +4339,53 @@ yyreduce: break; case 66: -#line 359 "harbour.y" - { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} - break; - - case 67: #line 360 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 68: + case 67: #line 361 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 69: + case 68: #line 362 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 70: + case 69: #line 363 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 71: + case 70: #line 364 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 72: + case 71: #line 365 "harbour.y" { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; - case 73: + case 72: #line 366 "harbour.y" + { hb_compExprDelete( hb_compExprGenStatement( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} + break; + + case 73: +#line 367 "harbour.y" { hb_compGenBreak( HB_COMP_PARAM ); hb_compGenPCode2( HB_P_DOSHORT, 0, HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; ;} break; case 74: -#line 368 "harbour.y" +#line 369 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 75: -#line 368 "harbour.y" +#line 369 "harbour.y" { hb_compGenBreak( HB_COMP_PARAM ); hb_compExprDelete( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); hb_compGenPCode2( HB_P_DOSHORT, 1, HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; @@ -4529,27 +4393,27 @@ yyreduce: break; case 76: -#line 372 "harbour.y" +#line 373 "harbour.y" { HB_COMP_PARAM->fDontGenLineNum = !HB_COMP_PARAM->fDebugInfo; ;} break; case 77: -#line 372 "harbour.y" +#line 373 "harbour.y" { hb_compLoopExit( HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; ;} break; case 78: -#line 373 "harbour.y" +#line 374 "harbour.y" { HB_COMP_PARAM->fDontGenLineNum = !HB_COMP_PARAM->fDebugInfo; ;} break; case 79: -#line 373 "harbour.y" +#line 374 "harbour.y" { hb_compLoopLoop( HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->bFlags |= FUN_BREAK_CODE; ;} break; case 80: -#line 374 "harbour.y" +#line 375 "harbour.y" { if( HB_COMP_PARAM->wSeqCounter ) { @@ -4567,12 +4431,12 @@ yyreduce: break; case 81: -#line 388 "harbour.y" +#line 389 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; case 82: -#line 390 "harbour.y" +#line 391 "harbour.y" { HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' '; @@ -4594,12 +4458,12 @@ yyreduce: break; case 83: -#line 408 "harbour.y" +#line 409 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->iVarScope = VS_PUBLIC; ;} break; case 84: -#line 410 "harbour.y" +#line 411 "harbour.y" { hb_compRTVariableGen( HB_COMP_PARAM, "__MVPUBLIC" ); HB_COMP_PARAM->cVarType = ' '; HB_COMP_PARAM->iVarScope = VS_NONE; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; @@ -4607,12 +4471,12 @@ yyreduce: break; case 86: -#line 414 "harbour.y" +#line 415 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_PARAM->iVarScope = VS_PRIVATE; ;} break; case 87: -#line 416 "harbour.y" +#line 417 "harbour.y" { hb_compRTVariableGen( HB_COMP_PARAM, "__MVPRIVATE" ); HB_COMP_PARAM->cVarType = ' '; HB_COMP_PARAM->iVarScope = VS_NONE; HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; @@ -4620,7 +4484,7 @@ yyreduce: break; case 93: -#line 424 "harbour.y" +#line 425 "harbour.y" { if( HB_COMP_PARAM->szAnnounce == NULL ) { @@ -4638,12 +4502,12 @@ yyreduce: break; case 95: -#line 438 "harbour.y" +#line 439 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_WITH_RETURN; ;} break; case 96: -#line 441 "harbour.y" +#line 442 "harbour.y" { if( (yyvsp[(1) - (1)].valChar).dealloc ) { @@ -4655,7 +4519,7 @@ yyreduce: break; case 97: -#line 449 "harbour.y" +#line 450 "harbour.y" { { char szFileName[ _POSIX_PATH_MAX + 1 ]; @@ -4670,37 +4534,37 @@ yyreduce: break; case 98: -#line 462 "harbour.y" +#line 463 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 100: -#line 465 "harbour.y" +#line 466 "harbour.y" { (yyval.lNumber) = 0; HB_COMP_PARAM->fDontGenLineNum = TRUE; ;} break; case 101: -#line 466 "harbour.y" - { (yyval.lNumber) = 1; ;} - break; - - case 102: #line 467 "harbour.y" { (yyval.lNumber) = 1; ;} break; - case 103: + case 102: #line 468 "harbour.y" { (yyval.lNumber) = 1; ;} break; - case 104: + case 103: #line 469 "harbour.y" + { (yyval.lNumber) = 1; ;} + break; + + case 104: +#line 470 "harbour.y" { (yyval.lNumber) = 0; hb_compCheckUnclosedStru( HB_COMP_PARAM ); ;} break; case 105: -#line 470 "harbour.y" +#line 471 "harbour.y" { int iLine = hb_pp_line( HB_COMP_PARAM->pLex->pPP ); if( HB_COMP_PARAM->ilastLineErr && HB_COMP_PARAM->ilastLineErr == iLine ) { @@ -4715,137 +4579,137 @@ yyreduce: break; case 106: -#line 483 "harbour.y" - {;} - break; - - case 107: #line 484 "harbour.y" {;} break; - case 108: + case 107: #line 485 "harbour.y" {;} break; - case 109: + case 108: #line 486 "harbour.y" {;} break; + case 109: +#line 487 "harbour.y" + {;} + break; + case 114: -#line 495 "harbour.y" +#line 496 "harbour.y" { (yyval.lNumber) = (yyvsp[(1) - (1)].lNumber); ;} break; case 115: -#line 496 "harbour.y" +#line 497 "harbour.y" { (yyval.lNumber) += (yyvsp[(2) - (2)].lNumber); ;} break; case 116: -#line 499 "harbour.y" +#line 500 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string) ); ;} break; case 117: -#line 500 "harbour.y" +#line 501 "harbour.y" { hb_compExternAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].string) ); ;} break; case 119: -#line 504 "harbour.y" +#line 505 "harbour.y" { (yyval.string) = "STEP"; ;} break; case 120: -#line 505 "harbour.y" +#line 506 "harbour.y" { (yyval.string) = "TO"; ;} break; case 121: -#line 506 "harbour.y" +#line 507 "harbour.y" { (yyval.string) = "LOOP"; ;} break; case 122: -#line 507 "harbour.y" +#line 508 "harbour.y" { (yyval.string) = "EXIT"; ;} break; case 123: -#line 508 "harbour.y" +#line 509 "harbour.y" { (yyval.string) = "IN"; ;} break; case 124: -#line 509 "harbour.y" - { (yyval.string) = (yyvsp[(1) - (1)].string); ;} - break; - - case 125: #line 510 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 126: + case 125: #line 511 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 127: + case 126: #line 512 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 128: + case 127: #line 513 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 129: + case 128: #line 514 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 130: + case 129: #line 515 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 131: + case 130: #line 516 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 132: + case 131: #line 517 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 133: + case 132: #line 518 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; - case 134: + case 133: #line 519 "harbour.y" { (yyval.string) = (yyvsp[(1) - (1)].string); ;} break; + case 134: +#line 520 "harbour.y" + { (yyval.string) = (yyvsp[(1) - (1)].string); ;} + break; + case 135: -#line 524 "harbour.y" +#line 525 "harbour.y" { (yyval.asExpr) = hb_compExprNewDouble( (yyvsp[(1) - (1)].valDouble).dNumber, (yyvsp[(1) - (1)].valDouble).bWidth, (yyvsp[(1) - (1)].valDouble).bDec, HB_COMP_PARAM ); ;} break; case 136: -#line 525 "harbour.y" +#line 526 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 137: -#line 528 "harbour.y" +#line 529 "harbour.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); if( (yyvsp[(1) - (1)].valLong).lNumber == 0 ) { @@ -4855,22 +4719,22 @@ yyreduce: break; case 138: -#line 536 "harbour.y" +#line 537 "harbour.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 139: -#line 537 "harbour.y" +#line 538 "harbour.y" { (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, hb_compExprNewDouble( (yyvsp[(1) - (2)].valDouble).dNumber, (yyvsp[(1) - (2)].valDouble).bWidth, (yyvsp[(1) - (2)].valDouble).bDec, HB_COMP_PARAM ) ); ;} break; case 140: -#line 542 "harbour.y" +#line 543 "harbour.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 142: -#line 550 "harbour.y" +#line 551 "harbour.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, (yyvsp[(1) - (1)].valChar).dealloc, HB_COMP_PARAM ); (yyvsp[(1) - (1)].valChar).dealloc = FALSE; @@ -4878,985 +4742,990 @@ yyreduce: break; case 145: -#line 566 "harbour.y" +#line 567 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 146: -#line 567 "harbour.y" +#line 568 "harbour.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 148: -#line 575 "harbour.y" +#line 576 "harbour.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 150: -#line 583 "harbour.y" +#line 584 "harbour.y" {(yyval.bTrue)=HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_ARRAY;;} break; case 151: -#line 583 "harbour.y" +#line 584 "harbour.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef=(yyvsp[(2) - (4)].bTrue); ;} break; case 153: -#line 591 "harbour.y" +#line 592 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 155: -#line 599 "harbour.y" +#line 600 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 156: -#line 602 "harbour.y" +#line 603 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 157: -#line 607 "harbour.y" +#line 608 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 158: -#line 608 "harbour.y" +#line 609 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, 0, (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 160: -#line 616 "harbour.y" +#line 617 "harbour.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 162: -#line 626 "harbour.y" +#line 627 "harbour.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 163: -#line 627 "harbour.y" +#line 628 "harbour.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 164: -#line 632 "harbour.y" - { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 165: #line 633 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 166: + case 165: #line 634 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 167: + case 166: #line 635 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 168: + case 167: #line 636 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 169: + case 168: #line 637 "harbour.y" - { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 170: + case 169: #line 638 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 171: + case 170: #line 639 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 172: + case 171: #line 640 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 173: + case 172: #line 641 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 174: + case 173: #line 642 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 175: + case 174: #line 643 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 176: + case 175: #line 644 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; + case 176: +#line 645 "harbour.y" + { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} + break; + case 177: -#line 647 "harbour.y" +#line 648 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 180: -#line 652 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 181: #line 653 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 182: + case 181: #line 654 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 183: + case 182: #line 655 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 184: + case 183: #line 656 "harbour.y" - { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 185: + case 184: #line 657 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 186: + case 185: #line 658 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 187: + case 186: #line 659 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 188: + case 187: #line 660 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 189: + case 188: #line 661 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 190: + case 189: #line 662 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 191: + case 190: #line 663 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 192: + case 191: #line 664 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 193: + case 192: #line 665 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 194: + case 193: #line 666 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 195: + case 194: #line 667 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 196: + case 195: #line 668 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + { hb_compExprDelete( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(1) - (2)].asExpr) ); ;} break; - case 197: + case 196: #line 669 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 198: + case 197: #line 670 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 199: -#line 679 "harbour.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + case 198: +#line 671 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 200: + case 199: #line 680 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 201: + case 200: #line 681 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 202: + case 201: #line 682 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 203: + case 202: #line 683 "harbour.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 204: + case 203: #line 684 "harbour.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 204: +#line 685 "harbour.y" { hb_compExprDelete( (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ); (yyval.asExpr) = hb_compErrorAlias( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 205: -#line 689 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 206: #line 690 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 207: + case 206: #line 691 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 208: + case 207: #line 692 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 209: + case 208: #line 693 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 210: + case 209: #line 694 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 211: + case 210: #line 695 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 212: + case 211: #line 696 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 213: + case 212: #line 697 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 214: + case 213: #line 698 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 215: + case 214: #line 699 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 216: + case 215: #line 700 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 217: + case 216: #line 701 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 218: + case 217: #line 702 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 219: + case 218: #line 703 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 220: + case 219: #line 704 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 221: + case 220: #line 705 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 221: +#line 706 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 223: -#line 711 "harbour.y" +#line 712 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 224: -#line 711 "harbour.y" +#line 712 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( (yyvsp[(1) - (5)].string), HB_COMP_PARAM ), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 226: -#line 715 "harbour.y" +#line 716 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 227: -#line 715 "harbour.y" +#line 716 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 228: -#line 716 "harbour.y" +#line 717 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; case 229: -#line 716 "harbour.y" +#line 717 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (5)].bTrue); ;} break; case 230: -#line 720 "harbour.y" +#line 721 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); ;} break; case 232: -#line 726 "harbour.y" +#line 727 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 233: -#line 727 "harbour.y" +#line 728 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 235: -#line 731 "harbour.y" + case 236: +#line 735 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ) ); ;} break; - case 236: -#line 732 "harbour.y" - { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} - break; - case 237: -#line 733 "harbour.y" +#line 736 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 238: -#line 734 "harbour.y" +#line 737 "harbour.y" { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 239: -#line 735 "harbour.y" - { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr)->value.asList.reference = TRUE; ;} +#line 738 "harbour.y" + { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} break; case 240: -#line 738 "harbour.y" +#line 739 "harbour.y" + { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr)->value.asList.reference = TRUE; ;} + break; + + case 241: +#line 742 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; - case 242: -#line 744 "harbour.y" + case 243: +#line 748 "harbour.y" { (yyval.asMessage).value.string = (yyvsp[(1) - (1)].string); (yyval.asMessage).bMacro=FALSE; ;} break; - case 243: -#line 745 "harbour.y" - { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} - break; - case 244: -#line 746 "harbour.y" +#line 749 "harbour.y" { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; case 245: -#line 749 "harbour.y" - { (yyval.asExpr) = ((yyvsp[(3) - (3)].asMessage).bMacro ? hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} +#line 750 "harbour.y" + { (yyval.asMessage).value.macro = (yyvsp[(1) - (1)].asExpr); (yyval.asMessage).bMacro=TRUE; ;} break; case 246: -#line 750 "harbour.y" +#line 753 "harbour.y" + { (yyval.asExpr) = ((yyvsp[(3) - (3)].asMessage).bMacro ? hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} + break; + + case 247: +#line 754 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt == 0 ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_WITHOBJECT, NULL, NULL ); (yyval.asExpr) = ((yyvsp[(2) - (2)].asMessage).bMacro ? hb_compExprNewSend( NULL, NULL, (yyvsp[(2) - (2)].asMessage).value.macro, HB_COMP_PARAM ) : hb_compExprNewSend( NULL, (yyvsp[(2) - (2)].asMessage).value.string, NULL, HB_COMP_PARAM )); ;} break; - case 248: -#line 761 "harbour.y" + case 249: +#line 765 "harbour.y" {(yyval.bTrue)=HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL;;} break; - case 249: -#line 761 "harbour.y" + case 250: +#line 765 "harbour.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr) ); HB_COMP_PARAM->iPassByRef=(yyvsp[(3) - (5)].bTrue); ;} break; - case 258: -#line 780 "harbour.y" - {HB_COMP_PARAM->cVarType = ' ';;} - break; - case 259: -#line 780 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} +#line 784 "harbour.y" + {HB_COMP_PARAM->cVarType = ' ';;} break; - case 268: -#line 789 "harbour.y" - {HB_COMP_PARAM->cVarType = ' ';;} + case 260: +#line 784 "harbour.y" + { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 269: -#line 789 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} +#line 793 "harbour.y" + {HB_COMP_PARAM->cVarType = ' ';;} break; - case 272: -#line 792 "harbour.y" - {HB_COMP_PARAM->cVarType = ' ';;} + case 270: +#line 793 "harbour.y" + { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 273: -#line 792 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} - break; - - case 275: -#line 794 "harbour.y" +#line 796 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; - case 276: -#line 794 "harbour.y" + case 274: +#line 796 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; - case 288: -#line 808 "harbour.y" - { HB_COMP_PARAM->cVarType = ' ';;} + case 276: +#line 798 "harbour.y" + {HB_COMP_PARAM->cVarType = ' ';;} + break; + + case 277: +#line 798 "harbour.y" + { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; case 289: -#line 808 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} - break; - - case 290: -#line 809 "harbour.y" +#line 812 "harbour.y" { HB_COMP_PARAM->cVarType = ' ';;} break; - case 291: -#line 809 "harbour.y" + case 290: +#line 812 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} break; - case 293: + case 291: #line 813 "harbour.y" + { HB_COMP_PARAM->cVarType = ' ';;} + break; + + case 292: +#line 813 "harbour.y" + { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); ;} + break; + + case 294: +#line 817 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; - case 295: -#line 817 "harbour.y" + case 296: +#line 821 "harbour.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; - case 297: -#line 821 "harbour.y" + case 298: +#line 825 "harbour.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; - case 303: -#line 827 "harbour.y" + case 304: +#line 831 "harbour.y" { (yyval.asExpr) = hb_compExprListStrip( (yyvsp[(1) - (1)].asExpr), NULL ); ;} break; - case 324: -#line 859 "harbour.y" + case 325: +#line 863 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 325: -#line 860 "harbour.y" + case 326: +#line 864 "harbour.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 326: -#line 863 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - case 327: -#line 866 "harbour.y" - { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 867 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 328: -#line 867 "harbour.y" - { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 870 "harbour.y" + { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 329: -#line 870 "harbour.y" - { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 871 "harbour.y" + { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 330: -#line 871 "harbour.y" - { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 874 "harbour.y" + { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 331: -#line 872 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} +#line 875 "harbour.y" + { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 332: -#line 880 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 876 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 333: -#line 881 "harbour.y" +#line 879 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 334: -#line 882 "harbour.y" +#line 880 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 335: -#line 883 "harbour.y" +#line 881 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 336: -#line 884 "harbour.y" +#line 882 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 337: -#line 885 "harbour.y" +#line 883 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 338: -#line 886 "harbour.y" +#line 884 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 339: -#line 887 "harbour.y" +#line 885 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 340: -#line 888 "harbour.y" +#line 886 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 341: -#line 889 "harbour.y" +#line 887 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 342: -#line 890 "harbour.y" +#line 888 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 343: -#line 891 "harbour.y" +#line 889 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 344: -#line 892 "harbour.y" +#line 890 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 345: -#line 893 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} +#line 891 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 346: -#line 894 "harbour.y" +#line 892 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; case 347: -#line 895 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 893 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} break; case 348: -#line 896 "harbour.y" +#line 894 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 349: -#line 897 "harbour.y" +#line 895 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 350: -#line 898 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} - break; - - case 351: -#line 899 "harbour.y" +#line 896 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; + case 351: +#line 897 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' ';;} + break; + case 352: -#line 902 "harbour.y" +#line 898 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 353: -#line 905 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 901 "harbour.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 354: -#line 908 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 904 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 355: -#line 911 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 907 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 356: -#line 914 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 910 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 357: -#line 917 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 913 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 358: -#line 920 "harbour.y" +#line 916 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 359: +#line 919 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 365: -#line 931 "harbour.y" + case 366: +#line 930 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 366: -#line 932 "harbour.y" + case 367: +#line 931 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 367: -#line 933 "harbour.y" + case 368: +#line 932 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 368: -#line 934 "harbour.y" + case 369: +#line 933 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 369: -#line 935 "harbour.y" + case 370: +#line 934 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 370: -#line 936 "harbour.y" + case 371: +#line 935 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 371: -#line 939 "harbour.y" + case 372: +#line 938 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 372: -#line 940 "harbour.y" + case 373: +#line 939 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 373: -#line 943 "harbour.y" + case 374: +#line 942 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 374: -#line 944 "harbour.y" + case 375: +#line 943 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 375: -#line 945 "harbour.y" + case 376: +#line 944 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 376: -#line 946 "harbour.y" + case 377: +#line 945 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 377: -#line 947 "harbour.y" + case 378: +#line 946 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 378: -#line 948 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - case 379: -#line 949 "harbour.y" +#line 947 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 380: -#line 950 "harbour.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} +#line 948 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 381: -#line 951 "harbour.y" +#line 949 "harbour.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 382: +#line 950 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 383: -#line 960 "harbour.y" + case 384: +#line 959 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 384: -#line 961 "harbour.y" + case 385: +#line 960 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 385: -#line 962 "harbour.y" + case 386: +#line 961 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; - case 386: -#line 965 "harbour.y" + case 387: +#line 964 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 387: -#line 966 "harbour.y" - { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} - break; - case 388: -#line 969 "harbour.y" - { (yyval.asExpr) = hb_compExprNewCodeBlock( (yyvsp[(1) - (1)].asCodeblock).string, (yyvsp[(1) - (1)].asCodeblock).length, (yyvsp[(1) - (1)].asCodeblock).flags, HB_COMP_PARAM ); (yyvsp[(1) - (1)].asCodeblock).string = NULL; ;} +#line 965 "harbour.y" + { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 389: -#line 970 "harbour.y" - { (yyval.asExpr) = (yyvsp[(2) - (6)].asExpr); ;} +#line 968 "harbour.y" + { (yyval.asExpr) = hb_compExprNewCodeBlock( (yyvsp[(1) - (1)].asCodeblock).string, (yyvsp[(1) - (1)].asCodeblock).length, (yyvsp[(1) - (1)].asCodeblock).flags, HB_COMP_PARAM ); (yyvsp[(1) - (1)].asCodeblock).string = NULL; ;} break; case 390: -#line 975 "harbour.y" - { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} +#line 969 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (6)].asExpr); ;} break; case 391: -#line 976 "harbour.y" - { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} +#line 974 "harbour.y" + { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; case 392: -#line 981 "harbour.y" - { (yyval.asExpr) = NULL; ;} +#line 975 "harbour.y" + { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 393: -#line 982 "harbour.y" - { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} +#line 980 "harbour.y" + { (yyval.asExpr) = NULL; ;} break; case 394: -#line 983 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} +#line 981 "harbour.y" + { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 395: -#line 984 "harbour.y" - { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} +#line 982 "harbour.y" + { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; case 396: -#line 987 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (2)].asExpr), (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} +#line 983 "harbour.y" + { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 397: -#line 988 "harbour.y" +#line 986 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (2)].asExpr), (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} + break; + + case 398: +#line 987 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (4)].asExpr), (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType, HB_COMP_PARAM ); HB_COMP_PARAM->cVarType = ' '; ;} break; - case 407: -#line 1019 "harbour.y" + case 408: +#line 1024 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 408: -#line 1022 "harbour.y" - { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} - break; - case 409: -#line 1025 "harbour.y" +#line 1027 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 410: -#line 1028 "harbour.y" +#line 1030 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 411: -#line 1029 "harbour.y" +#line 1033 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 412: -#line 1032 "harbour.y" - { (yyval.asExpr) = hb_compExprNewIIF( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} +#line 1034 "harbour.y" + { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 413: -#line 1034 "harbour.y" - { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(2) - (5)].asExpr), (yyvsp[(4) - (5)].asExpr) ); ;} +#line 1038 "harbour.y" + { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} break; case 414: -#line 1036 "harbour.y" - { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( (yyvsp[(6) - (8)].asExpr), (yyvsp[(7) - (8)].asExpr) ), HB_COMP_PARAM ); ;} +#line 1040 "harbour.y" + { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(2) - (7)].asExpr), HB_COMP_PARAM ), (yyvsp[(4) - (7)].asExpr) ), (yyvsp[(6) - (7)].asExpr) ) ); ;} + break; + + case 415: +#line 1042 "harbour.y" + { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(2) - (7)].asExpr), HB_COMP_PARAM ), (yyvsp[(4) - (7)].asExpr) ), (yyvsp[(6) - (7)].asExpr) ) ); ;} break; case 416: -#line 1042 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} - break; - - case 417: -#line 1043 "harbour.y" - { HB_COMP_PARAM->cVarType = ' '; ;} +#line 1044 "harbour.y" + { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(2) - (6)].asExpr), HB_COMP_PARAM ), hb_compExprNewEmpty( HB_COMP_PARAM ) ), (yyvsp[(5) - (6)].asExpr) ) ); ;} break; case 418: -#line 1044 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} +#line 1050 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} break; case 419: -#line 1045 "harbour.y" +#line 1051 "harbour.y" { HB_COMP_PARAM->cVarType = ' '; ;} break; case 420: -#line 1046 "harbour.y" +#line 1052 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} + break; + + case 421: +#line 1053 "harbour.y" + { HB_COMP_PARAM->cVarType = ' '; ;} + break; + + case 422: +#line 1054 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->bFlags & FUN_USES_LOCAL_PARAMS ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_PARAMETERS_NOT_ALLOWED, NULL, NULL ); else HB_COMP_PARAM->functions.pLast->wParamNum=0; HB_COMP_PARAM->iVarScope = ( VS_PRIVATE | VS_PARAMETER ); ;} break; - case 421: -#line 1050 "harbour.y" + case 423: +#line 1058 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 422: -#line 1053 "harbour.y" - { (yyval.iNumber) = 1; ;} - break; - - case 423: -#line 1054 "harbour.y" - { (yyval.iNumber)++; ;} - break; - case 424: -#line 1057 "harbour.y" +#line 1061 "harbour.y" { (yyval.iNumber) = 1; ;} break; case 425: -#line 1058 "harbour.y" +#line 1062 "harbour.y" { (yyval.iNumber)++; ;} break; + case 426: +#line 1065 "harbour.y" + { (yyval.iNumber) = 1; ;} + break; + case 427: -#line 1068 "harbour.y" +#line 1066 "harbour.y" + { (yyval.iNumber)++; ;} + break; + + case 429: +#line 1076 "harbour.y" { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), FALSE ); ;} break; - case 428: -#line 1070 "harbour.y" + case 430: +#line 1078 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), TRUE ); ;} break; - case 429: -#line 1074 "harbour.y" + case 431: +#line 1082 "harbour.y" { USHORT uCount = (USHORT) hb_compExprListLen( (yyvsp[(2) - (2)].asExpr) ); hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); @@ -5865,8 +5734,8 @@ yyreduce: ;} break; - case 430: -#line 1081 "harbour.y" + case 432: +#line 1089 "harbour.y" { USHORT uCount = (USHORT) hb_compExprListLen( (yyvsp[(2) - (3)].asExpr) ); hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); @@ -5875,13 +5744,13 @@ yyreduce: ;} break; - case 431: -#line 1089 "harbour.y" + case 433: +#line 1097 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 432: -#line 1090 "harbour.y" + case 434: +#line 1098 "harbour.y" { if( HB_COMP_PARAM->iVarScope == VS_STATIC ) { @@ -5896,20 +5765,20 @@ yyreduce: ;} break; - case 433: -#line 1103 "harbour.y" + case 435: +#line 1111 "harbour.y" { (yyval.iNumber) = HB_COMP_PARAM->iVarScope; hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; - case 434: -#line 1106 "harbour.y" + case 436: +#line 1114 "harbour.y" {HB_COMP_PARAM->cVarType = ' ';;} break; - case 435: -#line 1107 "harbour.y" + case 437: +#line 1115 "harbour.y" { HB_COMP_PARAM->cCastType = HB_COMP_PARAM->cVarType; HB_COMP_PARAM->cVarType = ' '; @@ -5935,83 +5804,83 @@ yyreduce: ;} break; - case 436: -#line 1131 "harbour.y" + case 438: +#line 1139 "harbour.y" { hb_compVariableDim( (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 437: -#line 1132 "harbour.y" + case 439: +#line 1140 "harbour.y" { hb_compVariableDim( (yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 439: -#line 1141 "harbour.y" + case 441: +#line 1149 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 440: -#line 1142 "harbour.y" + case 442: +#line 1150 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 441: -#line 1143 "harbour.y" + case 443: +#line 1151 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr) ); ;} break; - case 442: -#line 1147 "harbour.y" + case 444: +#line 1155 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_FIELD; ;} break; - case 443: -#line 1147 "harbour.y" - { HB_COMP_PARAM->cVarType = ' '; ;} - break; - - case 444: -#line 1150 "harbour.y" - { (yyval.iNumber)=hb_compFieldsCount( HB_COMP_PARAM ); hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} - break; - case 445: -#line 1151 "harbour.y" - { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} +#line 1155 "harbour.y" + { HB_COMP_PARAM->cVarType = ' '; ;} break; case 446: -#line 1152 "harbour.y" - { hb_compFieldSetAlias( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), (yyvsp[(1) - (3)].iNumber) ); ;} +#line 1158 "harbour.y" + { (yyval.iNumber)=hb_compFieldsCount( HB_COMP_PARAM ); hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 447: -#line 1155 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} - break; - - case 448: -#line 1155 "harbour.y" - { HB_COMP_PARAM->cVarType = ' '; ;} - break; - - case 449: -#line 1158 "harbour.y" - { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} - break; - - case 450: #line 1159 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; + case 448: +#line 1160 "harbour.y" + { hb_compFieldSetAlias( HB_COMP_PARAM, (yyvsp[(3) - (3)].string), (yyvsp[(1) - (3)].iNumber) ); ;} + break; + + case 449: +#line 1163 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} + break; + + case 450: +#line 1163 "harbour.y" + { HB_COMP_PARAM->cVarType = ' '; ;} + break; + case 451: -#line 1162 "harbour.y" - { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} +#line 1166 "harbour.y" + { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 452: -#line 1163 "harbour.y" +#line 1167 "harbour.y" + { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} + break; + + case 453: +#line 1170 "harbour.y" + { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} + break; + + case 454: +#line 1171 "harbour.y" { if( HB_COMP_PARAM->pLastDeclared ) { @@ -6036,43 +5905,43 @@ yyreduce: ;} break; - case 453: -#line 1185 "harbour.y" + case 455: +#line 1193 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].string) ); ;} break; - case 454: -#line 1185 "harbour.y" - { HB_COMP_PARAM->iVarScope = VS_NONE; ;} - break; - - case 455: -#line 1186 "harbour.y" - { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} - break; - case 456: -#line 1187 "harbour.y" +#line 1193 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 457: -#line 1188 "harbour.y" - { HB_COMP_PARAM->cDataListType = HB_COMP_PARAM->cVarType; ;} +#line 1194 "harbour.y" + { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; case 458: -#line 1188 "harbour.y" +#line 1195 "harbour.y" + { HB_COMP_PARAM->iVarScope = VS_NONE; ;} + break; + + case 459: +#line 1196 "harbour.y" + { HB_COMP_PARAM->cDataListType = HB_COMP_PARAM->cVarType; ;} + break; + + case 460: +#line 1196 "harbour.y" { HB_COMP_PARAM->cDataListType = 0; HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 465: -#line 1201 "harbour.y" + case 467: +#line 1209 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (2)].string) ); ;} break; - case 466: -#line 1202 "harbour.y" + case 468: +#line 1210 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6094,13 +5963,13 @@ yyreduce: ;} break; - case 467: -#line 1223 "harbour.y" + case 469: +#line 1231 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (1)].string) ); ;} break; - case 468: -#line 1224 "harbour.y" + case 470: +#line 1232 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6156,296 +6025,236 @@ yyreduce: ;} break; - case 469: -#line 1279 "harbour.y" - {;} - break; - - case 473: -#line 1285 "harbour.y" - {;} - break; - - case 474: -#line 1286 "harbour.y" + case 471: +#line 1287 "harbour.y" {;} break; case 475: -#line 1289 "harbour.y" - { hb_compExprDelete( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} +#line 1293 "harbour.y" + {;} break; case 476: -#line 1292 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} +#line 1294 "harbour.y" + {;} break; case 477: -#line 1293 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} +#line 1297 "harbour.y" + { hb_compExprDelete( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 478: -#line 1294 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (5)].string), 'F' ); ;} +#line 1300 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), HB_COMP_PARAM->cVarType ); ;} break; case 479: -#line 1295 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} +#line 1301 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; case 480: -#line 1296 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} +#line 1302 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (5)].string), 'F' ); ;} break; case 481: -#line 1297 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (7)].string), 'F' ); ;} +#line 1303 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType ); ;} break; case 482: -#line 1300 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} +#line 1304 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_BYREF ); ;} break; case 483: -#line 1301 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} +#line 1305 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (7)].string), 'F' ); ;} break; case 484: -#line 1302 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} +#line 1308 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} break; case 485: -#line 1303 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} +#line 1309 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; case 486: -#line 1304 "harbour.y" - { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} +#line 1310 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; case 487: -#line 1305 "harbour.y" +#line 1311 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL ); ;} + break; + + case 488: +#line 1312 "harbour.y" + { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (6)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} + break; + + case 489: +#line 1313 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (8)].string), HB_COMP_PARAM->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF ); ;} break; - case 495: -#line 1317 "harbour.y" + case 497: +#line 1325 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (2)].iNumber), HB_COMP_PARAM ); ;} break; - case 496: -#line 1318 "harbour.y" + case 498: +#line 1326 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); ;} break; - case 497: -#line 1319 "harbour.y" + case 499: +#line 1327 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; - case 498: -#line 1320 "harbour.y" + case 500: +#line 1328 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (4)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; - case 499: -#line 1323 "harbour.y" - { (yyval.lNumber) = (yyvsp[(1) - (1)].lNumber); ;} - break; - - case 500: -#line 1324 "harbour.y" - { (yyval.lNumber) += (yyvsp[(2) - (2)].lNumber); ;} - break; - case 501: -#line 1327 "harbour.y" - { (yyval.lNumber) = 0; ;} +#line 1331 "harbour.y" + { (yyval.lNumber) = (yyvsp[(1) - (1)].lNumber); ;} break; case 502: -#line 1328 "harbour.y" - { (yyval.lNumber) = (yyvsp[(1) - (1)].lNumber); ;} +#line 1332 "harbour.y" + { (yyval.lNumber) += (yyvsp[(2) - (2)].lNumber); ;} break; case 503: -#line 1331 "harbour.y" - { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} +#line 1335 "harbour.y" + { (yyval.lNumber) = 0; ;} break; case 504: -#line 1331 "harbour.y" - { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} +#line 1336 "harbour.y" + { (yyval.lNumber) = (yyvsp[(1) - (1)].lNumber); ;} break; case 505: -#line 1333 "harbour.y" - { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} +#line 1340 "harbour.y" + { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; case 506: -#line 1335 "harbour.y" - { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} +#line 1342 "harbour.y" + { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; case 507: -#line 1335 "harbour.y" - { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} - break; - - case 508: -#line 1337 "harbour.y" +#line 1344 "harbour.y" { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; - case 509: -#line 1339 "harbour.y" - { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} - break; - - case 510: -#line 1339 "harbour.y" - { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} - break; - - case 511: -#line 1341 "harbour.y" - { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} - break; - - case 512: -#line 1343 "harbour.y" - { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} - break; - case 513: -#line 1343 "harbour.y" - { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} - break; - - case 514: -#line 1345 "harbour.y" - { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} - break; - - case 515: -#line 1347 "harbour.y" - { ++HB_COMP_PARAM->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} - break; - - case 516: -#line 1347 "harbour.y" - { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} - break; - - case 517: -#line 1349 "harbour.y" - { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} - break; - - case 518: -#line 1352 "harbour.y" +#line 1354 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 520: -#line 1356 "harbour.y" + case 515: +#line 1358 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 521: -#line 1358 "harbour.y" + case 516: +#line 1360 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 522: -#line 1362 "harbour.y" + case 517: +#line 1364 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; - case 523: -#line 1366 "harbour.y" + case 518: +#line 1368 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 524: -#line 1368 "harbour.y" + case 519: +#line 1370 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 525: -#line 1372 "harbour.y" + case 520: +#line 1374 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(6) - (7)].iNumber), HB_COMP_PARAM ); ;} break; - case 526: -#line 1377 "harbour.y" + case 521: +#line 1379 "harbour.y" { if( HB_COMP_PARAM->wIfCounter ) --HB_COMP_PARAM->wIfCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( /*FUN_WITH_RETURN |*/ FUN_BREAK_CODE ); ;} break; - case 527: -#line 1380 "harbour.y" + case 522: +#line 1382 "harbour.y" { if( HB_COMP_PARAM->wIfCounter ) --HB_COMP_PARAM->wIfCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( /*FUN_WITH_RETURN |*/ FUN_BREAK_CODE ); ;} break; - case 528: -#line 1387 "harbour.y" + case 523: +#line 1389 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; - case 531: -#line 1399 "harbour.y" + case 526: +#line 1401 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; - case 532: -#line 1403 "harbour.y" + case 527: +#line 1405 "harbour.y" { if( HB_COMP_PARAM->wCaseCounter ) --HB_COMP_PARAM->wCaseCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 533: -#line 1408 "harbour.y" + case 528: +#line 1410 "harbour.y" { if( HB_COMP_PARAM->wCaseCounter ) --HB_COMP_PARAM->wCaseCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 534: -#line 1414 "harbour.y" + case 529: +#line 1416 "harbour.y" { ++HB_COMP_PARAM->wCaseCounter; hb_compLinePushIfDebugger( HB_COMP_PARAM );;} break; - case 536: -#line 1417 "harbour.y" + case 531: +#line 1419 "harbour.y" { ;} break; - case 537: -#line 1418 "harbour.y" + case 532: +#line 1420 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6454,21 +6263,21 @@ yyreduce: ;} break; - case 538: -#line 1426 "harbour.y" + case 533: +#line 1428 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 539: -#line 1427 "harbour.y" + case 534: +#line 1429 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 540: -#line 1432 "harbour.y" + case 535: +#line 1434 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6476,21 +6285,21 @@ yyreduce: ;} break; - case 541: -#line 1438 "harbour.y" + case 536: +#line 1440 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 542: -#line 1439 "harbour.y" + case 537: +#line 1441 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 543: -#line 1444 "harbour.y" + case 538: +#line 1446 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6498,39 +6307,39 @@ yyreduce: ;} break; - case 544: -#line 1451 "harbour.y" + case 539: +#line 1453 "harbour.y" {hb_compLinePushIfDebugger( HB_COMP_PARAM ); ;} break; - case 545: -#line 1451 "harbour.y" + case 540: +#line 1453 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 547: -#line 1453 "harbour.y" + case 542: +#line 1455 "harbour.y" { hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_MAYHEM_IN_CASE, NULL, NULL ); ;} break; - case 549: -#line 1458 "harbour.y" + case 544: +#line 1460 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); (yyval.lNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 550: -#line 1463 "harbour.y" + case 545: +#line 1465 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compGenJump( (yyvsp[(1) - (5)].lNumber) - HB_COMP_PARAM->functions.pLast->lPCodePos, HB_COMP_PARAM ); ;} break; - case 551: -#line 1468 "harbour.y" + case 546: +#line 1470 "harbour.y" { hb_compGenJumpHere( (yyvsp[(4) - (7)].lNumber), HB_COMP_PARAM ); if( HB_COMP_PARAM->wWhileCounter ) @@ -6540,23 +6349,23 @@ yyreduce: ;} break; - case 552: -#line 1477 "harbour.y" + case 547: +#line 1479 "harbour.y" { (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->wWhileCounter; hb_compLoopStart( HB_COMP_PARAM ); ;} break; - case 553: -#line 1480 "harbour.y" + case 548: +#line 1482 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 554: -#line 1481 "harbour.y" + case 549: +#line 1483 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 555: -#line 1485 "harbour.y" + case 550: +#line 1487 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); hb_compDebugStart(); @@ -6569,23 +6378,23 @@ yyreduce: ;} break; - case 556: -#line 1496 "harbour.y" + case 551: +#line 1498 "harbour.y" { hb_compLoopStart( HB_COMP_PARAM ); (yyval.lNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); /* 9 */ ;} break; - case 557: -#line 1501 "harbour.y" + case 552: +#line 1503 "harbour.y" { (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; /* 11 */ ;} break; - case 558: -#line 1505 "harbour.y" + case 553: +#line 1507 "harbour.y" { short iStep, iLocal; @@ -6648,76 +6457,76 @@ yyreduce: ;} break; - case 561: -#line 1571 "harbour.y" + case 556: +#line 1573 "harbour.y" { (yyval.asExpr) = NULL; ;} break; - case 562: -#line 1572 "harbour.y" + case 557: +#line 1574 "harbour.y" { (yyval.asExpr) = hb_compExprReduce( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 563: -#line 1575 "harbour.y" + case 558: +#line 1577 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; - case 564: -#line 1578 "harbour.y" + case 559: +#line 1580 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; - case 565: -#line 1581 "harbour.y" + case 560: +#line 1583 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; - case 566: -#line 1584 "harbour.y" + case 561: +#line 1586 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->wForCounter ) --HB_COMP_PARAM->wForCounter; ;} break; - case 567: -#line 1589 "harbour.y" + case 562: +#line 1591 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; - case 568: -#line 1590 "harbour.y" + case 563: +#line 1592 "harbour.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 569: -#line 1593 "harbour.y" + case 564: +#line 1595 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 570: -#line 1594 "harbour.y" + case 565: +#line 1596 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 571: -#line 1597 "harbour.y" + case 566: +#line 1599 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 572: -#line 1598 "harbour.y" + case 567: +#line 1600 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 573: -#line 1602 "harbour.y" + case 568: +#line 1604 "harbour.y" { ++HB_COMP_PARAM->wForCounter; /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); @@ -6725,8 +6534,8 @@ yyreduce: ;} break; - case 574: -#line 1608 "harbour.y" + case 569: +#line 1610 "harbour.y" { /* 7 */ @@ -6737,8 +6546,8 @@ yyreduce: ;} break; - case 575: -#line 1617 "harbour.y" + case 570: +#line 1619 "harbour.y" { /* 9 */ @@ -6746,8 +6555,8 @@ yyreduce: ;} break; - case 576: -#line 1623 "harbour.y" + case 571: +#line 1625 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compEnumNext( HB_COMP_PARAM, (yyvsp[(2) - (10)].asExpr), (yyvsp[(6) - (10)].iNumber) ); @@ -6762,18 +6571,18 @@ yyreduce: ;} break; - case 577: -#line 1637 "harbour.y" + case 572: +#line 1639 "harbour.y" { (yyval.iNumber) = 1; ;} break; - case 578: -#line 1638 "harbour.y" + case 573: +#line 1640 "harbour.y" { (yyval.iNumber) = -1; ;} break; - case 579: -#line 1642 "harbour.y" + case 574: +#line 1644 "harbour.y" { hb_compLoopStart( HB_COMP_PARAM ); hb_compSwitchStart( HB_COMP_PARAM ); @@ -6781,50 +6590,50 @@ yyreduce: ;} break; - case 580: -#line 1649 "harbour.y" + case 575: +#line 1651 "harbour.y" { hb_compSwitchEnd( HB_COMP_PARAM ); hb_compLoopEnd( HB_COMP_PARAM ); ;} break; - case 581: -#line 1656 "harbour.y" + case 576: +#line 1658 "harbour.y" { hb_compGenPCode1( HB_P_POP, HB_COMP_PARAM ); ;} break; - case 582: -#line 1662 "harbour.y" + case 577: +#line 1664 "harbour.y" { if( HB_COMP_PARAM->wSwitchCounter ) --HB_COMP_PARAM->wSwitchCounter; HB_COMP_PARAM->functions.pLast->bFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 583: -#line 1669 "harbour.y" + case 578: +#line 1671 "harbour.y" { ++HB_COMP_PARAM->wSwitchCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 584: -#line 1673 "harbour.y" + case 579: +#line 1675 "harbour.y" { hb_compExprDelete( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); ;} break; - case 585: -#line 1678 "harbour.y" + case 580: +#line 1680 "harbour.y" { ;} break; - case 586: -#line 1679 "harbour.y" + case 581: +#line 1681 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6833,28 +6642,28 @@ yyreduce: ;} break; - case 587: -#line 1687 "harbour.y" + case 582: +#line 1689 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 589: -#line 1690 "harbour.y" + case 584: +#line 1692 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 593: -#line 1698 "harbour.y" + case 588: +#line 1700 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, NULL ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 594: -#line 1698 "harbour.y" + case 589: +#line 1700 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; ;} break; - case 596: -#line 1703 "harbour.y" + case 591: +#line 1705 "harbour.y" { ++HB_COMP_PARAM->wSeqCounter; hb_compStatmentStart( HB_COMP_PARAM ); @@ -6862,8 +6671,8 @@ yyreduce: ;} break; - case 597: -#line 1710 "harbour.y" + case 592: +#line 1712 "harbour.y" { /* Set jump address for HB_P_SEQBEGIN opcode - this address * will be used in BREAK code if there is no RECOVER clause @@ -6873,8 +6682,8 @@ yyreduce: ;} break; - case 598: -#line 1718 "harbour.y" + case 593: +#line 1720 "harbour.y" { /* Replace END address with RECOVER address in * HB_P_SEQBEGIN opcode if there is RECOVER clause @@ -6884,8 +6693,8 @@ yyreduce: ;} break; - case 599: -#line 1726 "harbour.y" + case 594: +#line 1728 "harbour.y" { /* Fix END address * There is no line number after HB_P_SEQEND in case no @@ -6899,13 +6708,13 @@ yyreduce: ;} break; - case 600: -#line 1739 "harbour.y" + case 595: +#line 1741 "harbour.y" { (yyval.lNumber) = 0; ;} break; - case 603: -#line 1745 "harbour.y" + case 598: +#line 1747 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6916,8 +6725,8 @@ yyreduce: ;} break; - case 604: -#line 1756 "harbour.y" + case 599: +#line 1758 "harbour.y" { HB_COMP_PARAM->functions.pLast->bFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6929,94 +6738,76 @@ yyreduce: ;} break; + case 602: +#line 1780 "harbour.y" + { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} + break; + + case 603: +#line 1782 "harbour.y" + { + (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(2) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); + HB_COMP_PARAM->iPassByRef = (yyvsp[(3) - (4)].bTrue); + ;} + break; + + case 604: +#line 1787 "harbour.y" + { (yyval.bTrue) = HB_COMP_PARAM->iPassByRef;HB_COMP_PARAM->iPassByRef=HB_PASSBYREF_FUNCALL; ;} + break; + case 605: -#line 1773 "harbour.y" - { (yyval.asExpr) = hb_compExprNewFunName( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string) ); ;} +#line 1789 "harbour.y" + { + hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (3)].string) ); + /* DOIDENT is the only one identifier which can be returned in lower letters */ + (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( hb_compIdentifierNew( HB_COMP_PARAM, hb_strupr( hb_strdup( (yyvsp[(1) - (3)].string) ) ), HB_IDENT_FREE ), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); + HB_COMP_PARAM->iPassByRef = (yyvsp[(2) - (3)].bTrue); + ;} + break; + + case 606: +#line 1797 "harbour.y" + { (yyval.asExpr) = NULL; ;} + break; + + case 607: +#line 1798 "harbour.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 608: -#line 1779 "harbour.y" - { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(2) - (2)].asExpr), NULL, HB_COMP_PARAM ); ;} - break; - - case 609: -#line 1781 "harbour.y" - { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(2) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 610: -#line 1783 "harbour.y" - { - /* DOIDENT is the only one identifier which can be returned in lower letters */ - hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (1)].string) ); (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( hb_compIdentifierNew( HB_COMP_PARAM, hb_strupr( hb_strdup( (yyvsp[(1) - (1)].string) ) ), HB_IDENT_FREE ), HB_COMP_PARAM ), NULL, HB_COMP_PARAM ); - ;} - break; - - case 611: -#line 1788 "harbour.y" - { - /* DOIDENT is the only one identifier which can be returned in lower letters */ - hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (3)].string) ); (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( hb_compIdentifierNew( HB_COMP_PARAM, hb_strupr( hb_strdup( (yyvsp[(1) - (3)].string) ) ), HB_IDENT_FREE ), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); - ;} - break; - - case 612: -#line 1794 "harbour.y" +#line 1801 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; - case 613: -#line 1795 "harbour.y" + case 609: +#line 1802 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 614: -#line 1796 "harbour.y" + case 610: +#line 1803 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 615: -#line 1797 "harbour.y" + case 611: +#line 1804 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (2)].asExpr), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; - case 616: -#line 1798 "harbour.y" + case 612: +#line 1805 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 617: -#line 1801 "harbour.y" + case 613: +#line 1808 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 618: -#line 1802 "harbour.y" - { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} - break; - - case 619: -#line 1803 "harbour.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 620: -#line 1804 "harbour.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 621: -#line 1805 "harbour.y" - { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); ;} - break; - - case 622: -#line 1806 "harbour.y" - { (yyval.asExpr) = hb_compCheckPassByRef( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); (yyval.asExpr)->value.asList.reference = TRUE; ;} - break; - - case 626: -#line 1813 "harbour.y" +#line 1816 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); hb_compExprDelete( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); @@ -7025,32 +6816,32 @@ yyreduce: ;} break; - case 627: -#line 1821 "harbour.y" + case 619: +#line 1824 "harbour.y" { if( HB_COMP_PARAM->wWithObjectCnt ) --HB_COMP_PARAM->wWithObjectCnt; hb_compGenPCode1( HB_P_WITHOBJECTEND, HB_COMP_PARAM ); ;} break; - case 628: -#line 1825 "harbour.y" + case 620: +#line 1828 "harbour.y" { hb_compExprDelete( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ); ;} break; - case 629: -#line 1828 "harbour.y" + case 621: +#line 1831 "harbour.y" { HB_COMP_PARAM->fError = FALSE; ;} break; - case 630: -#line 1829 "harbour.y" + case 622: +#line 1832 "harbour.y" { HB_COMP_PARAM->fDontGenLineNum = TRUE; ;} break; /* Line 1267 of yacc.c. */ -#line 7054 "harboury.c" +#line 6845 "harboury.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -7264,7 +7055,7 @@ yyreturn: } -#line 1832 "harbour.y" +#line 1835 "harbour.y" /* diff --git a/harbour/source/compiler/harbour.yyh b/harbour/source/compiler/harbour.yyh index 3e1ec3acda..e2d294bf8f 100644 --- a/harbour/source/compiler/harbour.yyh +++ b/harbour/source/compiler/harbour.yyh @@ -250,7 +250,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 103 "harbour.y" +#line 104 "harbour.y" { char * string; /* to hold a string returned by lex */ int iNumber; /* to hold a temporary integer number */ diff --git a/harbour/source/compiler/hbcomp.c b/harbour/source/compiler/hbcomp.c index c3676d1428..2cf29b5d04 100644 --- a/harbour/source/compiler/hbcomp.c +++ b/harbour/source/compiler/hbcomp.c @@ -76,10 +76,11 @@ HB_COMP_PTR hb_comp_new( void ) HB_COMPFLAG_XBASE | HB_COMPFLAG_HB_INLINE | HB_COMPFLAG_OPTJUMP | + HB_COMPFLAG_MACROTEXT | HB_COMPFLAG_SHORTCUTS; - pComp->fTextSubst = pComp->fLongOptimize = TRUE; - + pComp->fTextSubst = ( pComp->supported & HB_COMPFLAG_MACROTEXT ) != 0; + pComp->fLongOptimize = TRUE; pComp->fPPO = FALSE; /* flag indicating, is ppo output needed */ pComp->fStartProc = TRUE; /* holds if we need to create the starting procedure */ pComp->fLineNumbers = TRUE; /* holds if we need pcodes with line numbers */ diff --git a/harbour/source/compiler/hbusage.c b/harbour/source/compiler/hbusage.c index c57f997600..64d0b4eaaa 100644 --- a/harbour/source/compiler/hbusage.c +++ b/harbour/source/compiler/hbusage.c @@ -120,11 +120,11 @@ void hb_compPrintModes( void ) "\nOptions: c clear all flags (strict Clipper mode)", "\n h Harbour mode (default)", "\n i enable support for HB_INLINE", - "\n I enable support for HB_INLINE in PP", "\n r runtime settings enabled", "\n s string as bytes array enabled", "\n x extended xbase mode", "\n J turn off jump optimization in pcode", + "\n M turn off macrotext substitution", "\n ? this info", "\n" }; diff --git a/harbour/source/compiler/ppcomp.c b/harbour/source/compiler/ppcomp.c index 79c47d08b8..e6aa658116 100644 --- a/harbour/source/compiler/ppcomp.c +++ b/harbour/source/compiler/ppcomp.c @@ -174,7 +174,7 @@ void hb_compInitPP( HB_COMP_DECL, int argc, char * argv[] ) HB_COMP_PARAM->iMaxTransCycles, HB_COMP_PARAM, NULL, NULL, hb_pp_ErrorGen, NULL, hb_pp_PragmaDump, - HB_COMP_ISSUPPORTED( HB_COMPFLAG_HB_INLINE_PP ) ? + HB_COMP_ISSUPPORTED( HB_COMPFLAG_HB_INLINE ) ? hb_pp_hb_inLine : NULL, hb_pp_CompilerSwitch ); if( ! HB_COMP_PARAM->szStdCh ) diff --git a/harbour/source/macro/Makefile b/harbour/source/macro/Makefile index e6c9cb9077..8376bebe37 100644 --- a/harbour/source/macro/Makefile +++ b/harbour/source/macro/Makefile @@ -21,7 +21,7 @@ ROOT = ../../ # hbdefs.h \ # hbmacro.h \ -YACC_FLAGS = -p hb_macro +#YACC_FLAGS = -p hb_macro YACC_SOURCE=macro.y YACC_HEADERS=\ hbmacro.h \ diff --git a/harbour/source/macro/macro.y b/harbour/source/macro/macro.y index 382a91284b..defaabcf60 100644 --- a/harbour/source/macro/macro.y +++ b/harbour/source/macro/macro.y @@ -1,6 +1,7 @@ %pure-parser %parse-param { HB_MACRO_PTR pMacro } %lex-param { HB_MACRO_PTR pMacro } +%name-prefix = "hb_macro" %{ /* @@ -686,10 +687,8 @@ PareExpListAlias : PareExpList ALIASOP ; /* Lexer should return IIF for "if" symbol */ -IfInline : IIF '(' Expression ',' EmptyExpression ',' - { $$ = hb_compExprAddListExpr( hb_compExprNewList( $3, HB_COMP_PARAM ), $5 ); } - EmptyExpression ')' - { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( $7, $8 ), HB_COMP_PARAM ); } +IfInline : IIF '(' Expression ',' Argument ',' Argument ')' + { $$ = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( $3, HB_COMP_PARAM ), $5 ), $7 ) ); } ; %% diff --git a/harbour/source/macro/macro.yyc b/harbour/source/macro/macro.yyc index 9d642b1441..8c65e8d5a0 100644 --- a/harbour/source/macro/macro.yyc +++ b/harbour/source/macro/macro.yyc @@ -154,7 +154,7 @@ /* Copy the first part of user declarations. */ -#line 5 "macro.y" +#line 6 "macro.y" /* * $Id$ @@ -289,7 +289,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 120 "macro.y" +#line 121 "macro.y" { char * string; /* to hold a string returned by lex */ int iNumber; /* to hold a temporary integer number */ @@ -328,7 +328,7 @@ typedef union YYSTYPE /* Copy the second part of user declarations. */ -#line 148 "macro.y" +#line 149 "macro.y" /* This must be placed after the above union - the union is * typedef-ined to YYSTYPE @@ -339,7 +339,7 @@ extern void yyerror( HB_MACRO_PTR, char * ); /* parsing error management func static void hb_macroIdentNew( HB_COMP_DECL, char * ); -#line 160 "macro.y" +#line 161 "macro.y" #ifdef __WATCOMC__ /* disable warnings for unreachable code */ @@ -563,16 +563,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 95 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1031 +#define YYLAST 1077 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 60 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 66 +#define YYNNTS 65 /* YYNRULES -- Number of rules. */ -#define YYNRULES 213 +#define YYNRULES 212 /* YYNRULES -- Number of states. */ -#define YYNSTATES 300 +#define YYNSTATES 299 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -642,7 +642,7 @@ static const yytype_uint16 yyprhs[] = 499, 503, 507, 511, 515, 519, 523, 527, 531, 535, 539, 543, 547, 550, 553, 557, 562, 564, 568, 569, 577, 579, 583, 584, 586, 588, 592, 594, 598, 601, - 605, 608, 611, 612 + 605, 608, 611 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -709,35 +709,34 @@ static const yytype_int8 yyrhs[] = 50, 91, -1, -1, 35, -1, 120, -1, 120, 50, 35, -1, 3, -1, 120, 50, 3, -1, 54, 96, -1, 121, 50, 96, -1, 121, 55, -1, 122, 21, - -1, -1, 9, 54, 91, 50, 96, 50, 125, 96, - 55, -1 + -1, 9, 54, 91, 50, 86, 50, 86, 55, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 237, 237, 246, 254, 262, 267, 276, 277, 280, - 283, 288, 293, 298, 299, 304, 309, 314, 319, 322, - 327, 330, 349, 354, 357, 364, 365, 370, 371, 372, - 373, 374, 377, 378, 381, 382, 383, 384, 385, 386, - 387, 396, 397, 398, 399, 400, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 426, 429, 434, 437, 438, 441, 442, - 443, 446, 447, 452, 453, 454, 459, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 493, 494, 497, 498, 501, - 501, 515, 516, 520, 521, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 549, 550, 556, 559, 560, - 563, 564, 565, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 590, 593, 596, 599, 602, 605, 608, - 609, 610, 611, 612, 613, 616, 617, 618, 619, 620, - 621, 624, 625, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 639, 645, 646, 647, 650, 651, 655, 654, - 662, 663, 668, 669, 670, 671, 674, 675, 678, 679, - 682, 685, 690, 689 + 0, 238, 238, 247, 255, 263, 268, 277, 278, 281, + 284, 289, 294, 299, 300, 305, 310, 315, 320, 323, + 328, 331, 350, 355, 358, 365, 366, 371, 372, 373, + 374, 375, 378, 379, 382, 383, 384, 385, 386, 387, + 388, 397, 398, 399, 400, 401, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 427, 430, 435, 438, 439, 442, 443, + 444, 447, 448, 453, 454, 455, 460, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 494, 495, 498, 499, 502, + 502, 516, 517, 521, 522, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 550, 551, 557, 560, 561, + 564, 565, 566, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 591, 594, 597, 600, 603, 606, 609, + 610, 611, 612, 613, 614, 617, 618, 619, 620, 621, + 622, 625, 626, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 640, 646, 647, 648, 651, 652, 656, 655, + 663, 664, 669, 670, 671, 672, 675, 676, 679, 680, + 683, 686, 690 }; #endif @@ -766,7 +765,7 @@ static const char *const yytname[] = "ExprModEq", "ExprExpEq", "ExprOperEq", "ExprMath", "ExprBool", "ExprRelation", "ArrayIndex", "IndexList", "ElemList", "CodeBlock", "@2", "BlockExpList", "BlockVars", "BlockVarList", "ExpList", "PareExpList", - "PareExpListAlias", "IfInline", "@3", 0 + "PareExpListAlias", "IfInline", 0 }; #endif @@ -808,7 +807,7 @@ static const yytype_uint8 yyr1[] = 110, 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, 114, 114, 114, 115, 115, 117, 116, 118, 118, 119, 119, 119, 119, 120, 120, 121, 121, - 122, 123, 125, 124 + 122, 123, 124 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -835,7 +834,7 @@ static const yytype_uint8 yyr2[] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 4, 1, 3, 0, 7, 1, 3, 0, 1, 1, 3, 1, 3, 2, 3, - 2, 2, 0, 9 + 2, 2, 8 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -871,8 +870,8 @@ static const yytype_uint8 yydefact[] = 175, 176, 177, 178, 179, 112, 113, 163, 164, 165, 166, 168, 167, 73, 74, 75, 147, 209, 158, 160, 113, 63, 113, 65, 206, 203, 0, 204, 197, 194, - 0, 64, 76, 110, 67, 0, 0, 0, 195, 212, - 200, 0, 207, 205, 113, 0, 199, 0, 201, 213 + 0, 64, 76, 110, 67, 0, 0, 0, 195, 113, + 200, 0, 207, 205, 0, 0, 199, 212, 201 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -884,56 +883,56 @@ static const yytype_int16 yydefgoto[] = 49, 91, 217, 51, 256, 52, 92, 54, 186, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 98, 99, 93, 69, 211, 291, 276, - 277, 70, 71, 72, 73, 294 + 277, 70, 71, 72, 73 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -218 +#define YYPACT_NINF -246 static const yytype_int16 yypact[] = { - 295, -218, -6, -218, -218, -14, -218, -32, -218, -218, - -218, 749, 749, 749, -218, -12, -218, -218, 749, 749, - -3, 67, 212, 749, 79, 397, 413, 20, 429, 445, - 461, 477, 493, 819, 509, 20, 332, 20, 348, 20, - 32, 66, 525, 541, 835, 557, -218, 364, 573, -218, - 792, -218, 31, 35, 100, -218, -218, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, -218, -218, 589, - 44, 381, 20, 605, -218, 645, -218, 749, 986, -218, - -218, 62, -218, -218, -218, 37, -218, 7, -218, -218, - -218, 923, -218, -45, -218, -218, 749, 697, -218, 15, - 749, -218, -218, -218, -218, -218, 749, -218, 749, -218, - 749, -218, 749, -218, 749, -218, 749, 749, -218, -218, - -218, 749, -218, 645, -218, -218, -218, 749, -218, -218, - -218, -218, 74, -14, -218, -218, 88, -218, 90, -218, - -218, 94, -218, -218, 749, -218, 749, -218, 749, 749, - -218, 749, 645, -218, 749, -218, -218, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, -218, 749, -218, -218, -218, 749, - 749, 749, 749, 749, 749, 57, -218, 749, -218, 749, - -218, 749, -218, -218, -218, -218, 749, -218, 82, -218, - 888, -218, 52, 22, 66, 66, 88, 66, 66, -218, - 66, 47, 645, -218, 923, -218, 923, -218, 697, 60, - 923, 923, 923, 923, 923, 923, 923, 923, 923, 85, - 923, 923, 923, 923, 923, 923, 86, 923, 956, 923, - 986, 986, 986, 986, 986, 106, 986, 986, 986, 986, - 81, 81, 58, 58, 58, -218, 749, 923, 923, 923, - 923, 923, 923, -218, -218, -218, 923, -218, 923, 923, - 645, -218, 749, -218, -218, -218, 80, 92, -218, -218, - 697, -218, -218, -218, -218, 93, 749, 63, -218, -218, - 923, 25, -218, -218, 749, 749, -218, 95, 923, -218 + 289, -246, -5, -246, -246, -18, -246, -37, -246, -246, + -246, 743, 743, 743, -246, 42, -246, -246, 743, 743, + 13, 66, 212, 743, 73, 391, 407, 68, 423, 439, + 455, 471, 487, 865, 503, 68, 326, 68, 342, 68, + 65, 76, 519, 535, 881, 551, -246, 358, 567, -246, + 838, -246, 32, 40, 254, -246, -246, -246, -246, -246, + -246, -246, -246, -246, -246, -246, -246, -246, -246, 583, + 20, 375, 68, 599, -246, 639, -246, 743, 1032, -246, + -246, 51, -246, -246, -246, 47, -246, 33, -246, -246, + -246, 969, -246, -28, -246, -246, 743, 691, -246, -36, + 743, -246, -246, -246, -246, -246, 743, -246, 743, -246, + 743, -246, 743, -246, 743, -246, 743, 743, -246, -246, + -246, 743, -246, 639, -246, -246, -246, 743, -246, -246, + -246, -246, 84, -18, -246, -246, 90, -246, 94, -246, + -246, 97, -246, -246, 743, -246, 743, -246, 743, 743, + -246, 743, 639, -246, 743, -246, -246, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, + 743, 743, 743, 743, -246, 743, -246, -246, -246, 743, + 743, 743, 743, 743, 743, 59, -246, 743, -246, 743, + -246, 743, -246, -246, -246, -246, 743, -246, 34, -246, + 934, -246, 54, 24, 76, 76, 90, 76, 76, -246, + 76, 12, 639, -246, 969, -246, 969, -246, 691, 67, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 38, + 969, 969, 969, 969, 969, 969, 49, 969, 1002, 969, + 1032, 1032, 1032, 1032, 1032, 92, 1032, 1032, 1032, 1032, + 88, 88, 91, 91, 91, -246, 743, 969, 969, 969, + 969, 969, 969, -246, -246, -246, 969, -246, 969, 969, + 639, -246, 795, -246, -246, -246, 69, 87, -246, -246, + 691, -246, -246, -246, -246, 89, 743, 26, -246, 795, + 969, -27, -246, -246, 71, 743, -246, -246, 969 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -218, -218, -218, -218, -34, -218, -218, -218, -218, -218, - -218, -218, -23, 1, -20, -38, -19, 64, -218, -10, - 65, -218, -218, -218, -218, -107, -218, -18, -218, -218, - -218, 0, -217, -218, -218, -218, 3, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, 850, -218, -218, -218, -218, -218, -218, - -218, -218, 17, -16, -218, -218 + -246, -246, -246, -246, -34, -246, -246, -246, -246, -246, + -246, -246, -33, -7, -32, -35, -31, 57, -246, 2, + 53, -246, -246, -246, -246, -88, -245, -20, -246, -246, + -246, 0, -214, -246, -246, -246, 1, -246, -246, -246, + -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, + -246, -246, -246, 896, -246, -246, -246, -246, -246, -246, + -246, -246, 11, -30, -246 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -943,218 +942,226 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -135 static const yytype_int16 yytable[] = { - 50, 279, 138, 53, 90, 212, 134, 76, 213, 81, - 203, 78, 79, 80, 133, 74, 229, 135, 82, 83, - 137, 139, 77, 102, 142, 119, 94, 125, 103, 130, - 140, 143, 15, 16, 17, 132, 103, 84, 103, 133, - 103, 136, 103, 74, 105, 236, 16, 17, 75, 138, - 274, 23, 120, 204, 126, 20, 131, 141, 16, 17, - 263, 23, 194, 288, 205, 218, 292, 207, 208, 102, - 85, 210, 219, 103, 23, 295, 202, 200, 296, 95, - 20, 175, 275, 16, 17, 176, 23, 15, 206, 195, - 164, 202, 16, 17, 189, 74, 214, 216, 293, 190, - 220, 171, 172, 173, 141, 20, 221, 273, 222, 122, - 223, 128, 224, 164, 225, 192, 226, 227, 280, 177, - 178, 228, 169, 170, 171, 172, 173, 230, 179, 180, - 181, 182, 270, 183, 184, 270, 270, 271, 164, 286, - 281, 282, 287, 289, 231, 201, 232, 265, 233, 234, - 299, 235, 209, 0, 237, 0, 185, 238, 239, 240, + 50, 53, 90, 76, 279, 138, 134, 135, 137, 139, + 142, 78, 79, 80, 218, 274, 74, 77, 82, 83, + 103, 219, 212, 295, 94, 213, 296, 285, 103, 292, + 103, 84, 103, 136, 103, 229, 203, 119, 105, 125, + 133, 130, 140, 143, 294, 74, 120, 275, 126, 75, + 131, 141, 138, 204, 205, 207, 208, 210, 15, 16, + 17, 293, 263, 81, 236, 103, 288, 23, 132, 85, + 189, 102, 133, 95, 194, 190, 15, 200, 202, 102, + 206, 20, 175, 195, 270, 16, 17, 23, 270, 271, + 176, 16, 17, 281, 16, 17, 214, 216, 141, 270, + 220, 202, 16, 17, 282, 74, 221, 20, 222, 273, + 223, 122, 224, 20, 225, 128, 226, 227, 192, 23, + 164, 228, 23, 164, 164, 280, 297, 230, 286, 169, + 170, 171, 172, 173, 171, 172, 173, 287, 201, 289, + 209, 0, 0, 0, 231, 0, 232, 0, 233, 234, + 265, 235, 0, 0, 237, 0, 0, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 0, 0, 0, 0, 255, 257, - 258, 259, 260, 261, 262, 0, 264, 266, 0, 0, - 0, 268, 267, 0, 278, 119, 269, 125, 130, 0, - 194, 0, 0, 0, 0, 103, 103, 0, 103, 103, - 0, 103, 0, 0, 0, 2, 3, 4, 216, 5, + 251, 252, 253, 254, 0, 0, 255, 0, 264, 257, + 258, 259, 260, 261, 262, 0, 0, 266, 0, 0, + 267, 268, 278, 0, 0, 0, 269, 103, 103, 0, + 103, 103, 0, 103, 0, 0, 0, 119, 0, 125, + 130, 0, 194, 0, 0, 2, 3, 4, 216, 5, 6, 7, 8, 9, 10, 0, 0, 11, 0, 0, 0, 12, 13, 0, 14, 0, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 284, 18, 19, 0, 0, 0, 0, 283, + 284, 0, 0, 18, 19, 0, 0, 283, 0, 0, 20, 87, 0, 0, 22, 0, 23, 0, 0, 0, - 0, 88, 0, 0, 0, 285, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 290, 0, 0, 0, - 0, 0, 0, 0, 0, 298, 1, 297, 2, 3, + 0, 88, 0, 177, 178, 0, 0, 0, 0, 0, + 216, 0, 179, 180, 181, 182, 290, 183, 184, 0, + 1, 0, 2, 3, 4, 298, 5, 6, 7, 8, + 9, 10, 0, 0, 11, 0, 0, 0, 12, 13, + 185, 14, 0, 0, 15, 16, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 19, 121, 0, 0, 0, 0, 20, 21, -113, + 0, 22, 0, 23, 0, -126, -126, 122, 127, 0, + 0, 0, 0, 0, -126, -126, -126, -126, 0, -126, + -126, -127, -127, 128, 151, 0, 0, 0, 0, 0, + -127, -127, -127, -127, 0, -127, -127, -133, -133, 0, + 123, 191, -126, 0, 97, 0, -133, -133, -133, -133, + 0, -133, -133, 0, -130, -130, 192, 96, -127, 0, + 97, 0, 0, -130, -130, -130, -130, 0, -130, -130, + -115, -115, 152, 100, -133, 0, 97, 0, 0, -115, + -115, -115, -115, 0, -115, -115, -117, -117, 0, 106, + 0, -130, 0, 97, 0, -117, -117, -117, -117, 0, + -117, -117, -116, -116, 0, 108, 0, -115, 0, 97, + 0, -116, -116, -116, -116, 0, -116, -116, -118, -118, + 0, 110, 0, -117, 0, 97, 0, -118, -118, -118, + -118, 0, -118, -118, -120, -120, 0, 112, 0, -116, + 0, 97, 0, -120, -120, -120, -120, 0, -120, -120, + -121, -121, 0, 114, 0, -118, 0, 97, 0, -121, + -121, -121, -121, 0, -121, -121, -122, -122, 0, 117, + 0, -120, 0, 97, 0, -122, -122, -122, -122, 0, + -122, -122, -128, -128, 0, 144, 0, -121, 0, 97, + 0, -128, -128, -128, -128, 0, -128, -128, -124, -124, + 0, 146, 0, -122, 0, 97, 0, -124, -124, -124, + -124, 0, -124, -124, -125, -125, 0, 149, 0, -128, + 0, 97, 0, -125, -125, -125, -125, 0, -125, -125, + -131, -131, 0, 154, 0, -124, 0, 97, 0, -131, + -131, -131, -131, 0, -131, -131, -134, -134, 0, 187, + 0, -125, 0, 97, 0, -134, -134, -134, -134, 0, + -134, -134, -119, -119, 0, 196, 0, -131, 0, 97, + 0, -119, -119, -119, -119, 0, -119, -119, -132, -132, + 0, 0, 0, -134, 0, 97, 0, -132, -132, -132, + -132, 0, -132, -132, 0, 0, 0, 0, 0, -119, + 0, 97, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 0, 0, 11, -132, 0, 97, 12, 13, + 0, 14, 0, 0, 15, 16, 17, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 18, 19, 0, 0, 0, 0, 0, 20, 87, 0, + 0, 22, 0, 23, 2, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 0, 0, 11, 0, 0, 0, + 12, 13, 0, 14, 0, 0, 15, 16, 17, 0, + 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, + 0, 0, 18, 19, 0, 0, 0, 0, 0, 20, + 21, 0, 0, 22, 0, 23, 2, 3, 4, 0, + 5, 6, 7, 8, 9, 10, 0, 0, 11, 0, + 0, 0, 12, 13, 0, 14, 0, 0, 15, 16, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 18, 19, 0, 0, 0, 0, + 0, 20, 21, 0, 0, 22, 0, 23, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 0, 0, 11, 0, 0, 0, 12, 13, 0, 14, 0, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 18, 19, 121, 0, - 0, 0, 0, 20, 21, -113, 0, 22, 0, 23, - 0, -126, -126, 122, 127, 0, 0, 0, 0, 0, - -126, -126, -126, -126, 0, -126, -126, -127, -127, 128, - 151, 0, 0, 0, 0, 0, -127, -127, -127, -127, - 0, -127, -127, -133, -133, 0, 123, 191, -126, 0, - 97, 0, -133, -133, -133, -133, 0, -133, -133, 0, - -130, -130, 192, 96, -127, 0, 97, 0, 0, -130, - -130, -130, -130, 0, -130, -130, -115, -115, 152, 100, - -133, 0, 97, 0, 0, -115, -115, -115, -115, 0, - -115, -115, -117, -117, 0, 106, 0, -130, 0, 97, - 0, -117, -117, -117, -117, 0, -117, -117, -116, -116, - 0, 108, 0, -115, 0, 97, 0, -116, -116, -116, - -116, 0, -116, -116, -118, -118, 0, 110, 0, -117, - 0, 97, 0, -118, -118, -118, -118, 0, -118, -118, - -120, -120, 0, 112, 0, -116, 0, 97, 0, -120, - -120, -120, -120, 0, -120, -120, -121, -121, 0, 114, - 0, -118, 0, 97, 0, -121, -121, -121, -121, 0, - -121, -121, -122, -122, 0, 117, 0, -120, 0, 97, - 0, -122, -122, -122, -122, 0, -122, -122, -128, -128, - 0, 144, 0, -121, 0, 97, 0, -128, -128, -128, - -128, 0, -128, -128, -124, -124, 0, 146, 0, -122, - 0, 97, 0, -124, -124, -124, -124, 0, -124, -124, - -125, -125, 0, 149, 0, -128, 0, 97, 0, -125, - -125, -125, -125, 0, -125, -125, -131, -131, 0, 154, - 0, -124, 0, 97, 0, -131, -131, -131, -131, 0, - -131, -131, -134, -134, 0, 187, 0, -125, 0, 97, - 0, -134, -134, -134, -134, 0, -134, -134, -119, -119, - 0, 196, 0, -131, 0, 97, 0, -119, -119, -119, - -119, 0, -119, -119, -132, -132, 0, 0, 0, -134, - 0, 97, 0, -132, -132, -132, -132, 0, -132, -132, - 0, 0, 0, 0, 0, -119, 0, 97, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 0, 0, - 11, -132, 0, 97, 12, 13, 0, 14, 0, 0, - 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 18, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 19, -3, 156, 0, 0, 0, 20, 87, 0, 0, 22, 0, 23, - 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, - 0, 0, 11, 0, 0, 0, 12, 13, 0, 14, - 0, 0, 15, 16, 17, 0, 0, 0, 0, 0, - 0, 0, 215, 0, 0, 0, 0, 0, 18, 19, - 0, 0, 0, 0, 0, 20, 21, 0, 0, 22, - 0, 23, 2, 3, 4, 0, 5, 6, 7, 8, - 9, 10, 0, 0, 11, 0, 0, 0, 12, 13, - 0, 14, 0, 0, 15, 16, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 19, -3, 156, 0, 0, 0, 20, 21, 0, - 0, 22, 0, 23, 0, 157, 158, 0, 159, 160, - 161, 0, 0, 0, 0, 162, 163, 0, 0, 0, - 0, 0, 0, 0, 164, 116, 0, 0, 0, 165, - 166, 167, 168, 169, 170, 171, 172, 173, -123, -123, - 0, 148, -114, 174, 0, 0, 0, -123, -123, -123, - -123, 0, -123, -123, -129, -129, 0, 0, 0, 0, - 0, 0, 0, -129, -129, -129, -129, 0, -129, -129, - 0, 0, 0, 0, 0, -123, 101, 0, 107, 109, - 111, 113, 115, 0, 118, 0, 124, 0, 129, 0, - 0, -129, 145, 147, 0, 150, 0, 153, 155, 0, 0, 157, 158, 0, 159, 160, 161, 0, 0, 0, - 0, 162, 163, 0, 0, 0, 0, 0, 0, 188, - 164, 193, 0, 197, 0, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 0, 0, 157, 158, 272, 159, - 160, 161, 0, 0, 0, 0, 162, 163, 0, 0, - 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 157, - 0, 0, 159, 160, 161, 0, 0, 0, 0, 162, - 163, 0, 0, 0, 0, 0, 0, 0, 164, 0, - 0, 0, 0, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 159, 160, 161, 0, 0, 0, 0, 162, - 163, 0, 0, 0, 0, 0, 0, 0, 164, 0, - 0, 0, 0, 165, 166, 167, 168, 169, 170, 171, - 172, 173 + 0, 162, 163, 0, 0, 0, 0, 0, 0, 0, + 164, 116, 0, 0, 0, 165, 166, 167, 168, 169, + 170, 171, 172, 173, -123, -123, 0, 148, -114, 174, + 0, 0, 0, -123, -123, -123, -123, 0, -123, -123, + -129, -129, 0, 0, 0, 0, 0, 0, 0, -129, + -129, -129, -129, 0, -129, -129, 0, 0, 0, 0, + 0, -123, 101, 0, 107, 109, 111, 113, 115, 0, + 118, 0, 124, 0, 129, 0, 0, -129, 145, 147, + 0, 150, 0, 153, 155, 0, 0, 157, 158, 0, + 159, 160, 161, 0, 0, 0, 0, 162, 163, 0, + 0, 0, 0, 0, 0, 188, 164, 193, 0, 197, + 0, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 0, 0, 157, 158, 272, 159, 160, 161, 0, 0, + 0, 0, 162, 163, 0, 0, 0, 0, 0, 0, + 0, 164, 0, 0, 0, 0, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 157, 0, 0, 159, 160, + 161, 0, 0, 0, 0, 162, 163, 0, 0, 0, + 0, 0, 0, 0, 164, 0, 0, 0, 0, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 159, 160, + 161, 0, 0, 0, 0, 162, 163, 0, 0, 0, + 0, 0, 0, 0, 164, 0, 0, 0, 0, 165, + 166, 167, 168, 169, 170, 171, 172, 173 }; static const yytype_int16 yycheck[] = { - 0, 218, 40, 0, 22, 50, 40, 21, 53, 21, - 3, 11, 12, 13, 7, 21, 123, 40, 18, 19, - 40, 40, 54, 3, 40, 35, 23, 37, 27, 39, - 40, 41, 25, 26, 27, 3, 35, 20, 37, 7, - 39, 40, 41, 21, 27, 152, 26, 27, 54, 87, - 3, 54, 35, 87, 37, 48, 39, 40, 26, 27, - 3, 54, 72, 280, 87, 50, 3, 87, 87, 3, - 3, 87, 57, 72, 54, 50, 54, 77, 53, 0, - 48, 50, 35, 26, 27, 50, 54, 25, 87, 72, - 32, 54, 26, 27, 50, 21, 96, 97, 35, 55, - 100, 43, 44, 45, 87, 48, 106, 55, 108, 21, - 110, 21, 112, 32, 114, 21, 116, 117, 58, 19, - 20, 121, 41, 42, 43, 44, 45, 127, 28, 29, - 30, 31, 50, 33, 34, 50, 50, 55, 32, 59, - 55, 55, 50, 50, 144, 81, 146, 185, 148, 149, - 55, 151, 87, -1, 154, -1, 56, 157, 158, 159, + 0, 0, 22, 21, 218, 40, 40, 40, 40, 40, + 40, 11, 12, 13, 50, 3, 21, 54, 18, 19, + 27, 57, 50, 50, 23, 53, 53, 272, 35, 3, + 37, 20, 39, 40, 41, 123, 3, 35, 27, 37, + 7, 39, 40, 41, 289, 21, 35, 35, 37, 54, + 39, 40, 87, 87, 87, 87, 87, 87, 25, 26, + 27, 35, 3, 21, 152, 72, 280, 54, 3, 3, + 50, 3, 7, 0, 72, 55, 25, 77, 54, 3, + 87, 48, 50, 72, 50, 26, 27, 54, 50, 55, + 50, 26, 27, 55, 26, 27, 96, 97, 87, 50, + 100, 54, 26, 27, 55, 21, 106, 48, 108, 55, + 110, 21, 112, 48, 114, 21, 116, 117, 21, 54, + 32, 121, 54, 32, 32, 58, 55, 127, 59, 41, + 42, 43, 44, 45, 43, 44, 45, 50, 81, 50, + 87, -1, -1, -1, 144, -1, 146, -1, 148, 149, + 185, 151, -1, -1, 154, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, -1, -1, -1, -1, 175, 179, - 180, 181, 182, 183, 184, -1, 185, 187, -1, -1, - -1, 191, 189, -1, 212, 205, 196, 207, 208, -1, - 210, -1, -1, -1, -1, 204, 205, -1, 207, 208, - -1, 210, -1, -1, -1, 3, 4, 5, 218, 7, + 170, 171, 172, 173, -1, -1, 175, -1, 185, 179, + 180, 181, 182, 183, 184, -1, -1, 187, -1, -1, + 189, 191, 212, -1, -1, -1, 196, 204, 205, -1, + 207, 208, -1, 210, -1, -1, -1, 205, -1, 207, + 208, -1, 210, -1, -1, 3, 4, 5, 218, 7, 8, 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, 19, 20, -1, 22, -1, -1, 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, - -1, -1, 270, 41, 42, -1, -1, -1, -1, 256, + 270, -1, -1, 41, 42, -1, -1, 256, -1, -1, 48, 49, -1, -1, 52, -1, 54, -1, -1, -1, - -1, 59, -1, -1, -1, 272, -1, -1, -1, -1, - 280, -1, -1, -1, -1, -1, 286, -1, -1, -1, - -1, -1, -1, -1, -1, 295, 1, 294, 3, 4, + -1, 59, -1, 19, 20, -1, -1, -1, -1, -1, + 280, -1, 28, 29, 30, 31, 286, 33, 34, -1, + 1, -1, 3, 4, 5, 295, 7, 8, 9, 10, + 11, 12, -1, -1, 15, -1, -1, -1, 19, 20, + 56, 22, -1, -1, 25, 26, 27, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 41, 42, 6, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, 54, -1, 19, 20, 21, 6, -1, + -1, -1, -1, -1, 28, 29, 30, 31, -1, 33, + 34, 19, 20, 21, 6, -1, -1, -1, -1, -1, + 28, 29, 30, 31, -1, 33, 34, 19, 20, -1, + 54, 6, 56, -1, 58, -1, 28, 29, 30, 31, + -1, 33, 34, -1, 19, 20, 21, 6, 56, -1, + 58, -1, -1, 28, 29, 30, 31, -1, 33, 34, + 19, 20, 54, 6, 56, -1, 58, -1, -1, 28, + 29, 30, 31, -1, 33, 34, 19, 20, -1, 6, + -1, 56, -1, 58, -1, 28, 29, 30, 31, -1, + 33, 34, 19, 20, -1, 6, -1, 56, -1, 58, + -1, 28, 29, 30, 31, -1, 33, 34, 19, 20, + -1, 6, -1, 56, -1, 58, -1, 28, 29, 30, + 31, -1, 33, 34, 19, 20, -1, 6, -1, 56, + -1, 58, -1, 28, 29, 30, 31, -1, 33, 34, + 19, 20, -1, 6, -1, 56, -1, 58, -1, 28, + 29, 30, 31, -1, 33, 34, 19, 20, -1, 6, + -1, 56, -1, 58, -1, 28, 29, 30, 31, -1, + 33, 34, 19, 20, -1, 6, -1, 56, -1, 58, + -1, 28, 29, 30, 31, -1, 33, 34, 19, 20, + -1, 6, -1, 56, -1, 58, -1, 28, 29, 30, + 31, -1, 33, 34, 19, 20, -1, 6, -1, 56, + -1, 58, -1, 28, 29, 30, 31, -1, 33, 34, + 19, 20, -1, 6, -1, 56, -1, 58, -1, 28, + 29, 30, 31, -1, 33, 34, 19, 20, -1, 6, + -1, 56, -1, 58, -1, 28, 29, 30, 31, -1, + 33, 34, 19, 20, -1, 6, -1, 56, -1, 58, + -1, 28, 29, 30, 31, -1, 33, 34, 19, 20, + -1, -1, -1, 56, -1, 58, -1, 28, 29, 30, + 31, -1, 33, 34, -1, -1, -1, -1, -1, 56, + -1, 58, 3, 4, 5, -1, 7, 8, 9, 10, + 11, 12, -1, -1, 15, 56, -1, 58, 19, 20, + -1, 22, -1, -1, 25, 26, 27, -1, -1, -1, + -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, + 41, 42, -1, -1, -1, -1, -1, 48, 49, -1, + -1, 52, -1, 54, 3, 4, 5, -1, 7, 8, + 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, + 19, 20, -1, 22, -1, -1, 25, 26, 27, -1, + -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, + -1, -1, 41, 42, -1, -1, -1, -1, -1, 48, + 49, -1, -1, 52, -1, 54, 3, 4, 5, -1, + 7, 8, 9, 10, 11, 12, -1, -1, 15, -1, + -1, -1, 19, 20, -1, 22, -1, -1, 25, 26, + 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, 42, -1, -1, -1, -1, + -1, 48, 49, -1, -1, 52, -1, 54, 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, 19, 20, -1, 22, -1, -1, 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, 42, 6, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, 54, - -1, 19, 20, 21, 6, -1, -1, -1, -1, -1, - 28, 29, 30, 31, -1, 33, 34, 19, 20, 21, - 6, -1, -1, -1, -1, -1, 28, 29, 30, 31, - -1, 33, 34, 19, 20, -1, 54, 6, 56, -1, - 58, -1, 28, 29, 30, 31, -1, 33, 34, -1, - 19, 20, 21, 6, 56, -1, 58, -1, -1, 28, - 29, 30, 31, -1, 33, 34, 19, 20, 54, 6, - 56, -1, 58, -1, -1, 28, 29, 30, 31, -1, - 33, 34, 19, 20, -1, 6, -1, 56, -1, 58, - -1, 28, 29, 30, 31, -1, 33, 34, 19, 20, - -1, 6, -1, 56, -1, 58, -1, 28, 29, 30, - 31, -1, 33, 34, 19, 20, -1, 6, -1, 56, - -1, 58, -1, 28, 29, 30, 31, -1, 33, 34, - 19, 20, -1, 6, -1, 56, -1, 58, -1, 28, - 29, 30, 31, -1, 33, 34, 19, 20, -1, 6, - -1, 56, -1, 58, -1, 28, 29, 30, 31, -1, - 33, 34, 19, 20, -1, 6, -1, 56, -1, 58, - -1, 28, 29, 30, 31, -1, 33, 34, 19, 20, - -1, 6, -1, 56, -1, 58, -1, 28, 29, 30, - 31, -1, 33, 34, 19, 20, -1, 6, -1, 56, - -1, 58, -1, 28, 29, 30, 31, -1, 33, 34, - 19, 20, -1, 6, -1, 56, -1, 58, -1, 28, - 29, 30, 31, -1, 33, 34, 19, 20, -1, 6, - -1, 56, -1, 58, -1, 28, 29, 30, 31, -1, - 33, 34, 19, 20, -1, 6, -1, 56, -1, 58, - -1, 28, 29, 30, 31, -1, 33, 34, 19, 20, - -1, 6, -1, 56, -1, 58, -1, 28, 29, 30, - 31, -1, 33, 34, 19, 20, -1, -1, -1, 56, - -1, 58, -1, 28, 29, 30, 31, -1, 33, 34, - -1, -1, -1, -1, -1, 56, -1, 58, 3, 4, - 5, -1, 7, 8, 9, 10, 11, 12, -1, -1, - 15, 56, -1, 58, 19, 20, -1, 22, -1, -1, - 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, - 35, -1, -1, -1, -1, -1, 41, 42, -1, -1, + -1, -1, -1, -1, -1, -1, 41, 42, 0, 1, -1, -1, -1, 48, 49, -1, -1, 52, -1, 54, - 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, - -1, -1, 15, -1, -1, -1, 19, 20, -1, 22, - -1, -1, 25, 26, 27, -1, -1, -1, -1, -1, - -1, -1, 35, -1, -1, -1, -1, -1, 41, 42, - -1, -1, -1, -1, -1, 48, 49, -1, -1, 52, - -1, 54, 3, 4, 5, -1, 7, 8, 9, 10, - 11, 12, -1, -1, 15, -1, -1, -1, 19, 20, - -1, 22, -1, -1, 25, 26, 27, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 41, 42, 0, 1, -1, -1, -1, 48, 49, -1, - -1, 52, -1, 54, -1, 13, 14, -1, 16, 17, - 18, -1, -1, -1, -1, 23, 24, -1, -1, -1, - -1, -1, -1, -1, 32, 6, -1, -1, -1, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 19, 20, - -1, 6, 50, 51, -1, -1, -1, 28, 29, 30, - 31, -1, 33, 34, 19, 20, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, 31, -1, 33, 34, - -1, -1, -1, -1, -1, 56, 26, -1, 28, 29, - 30, 31, 32, -1, 34, -1, 36, -1, 38, -1, - -1, 56, 42, 43, -1, 45, -1, 47, 48, -1, -1, 13, 14, -1, 16, 17, 18, -1, -1, -1, - -1, 23, 24, -1, -1, -1, -1, -1, -1, 69, - 32, 71, -1, 73, -1, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, -1, 13, 14, 50, 16, - 17, 18, -1, -1, -1, -1, 23, 24, -1, -1, - -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 13, - -1, -1, 16, 17, 18, -1, -1, -1, -1, 23, - 24, -1, -1, -1, -1, -1, -1, -1, 32, -1, - -1, -1, -1, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 16, 17, 18, -1, -1, -1, -1, 23, - 24, -1, -1, -1, -1, -1, -1, -1, 32, -1, - -1, -1, -1, 37, 38, 39, 40, 41, 42, 43, - 44, 45 + -1, 23, 24, -1, -1, -1, -1, -1, -1, -1, + 32, 6, -1, -1, -1, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 19, 20, -1, 6, 50, 51, + -1, -1, -1, 28, 29, 30, 31, -1, 33, 34, + 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, + 29, 30, 31, -1, 33, 34, -1, -1, -1, -1, + -1, 56, 26, -1, 28, 29, 30, 31, 32, -1, + 34, -1, 36, -1, 38, -1, -1, 56, 42, 43, + -1, 45, -1, 47, 48, -1, -1, 13, 14, -1, + 16, 17, 18, -1, -1, -1, -1, 23, 24, -1, + -1, -1, -1, -1, -1, 69, 32, 71, -1, 73, + -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, + -1, -1, 13, 14, 50, 16, 17, 18, -1, -1, + -1, -1, 23, 24, -1, -1, -1, -1, -1, -1, + -1, 32, -1, -1, -1, -1, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 13, -1, -1, 16, 17, + 18, -1, -1, -1, -1, 23, 24, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, -1, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 16, 17, + 18, -1, -1, -1, -1, 23, 24, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, -1, 37, + 38, 39, 40, 41, 42, 43, 44, 45 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1189,8 +1196,8 @@ static const yytype_uint8 yystos[] = 91, 91, 91, 91, 91, 96, 94, 91, 91, 91, 91, 91, 91, 3, 73, 75, 91, 96, 91, 91, 50, 55, 50, 55, 3, 35, 119, 120, 87, 92, - 58, 55, 55, 96, 87, 96, 59, 50, 92, 50, - 91, 118, 3, 35, 125, 50, 53, 96, 91, 55 + 58, 55, 55, 96, 87, 86, 59, 50, 92, 50, + 91, 118, 3, 35, 86, 50, 53, 55, 91 }; #define yyerrok (yyerrstatus = 0) @@ -2011,7 +2018,7 @@ yyreduce: switch (yyn) { case 2: -#line 237 "macro.y" +#line 238 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (2)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2023,7 +2030,7 @@ yyreduce: break; case 3: -#line 246 "macro.y" +#line 247 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2035,7 +2042,7 @@ yyreduce: break; case 4: -#line 254 "macro.y" +#line 255 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2047,7 +2054,7 @@ yyreduce: break; case 5: -#line 262 "macro.y" +#line 263 "macro.y" { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid expression: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2056,7 +2063,7 @@ yyreduce: break; case 6: -#line 267 "macro.y" +#line 268 "macro.y" { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid syntax: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2065,79 +2072,79 @@ yyreduce: break; case 7: -#line 276 "macro.y" +#line 277 "macro.y" { (yyval.asExpr) = hb_compExprNewDouble( (yyvsp[(1) - (1)].valDouble).dNumber, (yyvsp[(1) - (1)].valDouble).bWidth, (yyvsp[(1) - (1)].valDouble).bDec, HB_COMP_PARAM ); ;} break; case 8: -#line 277 "macro.y" +#line 278 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 9: -#line 280 "macro.y" +#line 281 "macro.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 10: -#line 283 "macro.y" +#line 284 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 11: -#line 288 "macro.y" +#line 289 "macro.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 12: -#line 293 "macro.y" +#line 294 "macro.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, FALSE, HB_COMP_PARAM ); ;} break; case 13: -#line 298 "macro.y" +#line 299 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 14: -#line 299 "macro.y" +#line 300 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 15: -#line 304 "macro.y" +#line 305 "macro.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 16: -#line 309 "macro.y" +#line 310 "macro.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 17: -#line 314 "macro.y" +#line 315 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 18: -#line 319 "macro.y" +#line 320 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 19: -#line 322 "macro.y" +#line 323 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 20: -#line 327 "macro.y" +#line 328 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 21: -#line 330 "macro.y" +#line 331 "macro.y" { ULONG ulLen = strlen( (yyvsp[(1) - (1)].string) ); char * szVarName = hb_macroTextSubst( (yyvsp[(1) - (1)].string), &ulLen ); if( szVarName != (yyvsp[(1) - (1)].string) ) @@ -2158,296 +2165,296 @@ yyreduce: break; case 22: -#line 349 "macro.y" +#line 350 "macro.y" { hb_compExprMacroAsAlias( (yyvsp[(1) - (2)].asExpr) ); ;} break; case 23: -#line 354 "macro.y" +#line 355 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 25: -#line 364 "macro.y" +#line 365 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 26: -#line 365 "macro.y" +#line 366 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 27: -#line 370 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 28: #line 371 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 29: + case 28: #line 372 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 30: + case 29: #line 373 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 31: + case 30: #line 374 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 31: +#line 375 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 32: -#line 377 "macro.y" +#line 378 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 34: -#line 381 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 35: #line 382 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 36: + case 35: #line 383 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 37: + case 36: #line 384 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 38: + case 37: #line 385 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 39: + case 38: #line 386 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 40: + case 39: #line 387 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 41: -#line 396 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + case 40: +#line 388 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 42: + case 41: #line 397 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 43: + case 42: #line 398 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 44: + case 43: #line 399 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 45: + case 44: #line 400 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 46: -#line 405 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + case 45: +#line 401 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 47: + case 46: #line 406 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 48: + case 47: #line 407 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 49: + case 48: #line 408 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 50: + case 49: #line 409 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 51: + case 50: #line 410 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 52: + case 51: #line 411 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 53: + case 52: #line 412 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 54: + case 53: #line 413 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 55: + case 54: #line 414 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 56: + case 55: #line 415 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 57: + case 56: #line 416 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 58: + case 57: #line 417 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 59: + case 58: #line 418 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 60: + case 59: #line 419 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 61: + case 60: #line 420 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 62: + case 61: #line 421 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 62: +#line 422 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 63: -#line 426 "macro.y" +#line 427 "macro.y" { (yyval.asExpr) = hb_compExprNewFunCall( hb_compExprNewFunName( (yyvsp[(1) - (4)].string), HB_COMP_PARAM ), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 64: -#line 429 "macro.y" +#line 430 "macro.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 65: -#line 434 "macro.y" +#line 435 "macro.y" { (yyval.asExpr) = hb_compExprNewFunRef( (yyvsp[(2) - (4)].string), HB_COMP_PARAM ); ;} break; case 66: -#line 437 "macro.y" +#line 438 "macro.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 67: -#line 438 "macro.y" +#line 439 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 69: -#line 442 "macro.y" +#line 443 "macro.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; case 70: -#line 443 "macro.y" +#line 444 "macro.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 71: -#line 446 "macro.y" +#line 447 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 73: -#line 452 "macro.y" +#line 453 "macro.y" { (yyval.asExpr) = hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].string), NULL, HB_COMP_PARAM ); ;} break; case 74: -#line 453 "macro.y" - { (yyval.asExpr) = hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 75: #line 454 "macro.y" { (yyval.asExpr) = hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; + case 75: +#line 455 "macro.y" + { (yyval.asExpr) = hb_compExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + case 76: -#line 459 "macro.y" +#line 460 "macro.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr) ); ;} break; case 97: -#line 483 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} - break; - - case 98: #line 484 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 99: + case 98: #line 485 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 105: -#line 493 "macro.y" - { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} + case 99: +#line 486 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; - case 106: + case 105: #line 494 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; + case 106: +#line 495 "macro.y" + { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} + break; + case 107: -#line 497 "macro.y" +#line 498 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 109: -#line 501 "macro.y" +#line 502 "macro.y" { if( !(HB_MACRO_DATA->Flags & HB_MACRO_GEN_LIST) ) { @@ -2459,7 +2466,7 @@ yyreduce: break; case 110: -#line 509 "macro.y" +#line 510 "macro.y" { HB_MACRO_DATA->uiListElements = 1; (yyval.asExpr) = hb_compExprAddListExpr( ( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PARE ) ? hb_compExprNewList( (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ) : hb_compExprNewArgList( (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), (yyvsp[(4) - (4)].asExpr) ); @@ -2467,369 +2474,364 @@ yyreduce: break; case 112: -#line 516 "macro.y" +#line 517 "macro.y" { HB_MACRO_DATA->uiListElements++; (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 113: -#line 520 "macro.y" +#line 521 "macro.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; case 135: -#line 549 "macro.y" +#line 550 "macro.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 136: -#line 550 "macro.y" +#line 551 "macro.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 137: -#line 556 "macro.y" +#line 557 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 138: -#line 559 "macro.y" +#line 560 "macro.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 139: -#line 560 "macro.y" +#line 561 "macro.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 140: -#line 563 "macro.y" +#line 564 "macro.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 141: -#line 564 "macro.y" +#line 565 "macro.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 142: -#line 565 "macro.y" +#line 566 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 143: -#line 568 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 144: #line 569 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 145: + case 144: #line 570 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 146: + case 145: #line 571 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 147: + case 146: #line 572 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 148: + case 147: #line 573 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 149: + case 148: #line 574 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 150: + case 149: #line 575 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 151: + case 150: #line 576 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 152: + case 151: #line 577 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 153: + case 152: #line 578 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 154: + case 153: #line 579 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 155: + case 154: #line 580 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 156: + case 155: #line 581 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 157: + case 156: #line 582 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 158: + case 157: #line 583 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 159: + case 158: #line 584 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 160: + case 159: #line 585 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 161: + case 160: #line 586 "macro.y" + { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 161: +#line 587 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ), HB_SM_HARBOUR ); ;} break; case 162: -#line 587 "macro.y" +#line 588 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 163: -#line 590 "macro.y" +#line 591 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 164: -#line 593 "macro.y" +#line 594 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 165: -#line 596 "macro.y" +#line 597 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 166: -#line 599 "macro.y" +#line 600 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 167: -#line 602 "macro.y" +#line 603 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 168: -#line 605 "macro.y" +#line 606 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 175: -#line 616 "macro.y" +#line 617 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 176: -#line 617 "macro.y" +#line 618 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 177: -#line 618 "macro.y" +#line 619 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 178: -#line 619 "macro.y" +#line 620 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 179: -#line 620 "macro.y" +#line 621 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 180: -#line 621 "macro.y" +#line 622 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 181: -#line 624 "macro.y" +#line 625 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 182: -#line 625 "macro.y" +#line 626 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 183: -#line 628 "macro.y" +#line 629 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 184: -#line 629 "macro.y" +#line 630 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 185: -#line 630 "macro.y" +#line 631 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 186: -#line 631 "macro.y" +#line 632 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 187: -#line 632 "macro.y" +#line 633 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 188: -#line 633 "macro.y" - { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 189: #line 634 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 190: + case 189: #line 635 "macro.y" + { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 190: +#line 636 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 191: -#line 636 "macro.y" +#line 637 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 193: -#line 645 "macro.y" +#line 646 "macro.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 194: -#line 646 "macro.y" +#line 647 "macro.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 195: -#line 647 "macro.y" +#line 648 "macro.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; case 196: -#line 650 "macro.y" +#line 651 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 197: -#line 651 "macro.y" +#line 652 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 198: -#line 655 "macro.y" +#line 656 "macro.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( NULL, 0, 0, HB_COMP_PARAM ); ;} break; case 199: -#line 657 "macro.y" +#line 658 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (7)].asExpr); ;} break; case 200: -#line 662 "macro.y" +#line 663 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; case 201: -#line 663 "macro.y" +#line 664 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 202: -#line 668 "macro.y" +#line 669 "macro.y" { (yyval.asExpr) = NULL; ;} break; case 203: -#line 669 "macro.y" +#line 670 "macro.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 204: -#line 670 "macro.y" +#line 671 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; case 205: -#line 671 "macro.y" +#line 672 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; case 206: -#line 674 "macro.y" +#line 675 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].string), ' ', HB_COMP_PARAM ); ;} break; case 207: -#line 675 "macro.y" +#line 676 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].string), ' ', HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 208: -#line 678 "macro.y" +#line 679 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 209: -#line 679 "macro.y" +#line 680 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 212: -#line 690 "macro.y" - { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (6)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (6)].asExpr) ); ;} - break; - - case 213: -#line 692 "macro.y" - { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( (yyvsp[(7) - (9)].asExpr), (yyvsp[(8) - (9)].asExpr) ), HB_COMP_PARAM ); ;} +#line 691 "macro.y" + { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} break; /* Line 1267 of yacc.c. */ -#line 2833 "macroy.c" +#line 2835 "macroy.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3043,7 +3045,7 @@ yyreturn: } -#line 695 "macro.y" +#line 694 "macro.y" #ifdef __WATCOMC__ diff --git a/harbour/source/macro/macro.yyh b/harbour/source/macro/macro.yyh index 351852a976..4139a56268 100644 --- a/harbour/source/macro/macro.yyh +++ b/harbour/source/macro/macro.yyh @@ -120,7 +120,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 120 "macro.y" +#line 121 "macro.y" { char * string; /* to hold a string returned by lex */ int iNumber; /* to hold a temporary integer number */ diff --git a/harbour/source/vm/macro.c b/harbour/source/vm/macro.c index 681319f6be..980451f837 100644 --- a/harbour/source/vm/macro.c +++ b/harbour/source/vm/macro.c @@ -955,6 +955,26 @@ int hb_compLocalVarGetPos( char * szVarName, HB_COMP_DECL ) return 0; } +BOOL hb_compIsValidMacroText( HB_COMP_DECL, char * szText, ULONG ulLen ) +{ + HB_SYMBOL_UNUSED( HB_COMP_PARAM ); + + if( ulLen ) + { + while( --ulLen ) + { + if( *szText++ == '&' ) + { + char ch = *szText; + if( ( ch >= 'A' && ch <= 'Z' ) || + ( ch >= 'a' && ch <= 'z' ) || ch == '_' ) + return TRUE; + } + } + } + + return FALSE; +} ULONG hb_compGenJump( LONG lOffset, HB_COMP_DECL ) { diff --git a/harbour/source/vm/memvars.c b/harbour/source/vm/memvars.c index 931a18f7bc..784340b6ee 100644 --- a/harbour/source/vm/memvars.c +++ b/harbour/source/vm/memvars.c @@ -549,7 +549,7 @@ void hb_memvarNewParameter( PHB_SYMB pSymbol, PHB_ITEM pValue ) { HB_TRACE(HB_TR_DEBUG, ("hb_memvarNewParameter(%p, %p)", pSymbol, pValue)); - hb_memvarCreateFromDynSymbol( pSymbol->pDynSym, HB_MV_PRIVATE, pValue ); + hb_memvarCreateFromDynSymbol( pSymbol->pDynSym, VS_PRIVATE, pValue ); } static HB_DYNS_PTR hb_memvarFindSymbol( char * szArg, ULONG ulLen ) @@ -558,7 +558,7 @@ static HB_DYNS_PTR hb_memvarFindSymbol( char * szArg, ULONG ulLen ) HB_TRACE(HB_TR_DEBUG, ("hb_memvarFindSymbol(%p,%lu)", szArg, ulLen)); - if( szArg && *szArg && ulLen ) + if( ulLen && szArg && *szArg ) { char szUprName[ HB_SYMBOL_NAME_LEN + 1 ]; int iSize = 0; @@ -653,11 +653,11 @@ void hb_memvarCreateFromItem( PHB_ITEM pMemvar, BYTE bScope, PHB_ITEM pValue ) pDynVar = pMemvar->item.asSymbol.value->pDynSym; else if( HB_IS_STRING( pMemvar ) ) pDynVar = hb_dynsymGet( pMemvar->item.asString.value ); - else - hb_errRT_BASE( EG_ARG, 3008, NULL, "&", HB_ERR_ARGS_BASEPARAMS ); if( pDynVar ) hb_memvarCreateFromDynSymbol( pDynVar, bScope, pValue ); + else + hb_errRT_BASE( EG_ARG, 3008, NULL, "&", HB_ERR_ARGS_BASEPARAMS ); } static void hb_memvarCreateFromDynSymbol( PHB_DYNS pDynVar, BYTE bScope, PHB_ITEM pValue ) @@ -1070,7 +1070,8 @@ HB_FUNC( __MVSCOPE ) PHB_ITEM pVarName = hb_param( 1, HB_IT_STRING ); if( pVarName ) - iMemvar = hb_memvarScope( pVarName->item.asString.value, pVarName->item.asString.length + 1 ); + iMemvar = hb_memvarScope( pVarName->item.asString.value, + pVarName->item.asString.length ); } hb_retni( iMemvar ); diff --git a/harbour/source/vm/memvclip.c b/harbour/source/vm/memvclip.c index 2e76f61d9d..c65a31c474 100644 --- a/harbour/source/vm/memvclip.c +++ b/harbour/source/vm/memvclip.c @@ -50,11 +50,9 @@ * */ -#include "hbvmopt.h" #include "hbapi.h" -#include "hbapiitm.h" -#include "hbcomp.h" /* for VS_* macros */ +HB_FUNC_EXTERN( __MVPUBLIC ); HB_FUNC_EXTERN( __MVCLEAR ); HB_FUNC_EXTERN( __MVRELEASE ); HB_FUNC_EXTERN( __MVXRELEASE ); @@ -67,10 +65,15 @@ HB_FUNC_EXTERN( __MVRESTORE ); HB_FUNC( __QQPUB ) { - PHB_ITEM pItem = hb_param( 1, HB_IT_STRING ); - - if( pItem ) - hb_memvarCreateFromItem( pItem, VS_PUBLIC, NULL ); + if( hb_pcount() == 1 ) + { + /* In Clipper __QQPUB function does not check number of parameters + or parameter type - just simply takes directly the top item from + VM stack */ + PHB_ITEM pItem = hb_param( 1, HB_IT_STRING ); + if( pItem ) + HB_FUNC_EXEC( __MVPUBLIC ); + } } #endif @@ -79,25 +82,25 @@ HB_FUNC( __QQPUB ) HB_FUNC( __MCLEAR ) { - HB_FUNCNAME( __MVCLEAR )(); + HB_FUNC_EXEC( __MVCLEAR ); } HB_FUNC( __MRELEASE ) { - HB_FUNCNAME( __MVRELEASE )(); + HB_FUNC_EXEC( __MVRELEASE ); } HB_FUNC( __MXRELEASE ) { - HB_FUNCNAME( __MVXRELEASE )(); + HB_FUNC_EXEC( __MVXRELEASE ); } HB_FUNC( __MSAVE ) { - HB_FUNCNAME( __MVSAVE )(); + HB_FUNC_EXEC( __MVSAVE ); } HB_FUNC( __MRESTORE ) { - HB_FUNCNAME( __MVRESTORE )(); + HB_FUNC_EXEC( __MVRESTORE ); }