mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-04 06:11:37 +01:00 
			
		
		
		
	https://github.com/smarty-php/smarty/issues/396 https://github.com/smarty-php/smarty/issues/397 https://github.com/smarty-php/smarty/issues/391 https://github.com/smarty-php/smarty/issues/392
		
			
				
	
	
		
			3508 lines
		
	
	
		
			142 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			3508 lines
		
	
	
		
			142 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
class TP_yyToken implements ArrayAccess
 | 
						|
{
 | 
						|
    public $string   = '';
 | 
						|
    public $metadata = array();
 | 
						|
 | 
						|
    public function __construct($s, $m = array())
 | 
						|
    {
 | 
						|
        if ($s instanceof TP_yyToken) {
 | 
						|
            $this->string = $s->string;
 | 
						|
            $this->metadata = $s->metadata;
 | 
						|
        } else {
 | 
						|
            $this->string = (string)$s;
 | 
						|
            if ($m instanceof TP_yyToken) {
 | 
						|
                $this->metadata = $m->metadata;
 | 
						|
            } else if (is_array($m)) {
 | 
						|
                $this->metadata = $m;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function __toString()
 | 
						|
    {
 | 
						|
        return $this->string;
 | 
						|
    }
 | 
						|
 | 
						|
    public function offsetExists($offset)
 | 
						|
    {
 | 
						|
        return isset($this->metadata[ $offset ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function offsetGet($offset)
 | 
						|
    {
 | 
						|
        return $this->metadata[ $offset ];
 | 
						|
    }
 | 
						|
 | 
						|
    public function offsetSet($offset, $value)
 | 
						|
    {
 | 
						|
        if ($offset === null) {
 | 
						|
            if (isset($value[ 0 ])) {
 | 
						|
                $x = ($value instanceof TP_yyToken) ?
 | 
						|
                    $value->metadata : $value;
 | 
						|
                $this->metadata = array_merge($this->metadata, $x);
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            $offset = count($this->metadata);
 | 
						|
        }
 | 
						|
        if ($value === null) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        if ($value instanceof TP_yyToken) {
 | 
						|
            if ($value->metadata) {
 | 
						|
                $this->metadata[ $offset ] = $value->metadata;
 | 
						|
            }
 | 
						|
        } else if ($value) {
 | 
						|
            $this->metadata[ $offset ] = $value;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function offsetUnset($offset)
 | 
						|
    {
 | 
						|
        unset($this->metadata[ $offset ]);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
class TP_yyStackEntry
 | 
						|
{
 | 
						|
    public $stateno;       /* The state-number */
 | 
						|
    public $major;         /* The major token value.  This is the code
 | 
						|
                     ** number for the token at this stack level */
 | 
						|
    public $minor; /* The user-supplied minor token value.  This
 | 
						|
                     ** is the value of the token  */
 | 
						|
}
 | 
						|
 | 
						|
;
 | 
						|
#line 11 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
 | 
						|
/**
 | 
						|
 * Smarty Template Parser Class
 | 
						|
 *
 | 
						|
 * This is the template parser.
 | 
						|
 * It is generated from the smarty_internal_templateparser.y file
 | 
						|
 *
 | 
						|
 * @author Uwe Tews <uwe.tews@googlemail.com>
 | 
						|
 */
 | 
						|
class Smarty_Internal_Templateparser
 | 
						|
{
 | 
						|
    #line 23 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    const Err1                 = 'Security error: Call to private object member not allowed';
 | 
						|
    const Err2                 = 'Security error: Call to dynamic object member not allowed';
 | 
						|
    const Err3                 = 'PHP in template not allowed. Use SmartyBC to enable it';
 | 
						|
    const TP_VERT              = 1;
 | 
						|
    const TP_COLON             = 2;
 | 
						|
    const TP_UNIMATH           = 3;
 | 
						|
    const TP_PHP               = 4;
 | 
						|
    const TP_TEXT              = 5;
 | 
						|
    const TP_STRIPON           = 6;
 | 
						|
    const TP_STRIPOFF          = 7;
 | 
						|
    const TP_LITERALSTART      = 8;
 | 
						|
    const TP_LITERALEND        = 9;
 | 
						|
    const TP_LITERAL           = 10;
 | 
						|
    const TP_RDEL              = 11;
 | 
						|
    const TP_SIMPELOUTPUT      = 12;
 | 
						|
    const TP_LDEL              = 13;
 | 
						|
    const TP_DOLLARID          = 14;
 | 
						|
    const TP_EQUAL             = 15;
 | 
						|
    const TP_SIMPLETAG         = 16;
 | 
						|
    const TP_ID                = 17;
 | 
						|
    const TP_PTR               = 18;
 | 
						|
    const TP_LDELMAKENOCACHE   = 19;
 | 
						|
    const TP_LDELIF            = 20;
 | 
						|
    const TP_LDELFOR           = 21;
 | 
						|
    const TP_SEMICOLON         = 22;
 | 
						|
    const TP_INCDEC            = 23;
 | 
						|
    const TP_TO                = 24;
 | 
						|
    const TP_STEP              = 25;
 | 
						|
    const TP_LDELFOREACH       = 26;
 | 
						|
    const TP_SPACE             = 27;
 | 
						|
    const TP_AS                = 28;
 | 
						|
    const TP_APTR              = 29;
 | 
						|
    const TP_LDELSETFILTER     = 30;
 | 
						|
    const TP_CLOSETAG          = 31;
 | 
						|
    const TP_LDELSLASH         = 32;
 | 
						|
    const TP_ATTR              = 33;
 | 
						|
    const TP_INTEGER           = 34;
 | 
						|
    const TP_COMMA             = 35;
 | 
						|
    const TP_OPENP             = 36;
 | 
						|
    const TP_CLOSEP            = 37;
 | 
						|
    const TP_MATH              = 38;
 | 
						|
    const TP_ISIN              = 39;
 | 
						|
    const TP_QMARK             = 40;
 | 
						|
    const TP_NOT               = 41;
 | 
						|
    const TP_TYPECAST          = 42;
 | 
						|
    const TP_HEX               = 43;
 | 
						|
    const TP_DOT               = 44;
 | 
						|
    const TP_INSTANCEOF        = 45;
 | 
						|
    const TP_SINGLEQUOTESTRING = 46;
 | 
						|
    const TP_DOUBLECOLON       = 47;
 | 
						|
    const TP_NAMESPACE         = 48;
 | 
						|
    const TP_AT                = 49;
 | 
						|
    const TP_HATCH             = 50;
 | 
						|
    const TP_OPENB             = 51;
 | 
						|
    const TP_CLOSEB            = 52;
 | 
						|
    const TP_DOLLAR            = 53;
 | 
						|
    const TP_LOGOP             = 54;
 | 
						|
    const TP_SLOGOP            = 55;
 | 
						|
    const TP_TLOGOP            = 56;
 | 
						|
    const TP_SINGLECOND        = 57;
 | 
						|
    const TP_QUOTE             = 58;
 | 
						|
    const TP_BACKTICK          = 59;
 | 
						|
    const YY_NO_ACTION         = 521;
 | 
						|
    const YY_ACCEPT_ACTION     = 520;
 | 
						|
    const YY_ERROR_ACTION      = 519;
 | 
						|
    const YY_SZ_ACTTAB         = 2078;
 | 
						|
    const YY_SHIFT_USE_DFLT    = -34;
 | 
						|
    const YY_SHIFT_MAX         = 231;
 | 
						|
    const YY_REDUCE_USE_DFLT   = -75;
 | 
						|
    const YY_REDUCE_MAX        = 185;
 | 
						|
    const YYNOCODE             = 106;
 | 
						|
    const YYSTACKDEPTH         = 500;
 | 
						|
    const YYNSTATE             = 327;
 | 
						|
    const YYNRULE              = 192;
 | 
						|
    const YYERRORSYMBOL        = 60;
 | 
						|
    const YYERRSYMDT           = 'yy0';
 | 
						|
    const YYFALLBACK           = 0;
 | 
						|
    static public $yy_action        = array(
 | 
						|
        41, 21, 4, 290, 16, 189, 176, 119, 275, 325,
 | 
						|
        35, 128, 99, 273, 190, 134, 214, 5, 84, 306,
 | 
						|
        347, 289, 8, 107, 318, 274, 13, 226, 277, 211,
 | 
						|
        448, 205, 284, 9, 233, 284, 36, 448, 44, 42,
 | 
						|
        261, 223, 34, 208, 324, 202, 36, 82, 1, 241,
 | 
						|
        324, 41, 34, 22, 78, 79, 96, 78, 279, 15,
 | 
						|
        325, 35, 132, 280, 273, 201, 206, 214, 5, 84,
 | 
						|
        119, 295, 25, 224, 107, 99, 168, 436, 226, 277,
 | 
						|
        211, 320, 230, 231, 9, 111, 284, 318, 436, 44,
 | 
						|
        42, 261, 223, 284, 265, 216, 202, 36, 82, 1,
 | 
						|
        41, 324, 215, 34, 227, 199, 79, 104, 78, 325,
 | 
						|
        35, 132, 324, 273, 201, 78, 214, 5, 84, 245,
 | 
						|
        237, 232, 212, 107, 284, 228, 148, 226, 277, 211,
 | 
						|
        91, 187, 29, 9, 133, 96, 281, 288, 44, 42,
 | 
						|
        261, 223, 10, 265, 244, 202, 78, 82, 1, 41,
 | 
						|
        324, 93, 26, 250, 185, 79, 279, 15, 325, 35,
 | 
						|
        132, 280, 273, 188, 111, 214, 5, 84, 287, 197,
 | 
						|
        82, 252, 107, 324, 197, 3, 226, 277, 211, 388,
 | 
						|
        196, 136, 9, 133, 391, 154, 207, 44, 42, 261,
 | 
						|
        223, 197, 265, 213, 202, 388, 82, 1, 41, 324,
 | 
						|
        391, 388, 283, 88, 79, 158, 391, 325, 35, 129,
 | 
						|
        324, 273, 80, 19, 214, 5, 84, 36, 197, 82,
 | 
						|
        324, 107, 324, 34, 435, 226, 277, 211, 349, 230,
 | 
						|
        262, 9, 210, 137, 222, 435, 44, 42, 261, 223,
 | 
						|
        255, 265, 231, 202, 36, 82, 1, 41, 324, 285,
 | 
						|
        34, 172, 298, 79, 464, 464, 325, 35, 133, 464,
 | 
						|
        273, 201, 14, 214, 5, 84, 464, 464, 34, 27,
 | 
						|
        107, 464, 324, 147, 226, 277, 211, 173, 230, 215,
 | 
						|
        12, 225, 90, 281, 104, 44, 42, 261, 223, 156,
 | 
						|
        265, 464, 202, 301, 82, 1, 41, 324, 228, 279,
 | 
						|
        15, 185, 79, 103, 280, 325, 35, 132, 276, 273,
 | 
						|
        186, 2, 214, 5, 84, 177, 293, 322, 10, 107,
 | 
						|
        243, 326, 106, 226, 277, 211, 10, 230, 257, 9,
 | 
						|
        144, 31, 85, 308, 44, 42, 261, 223, 435, 265,
 | 
						|
        281, 202, 142, 82, 1, 41, 324, 305, 164, 435,
 | 
						|
        282, 79, 281, 282, 325, 35, 130, 174, 273, 201,
 | 
						|
        435, 214, 5, 84, 139, 282, 282, 7, 107, 151,
 | 
						|
        448, 435, 226, 277, 211, 301, 230, 448, 6, 281,
 | 
						|
        228, 185, 276, 44, 42, 261, 223, 96, 265, 38,
 | 
						|
        202, 141, 82, 1, 41, 324, 197, 181, 231, 310,
 | 
						|
        79, 281, 309, 325, 35, 132, 239, 273, 191, 272,
 | 
						|
        214, 5, 84, 134, 173, 296, 123, 107, 138, 181,
 | 
						|
        8, 226, 277, 211, 215, 230, 234, 9, 281, 104,
 | 
						|
        179, 298, 44, 42, 261, 223, 152, 265, 185, 202,
 | 
						|
        153, 82, 1, 41, 324, 104, 281, 291, 96, 79,
 | 
						|
        197, 178, 325, 35, 131, 180, 273, 201, 217, 214,
 | 
						|
        5, 84, 197, 169, 100, 175, 107, 219, 197, 157,
 | 
						|
        226, 277, 211, 268, 230, 185, 9, 111, 92, 281,
 | 
						|
        123, 44, 42, 261, 223, 197, 265, 185, 202, 166,
 | 
						|
        82, 1, 41, 324, 96, 353, 32, 319, 79, 281,
 | 
						|
        258, 325, 35, 133, 181, 273, 201, 108, 214, 5,
 | 
						|
        84, 197, 38, 256, 313, 107, 263, 171, 209, 226,
 | 
						|
        277, 211, 165, 230, 161, 12, 40, 17, 271, 242,
 | 
						|
        44, 42, 261, 223, 22, 265, 236, 202, 254, 82,
 | 
						|
        286, 185, 324, 170, 298, 278, 267, 79, 259, 182,
 | 
						|
        83, 228, 203, 251, 110, 68, 112, 3, 11, 118,
 | 
						|
        323, 99, 269, 24, 264, 312, 113, 282, 285, 260,
 | 
						|
        194, 266, 86, 318, 135, 155, 299, 162, 235, 246,
 | 
						|
        238, 304, 177, 198, 303, 87, 325, 35, 167, 299,
 | 
						|
        273, 299, 299, 214, 5, 84, 299, 299, 299, 299,
 | 
						|
        107, 299, 267, 299, 226, 277, 211, 228, 203, 299,
 | 
						|
        117, 57, 102, 299, 225, 299, 299, 99, 140, 299,
 | 
						|
        264, 312, 171, 299, 299, 260, 194, 266, 281, 318,
 | 
						|
        267, 40, 17, 271, 299, 228, 203, 299, 117, 47,
 | 
						|
        102, 299, 114, 299, 299, 99, 185, 299, 264, 312,
 | 
						|
        197, 299, 39, 260, 194, 266, 299, 318, 267, 299,
 | 
						|
        299, 299, 299, 228, 203, 299, 110, 68, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        145, 260, 194, 266, 171, 318, 218, 43, 37, 299,
 | 
						|
        281, 299, 267, 40, 17, 271, 302, 228, 203, 299,
 | 
						|
        117, 66, 112, 317, 315, 314, 311, 99, 185, 299,
 | 
						|
        264, 312, 299, 307, 299, 260, 194, 266, 299, 318,
 | 
						|
        325, 28, 300, 299, 273, 299, 204, 214, 5, 84,
 | 
						|
        299, 299, 279, 15, 107, 307, 299, 280, 226, 277,
 | 
						|
        211, 299, 325, 28, 300, 299, 273, 36, 299, 214,
 | 
						|
        5, 84, 299, 34, 143, 299, 107, 299, 89, 299,
 | 
						|
        226, 277, 211, 299, 281, 299, 297, 30, 520, 52,
 | 
						|
        249, 237, 232, 212, 299, 267, 228, 299, 299, 299,
 | 
						|
        228, 203, 185, 117, 66, 112, 279, 15, 299, 30,
 | 
						|
        99, 280, 299, 264, 312, 299, 299, 299, 260, 194,
 | 
						|
        266, 36, 318, 163, 299, 267, 299, 34, 299, 200,
 | 
						|
        228, 203, 299, 117, 66, 112, 299, 299, 299, 299,
 | 
						|
        99, 299, 299, 264, 312, 197, 299, 299, 260, 194,
 | 
						|
        266, 299, 318, 299, 299, 359, 299, 299, 299, 195,
 | 
						|
        267, 299, 221, 299, 299, 228, 203, 299, 117, 77,
 | 
						|
        112, 36, 299, 299, 299, 99, 299, 34, 264, 312,
 | 
						|
        435, 299, 299, 260, 194, 266, 299, 318, 299, 299,
 | 
						|
        267, 435, 299, 299, 299, 228, 203, 299, 117, 74,
 | 
						|
        112, 299, 299, 299, 299, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 299, 299,
 | 
						|
        299, 299, 299, 299, 267, 299, 401, 401, 401, 228,
 | 
						|
        203, 299, 97, 72, 112, 299, 299, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 117, 69,
 | 
						|
        112, 435, 299, 401, 401, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 435, 260, 194, 266, 299, 318, 267, 401,
 | 
						|
        401, 401, 401, 228, 203, 299, 117, 60, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 299, 39, 228,
 | 
						|
        94, 299, 81, 51, 101, 299, 253, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 97, 53,
 | 
						|
        112, 299, 299, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 203, 299, 98, 75, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 299, 39, 228,
 | 
						|
        192, 299, 117, 55, 112, 299, 183, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 117, 67,
 | 
						|
        112, 299, 299, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 193, 299, 115, 54, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 20, 39, 228,
 | 
						|
        203, 299, 117, 71, 112, 299, 299, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 117, 70,
 | 
						|
        112, 299, 299, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 203, 299, 117, 76, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 299, 39, 228,
 | 
						|
        203, 299, 117, 57, 112, 299, 184, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 109, 49,
 | 
						|
        112, 299, 299, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 203, 299, 117, 65, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 299, 39, 228,
 | 
						|
        203, 299, 117, 64, 112, 299, 247, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 117, 56,
 | 
						|
        112, 299, 299, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 203, 299, 117, 50, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 299, 39, 228,
 | 
						|
        95, 299, 81, 46, 101, 299, 299, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 117, 48,
 | 
						|
        112, 299, 240, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 203, 299, 117, 58, 112, 299,
 | 
						|
        299, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 197, 299, 39, 228,
 | 
						|
        203, 299, 117, 73, 112, 299, 299, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 299, 299, 260, 194, 266,
 | 
						|
        267, 318, 299, 150, 299, 228, 203, 299, 117, 45,
 | 
						|
        112, 299, 299, 43, 37, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 317,
 | 
						|
        315, 314, 311, 228, 203, 299, 117, 62, 112, 299,
 | 
						|
        39, 299, 299, 99, 299, 299, 264, 312, 299, 299,
 | 
						|
        299, 260, 194, 266, 267, 318, 299, 299, 299, 228,
 | 
						|
        203, 299, 117, 61, 112, 299, 299, 299, 299, 99,
 | 
						|
        299, 299, 264, 312, 299, 43, 37, 260, 194, 266,
 | 
						|
        267, 318, 299, 299, 299, 228, 203, 299, 117, 59,
 | 
						|
        112, 317, 315, 314, 311, 99, 299, 299, 264, 312,
 | 
						|
        299, 299, 299, 260, 194, 266, 299, 318, 267, 299,
 | 
						|
        197, 299, 39, 228, 203, 299, 117, 63, 112, 197,
 | 
						|
        299, 39, 299, 99, 299, 299, 264, 312, 299, 321,
 | 
						|
        299, 260, 194, 266, 23, 318, 36, 299, 299, 299,
 | 
						|
        299, 299, 34, 299, 267, 36, 299, 43, 37, 228,
 | 
						|
        203, 34, 127, 299, 112, 299, 43, 37, 299, 99,
 | 
						|
        299, 299, 299, 317, 315, 314, 311, 260, 194, 266,
 | 
						|
        299, 318, 317, 315, 314, 311, 299, 267, 229, 299,
 | 
						|
        299, 299, 228, 203, 299, 125, 299, 112, 464, 464,
 | 
						|
        299, 21, 99, 464, 448, 299, 248, 299, 299, 299,
 | 
						|
        260, 194, 266, 197, 318, 39, 299, 267, 299, 299,
 | 
						|
        299, 299, 228, 203, 299, 124, 299, 112, 299, 299,
 | 
						|
        448, 299, 99, 448, 299, 464, 270, 448, 299, 36,
 | 
						|
        260, 194, 266, 299, 318, 34, 299, 267, 299, 299,
 | 
						|
        43, 37, 228, 203, 299, 116, 299, 112, 299, 299,
 | 
						|
        299, 299, 99, 299, 299, 299, 317, 315, 314, 311,
 | 
						|
        260, 194, 266, 299, 318, 267, 299, 299, 299, 299,
 | 
						|
        228, 203, 299, 121, 299, 112, 299, 299, 299, 299,
 | 
						|
        99, 299, 299, 299, 299, 299, 299, 299, 260, 194,
 | 
						|
        266, 267, 318, 229, 299, 299, 228, 203, 299, 120,
 | 
						|
        299, 112, 299, 464, 464, 299, 99, 299, 464, 448,
 | 
						|
        299, 299, 299, 299, 260, 194, 266, 299, 318, 299,
 | 
						|
        299, 267, 299, 299, 299, 299, 228, 203, 299, 122,
 | 
						|
        299, 112, 299, 299, 299, 448, 99, 299, 448, 229,
 | 
						|
        464, 299, 448, 292, 260, 194, 266, 299, 318, 464,
 | 
						|
        464, 299, 18, 267, 464, 448, 299, 299, 228, 203,
 | 
						|
        197, 126, 39, 112, 299, 299, 299, 299, 99, 299,
 | 
						|
        197, 299, 39, 299, 299, 299, 260, 194, 266, 299,
 | 
						|
        318, 448, 299, 299, 448, 299, 464, 299, 448, 33,
 | 
						|
        299, 105, 299, 299, 299, 299, 299, 43, 37, 464,
 | 
						|
        464, 299, 299, 299, 464, 448, 299, 43, 37, 299,
 | 
						|
        299, 316, 299, 317, 315, 314, 311, 229, 197, 299,
 | 
						|
        39, 299, 299, 317, 315, 314, 311, 464, 464, 299,
 | 
						|
        299, 448, 464, 448, 448, 299, 464, 299, 448, 299,
 | 
						|
        299, 299, 299, 299, 299, 464, 464, 299, 299, 299,
 | 
						|
        464, 448, 197, 299, 39, 43, 37, 299, 299, 448,
 | 
						|
        299, 299, 448, 299, 464, 299, 448, 299, 299, 299,
 | 
						|
        299, 317, 315, 314, 311, 299, 294, 448, 299, 299,
 | 
						|
        448, 299, 464, 146, 448, 299, 299, 171, 395, 43,
 | 
						|
        37, 299, 299, 281, 299, 299, 40, 17, 271, 395,
 | 
						|
        299, 395, 299, 299, 395, 317, 315, 314, 311, 299,
 | 
						|
        395, 185, 395, 299, 395, 299, 299, 299, 159, 299,
 | 
						|
        299, 231, 171, 299, 299, 299, 160, 299, 281, 299,
 | 
						|
        171, 40, 17, 271, 149, 299, 281, 299, 171, 40,
 | 
						|
        17, 271, 299, 299, 281, 299, 185, 40, 17, 271,
 | 
						|
        299, 389, 299, 299, 185, 220, 299, 299, 299, 299,
 | 
						|
        299, 299, 185, 299, 299, 299, 299, 389, 299, 299,
 | 
						|
        299, 299, 299, 389, 299, 299, 435, 299, 299, 299,
 | 
						|
        299, 299, 299, 299, 299, 299, 299, 435,
 | 
						|
    );
 | 
						|
    static public $yy_lookahead     = array(
 | 
						|
        3, 15, 35, 70, 13, 14, 80, 74, 17, 12,
 | 
						|
        13, 14, 79, 16, 17, 44, 19, 20, 21, 52,
 | 
						|
        11, 88, 51, 26, 91, 34, 15, 30, 31, 32,
 | 
						|
        44, 34, 23, 36, 23, 23, 27, 51, 41, 42,
 | 
						|
        43, 44, 33, 46, 53, 48, 27, 50, 51, 52,
 | 
						|
        53, 3, 33, 15, 45, 58, 18, 45, 12, 13,
 | 
						|
        12, 13, 14, 17, 16, 17, 70, 19, 20, 21,
 | 
						|
        74, 59, 13, 14, 26, 79, 17, 36, 30, 31,
 | 
						|
        32, 11, 34, 44, 36, 47, 23, 91, 47, 41,
 | 
						|
        42, 43, 44, 23, 46, 49, 48, 27, 50, 51,
 | 
						|
        3, 53, 74, 33, 76, 77, 58, 79, 45, 12,
 | 
						|
        13, 14, 53, 16, 17, 45, 19, 20, 21, 63,
 | 
						|
        64, 65, 66, 26, 23, 69, 71, 30, 31, 32,
 | 
						|
        75, 34, 15, 36, 14, 18, 81, 17, 41, 42,
 | 
						|
        43, 44, 35, 46, 37, 48, 45, 50, 51, 3,
 | 
						|
        53, 80, 13, 52, 99, 58, 12, 13, 12, 13,
 | 
						|
        14, 17, 16, 17, 47, 19, 20, 21, 48, 1,
 | 
						|
        50, 14, 26, 53, 1, 36, 30, 31, 32, 11,
 | 
						|
        34, 14, 36, 14, 11, 92, 17, 41, 42, 43,
 | 
						|
        44, 1, 46, 49, 48, 27, 50, 51, 3, 53,
 | 
						|
        27, 33, 17, 36, 58, 92, 33, 12, 13, 14,
 | 
						|
        53, 16, 17, 15, 19, 20, 21, 27, 1, 50,
 | 
						|
        53, 26, 53, 33, 36, 30, 31, 32, 11, 34,
 | 
						|
        17, 36, 44, 14, 49, 47, 41, 42, 43, 44,
 | 
						|
        52, 46, 44, 48, 27, 50, 51, 3, 53, 93,
 | 
						|
        33, 95, 96, 58, 12, 13, 12, 13, 14, 17,
 | 
						|
        16, 17, 27, 19, 20, 21, 12, 13, 33, 22,
 | 
						|
        26, 17, 53, 71, 30, 31, 32, 75, 34, 74,
 | 
						|
        36, 76, 35, 81, 79, 41, 42, 43, 44, 92,
 | 
						|
        46, 49, 48, 64, 50, 51, 3, 53, 69, 12,
 | 
						|
        13, 99, 58, 79, 17, 12, 13, 14, 100, 16,
 | 
						|
        17, 36, 19, 20, 21, 8, 9, 10, 35, 26,
 | 
						|
        37, 97, 47, 30, 31, 32, 35, 34, 37, 36,
 | 
						|
        71, 29, 103, 104, 41, 42, 43, 44, 36, 46,
 | 
						|
        81, 48, 71, 50, 51, 3, 53, 9, 92, 47,
 | 
						|
        94, 58, 81, 94, 12, 13, 14, 75, 16, 17,
 | 
						|
        36, 19, 20, 21, 92, 94, 94, 36, 26, 71,
 | 
						|
        44, 47, 30, 31, 32, 64, 34, 51, 36, 81,
 | 
						|
        69, 99, 100, 41, 42, 43, 44, 18, 46, 2,
 | 
						|
        48, 71, 50, 51, 3, 53, 1, 99, 44, 65,
 | 
						|
        58, 81, 68, 12, 13, 14, 52, 16, 17, 90,
 | 
						|
        19, 20, 21, 44, 75, 104, 97, 26, 71, 99,
 | 
						|
        51, 30, 31, 32, 74, 34, 76, 36, 81, 79,
 | 
						|
        95, 96, 41, 42, 43, 44, 71, 46, 99, 48,
 | 
						|
        74, 50, 51, 3, 53, 79, 81, 52, 18, 58,
 | 
						|
        1, 75, 12, 13, 14, 14, 16, 17, 17, 19,
 | 
						|
        20, 21, 1, 75, 67, 80, 26, 18, 1, 71,
 | 
						|
        30, 31, 32, 90, 34, 99, 36, 47, 92, 81,
 | 
						|
        97, 41, 42, 43, 44, 1, 46, 99, 48, 71,
 | 
						|
        50, 51, 3, 53, 18, 11, 29, 96, 58, 81,
 | 
						|
        34, 12, 13, 14, 99, 16, 17, 17, 19, 20,
 | 
						|
        21, 1, 2, 5, 17, 26, 14, 75, 17, 30,
 | 
						|
        31, 32, 50, 34, 50, 36, 84, 85, 86, 52,
 | 
						|
        41, 42, 43, 44, 15, 46, 37, 48, 52, 50,
 | 
						|
        17, 99, 53, 95, 96, 17, 64, 58, 34, 17,
 | 
						|
        17, 69, 70, 17, 72, 73, 74, 36, 40, 17,
 | 
						|
        11, 79, 81, 24, 82, 83, 78, 94, 93, 87,
 | 
						|
        88, 89, 79, 91, 79, 92, 105, 92, 4, 5,
 | 
						|
        6, 7, 8, 101, 102, 79, 12, 13, 92, 105,
 | 
						|
        16, 105, 105, 19, 20, 21, 105, 105, 105, 105,
 | 
						|
        26, 105, 64, 105, 30, 31, 32, 69, 70, 105,
 | 
						|
        72, 73, 74, 105, 76, 105, 105, 79, 71, 105,
 | 
						|
        82, 83, 75, 105, 105, 87, 88, 89, 81, 91,
 | 
						|
        64, 84, 85, 86, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 76, 105, 105, 79, 99, 105, 82, 83,
 | 
						|
        1, 105, 3, 87, 88, 89, 105, 91, 64, 105,
 | 
						|
        105, 105, 105, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        71, 87, 88, 89, 75, 91, 37, 38, 39, 105,
 | 
						|
        81, 105, 64, 84, 85, 86, 102, 69, 70, 105,
 | 
						|
        72, 73, 74, 54, 55, 56, 57, 79, 99, 105,
 | 
						|
        82, 83, 105, 5, 105, 87, 88, 89, 105, 91,
 | 
						|
        12, 13, 14, 105, 16, 105, 98, 19, 20, 21,
 | 
						|
        105, 105, 12, 13, 26, 5, 105, 17, 30, 31,
 | 
						|
        32, 105, 12, 13, 14, 105, 16, 27, 105, 19,
 | 
						|
        20, 21, 105, 33, 71, 105, 26, 105, 75, 105,
 | 
						|
        30, 31, 32, 105, 81, 105, 58, 59, 61, 62,
 | 
						|
        63, 64, 65, 66, 105, 64, 69, 105, 105, 105,
 | 
						|
        69, 70, 99, 72, 73, 74, 12, 13, 58, 59,
 | 
						|
        79, 17, 105, 82, 83, 105, 105, 105, 87, 88,
 | 
						|
        89, 27, 91, 29, 105, 64, 105, 33, 105, 98,
 | 
						|
        69, 70, 105, 72, 73, 74, 105, 105, 105, 105,
 | 
						|
        79, 105, 105, 82, 83, 1, 105, 105, 87, 88,
 | 
						|
        89, 105, 91, 105, 105, 11, 105, 105, 105, 98,
 | 
						|
        64, 105, 18, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 27, 105, 105, 105, 79, 105, 33, 82, 83,
 | 
						|
        36, 105, 105, 87, 88, 89, 105, 91, 105, 105,
 | 
						|
        64, 47, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 105, 105, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 105, 105,
 | 
						|
        105, 105, 105, 105, 64, 105, 1, 2, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 105, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 36, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 47, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 105, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 11, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 105, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 11, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 2, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 105, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 105, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 11, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 105, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 11, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 105, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 105, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 37, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        105, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 1, 105, 3, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 105, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 105, 105, 87, 88, 89,
 | 
						|
        64, 91, 105, 28, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 105, 105, 38, 39, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 54,
 | 
						|
        55, 56, 57, 69, 70, 105, 72, 73, 74, 105,
 | 
						|
        3, 105, 105, 79, 105, 105, 82, 83, 105, 105,
 | 
						|
        105, 87, 88, 89, 64, 91, 105, 105, 105, 69,
 | 
						|
        70, 105, 72, 73, 74, 105, 105, 105, 105, 79,
 | 
						|
        105, 105, 82, 83, 105, 38, 39, 87, 88, 89,
 | 
						|
        64, 91, 105, 105, 105, 69, 70, 105, 72, 73,
 | 
						|
        74, 54, 55, 56, 57, 79, 105, 105, 82, 83,
 | 
						|
        105, 105, 105, 87, 88, 89, 105, 91, 64, 105,
 | 
						|
        1, 105, 3, 69, 70, 105, 72, 73, 74, 1,
 | 
						|
        105, 3, 105, 79, 105, 105, 82, 83, 105, 11,
 | 
						|
        105, 87, 88, 89, 25, 91, 27, 105, 105, 105,
 | 
						|
        105, 105, 33, 105, 64, 27, 105, 38, 39, 69,
 | 
						|
        70, 33, 72, 105, 74, 105, 38, 39, 105, 79,
 | 
						|
        105, 105, 105, 54, 55, 56, 57, 87, 88, 89,
 | 
						|
        105, 91, 54, 55, 56, 57, 105, 64, 2, 105,
 | 
						|
        105, 105, 69, 70, 105, 72, 105, 74, 12, 13,
 | 
						|
        105, 15, 79, 17, 18, 105, 83, 105, 105, 105,
 | 
						|
        87, 88, 89, 1, 91, 3, 105, 64, 105, 105,
 | 
						|
        105, 105, 69, 70, 105, 72, 105, 74, 105, 105,
 | 
						|
        44, 105, 79, 47, 105, 49, 83, 51, 105, 27,
 | 
						|
        87, 88, 89, 105, 91, 33, 105, 64, 105, 105,
 | 
						|
        38, 39, 69, 70, 105, 72, 105, 74, 105, 105,
 | 
						|
        105, 105, 79, 105, 105, 105, 54, 55, 56, 57,
 | 
						|
        87, 88, 89, 105, 91, 64, 105, 105, 105, 105,
 | 
						|
        69, 70, 105, 72, 105, 74, 105, 105, 105, 105,
 | 
						|
        79, 105, 105, 105, 105, 105, 105, 105, 87, 88,
 | 
						|
        89, 64, 91, 2, 105, 105, 69, 70, 105, 72,
 | 
						|
        105, 74, 105, 12, 13, 105, 79, 105, 17, 18,
 | 
						|
        105, 105, 105, 105, 87, 88, 89, 105, 91, 105,
 | 
						|
        105, 64, 105, 105, 105, 105, 69, 70, 105, 72,
 | 
						|
        105, 74, 105, 105, 105, 44, 79, 105, 47, 2,
 | 
						|
        49, 105, 51, 52, 87, 88, 89, 105, 91, 12,
 | 
						|
        13, 105, 15, 64, 17, 18, 105, 105, 69, 70,
 | 
						|
        1, 72, 3, 74, 105, 105, 105, 105, 79, 105,
 | 
						|
        1, 105, 3, 105, 105, 105, 87, 88, 89, 105,
 | 
						|
        91, 44, 105, 105, 47, 105, 49, 105, 51, 2,
 | 
						|
        105, 22, 105, 105, 105, 105, 105, 38, 39, 12,
 | 
						|
        13, 105, 105, 105, 17, 18, 105, 38, 39, 105,
 | 
						|
        105, 52, 105, 54, 55, 56, 57, 2, 1, 105,
 | 
						|
        3, 105, 105, 54, 55, 56, 57, 12, 13, 105,
 | 
						|
        105, 44, 17, 18, 47, 105, 49, 105, 51, 105,
 | 
						|
        105, 105, 105, 105, 105, 12, 13, 105, 105, 105,
 | 
						|
        17, 18, 1, 105, 3, 38, 39, 105, 105, 44,
 | 
						|
        105, 105, 47, 105, 49, 105, 51, 105, 105, 105,
 | 
						|
        105, 54, 55, 56, 57, 105, 59, 44, 105, 105,
 | 
						|
        47, 105, 49, 71, 51, 105, 105, 75, 11, 38,
 | 
						|
        39, 105, 105, 81, 105, 105, 84, 85, 86, 22,
 | 
						|
        105, 24, 105, 105, 27, 54, 55, 56, 57, 105,
 | 
						|
        33, 99, 35, 105, 37, 105, 105, 105, 71, 105,
 | 
						|
        105, 44, 75, 105, 105, 105, 71, 105, 81, 105,
 | 
						|
        75, 84, 85, 86, 71, 105, 81, 105, 75, 84,
 | 
						|
        85, 86, 105, 105, 81, 105, 99, 84, 85, 86,
 | 
						|
        105, 11, 105, 105, 99, 15, 105, 105, 105, 105,
 | 
						|
        105, 105, 99, 105, 105, 105, 105, 27, 105, 105,
 | 
						|
        105, 105, 105, 33, 105, 105, 36, 105, 105, 105,
 | 
						|
        105, 105, 105, 105, 105, 105, 105, 47,
 | 
						|
    );
 | 
						|
    static public $yy_shift_ofst    = array(
 | 
						|
        574, 391, 48, 48, 391, 342, 342, 48, -3, 48,
 | 
						|
        48, 440, 48, 48, 146, 48, 48, 48, 48, 48,
 | 
						|
        48, 97, 48, 48, 48, 48, 48, 48, 195, 48,
 | 
						|
        48, 48, 48, 293, 48, 195, 146, 244, 244, 489,
 | 
						|
        489, 489, 489, 489, 489, 1599, 1608, 1692, 1692, 1692,
 | 
						|
        1692, 1692, 574, 1465, 1849, 1907, 1305, 649, 985, 1065,
 | 
						|
        1385, 1145, 1859, 1225, 1941, 1941, 1941, 1941, 1941, 1941,
 | 
						|
        1941, 1941, 1941, 1941, 1941, 1941, 1527, 1527, 120, 730,
 | 
						|
        824, 217, 169, 190, 167, 708, 774, 720, 167, 190,
 | 
						|
        167, 190, 369, 510, 9, 70, 59, 173, 168, 144,
 | 
						|
        307, 117, 38, 287, 287, 219, 441, 235, 449, 484,
 | 
						|
        467, 441, 430, 19, 19, 395, 461, 461, 461, 476,
 | 
						|
        461, 461, 461, 476, 461, -34, -34, -34, 1781, 1827,
 | 
						|
        1666, 1877, 1905, 1923, -9, 46, -14, 254, 19, -29,
 | 
						|
        19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
 | 
						|
        157, 19, 19, 11, -29, -29, -29, 19, -29, 19,
 | 
						|
        19, 326, -29, 157, -29, 326, 19, -29, 139, 461,
 | 
						|
        476, 461, 476, 461, 461, 387, 387, 338, 461, 476,
 | 
						|
        331, -34, -34, -34, -34, -34, 905, 1967, 2030, 242,
 | 
						|
        188, 302, 12, 101, 275, 107, 198, 185, -33, 247,
 | 
						|
        283, 324, 41, 63, 291, 354, 472, 474, 477, 486,
 | 
						|
        501, 490, 508, 497, 502, 519, 523, 521, 518, 542,
 | 
						|
        536, 533, 528, 514, 331, 499, 532, 539, 549, 213,
 | 
						|
        39, 466,
 | 
						|
    );
 | 
						|
    static public $yy_reduce_ofst   = array(
 | 
						|
        707, 482, 741, 711, 594, 566, 538, 628, 1054, 1160,
 | 
						|
        1400, 1480, 894, 866, 946, 1374, 1266, 1214, 1186, 1240,
 | 
						|
        1134, 1026, 1080, 1294, 1426, 1506, 1534, 1454, 1320, 1346,
 | 
						|
        1000, 1106, 806, 776, 974, 920, 840, 1633, 1603, 1570,
 | 
						|
        1691, 1779, 1747, 1663, 1717, 1945, 1953, 547, 609, 1902,
 | 
						|
        1937, 1953, 56, 442, 442, 442, 442, 442, 442, 442,
 | 
						|
        442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
 | 
						|
        442, 442, 442, 442, 442, 442, 442, 442, -67, 229,
 | 
						|
        683, 202, -4, 55, 28, 311, 271, 259, 205, 298,
 | 
						|
        350, 320, 156, 282, 347, 347, 224, 339, 339, 272,
 | 
						|
        334, 335, 335, 256, 272, 366, 383, 418, 388, 339,
 | 
						|
        339, 319, 335, 398, 365, 339, 339, 339, 376, 335,
 | 
						|
        339, 339, 339, 448, 339, 339, 339, 339, 93, 93,
 | 
						|
        93, 93, 93, 93, 495, 473, 93, 93, 481, 475,
 | 
						|
        481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
 | 
						|
        493, 481, 481, 488, 475, 475, 475, 481, 475, 481,
 | 
						|
        481, 496, 475, 506, 475, 485, 481, 475, 483, 405,
 | 
						|
        401, 405, 401, 405, 405, 208, 208, 397, 405, 401,
 | 
						|
        386, -74, 71, 197, 113, 385,
 | 
						|
    );
 | 
						|
    static public $yyExpectedTokens = array(
 | 
						|
        array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 31, 32,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,),
 | 
						|
        array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,),
 | 
						|
        array(1, 3, 25, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 11, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 31, 32,),
 | 
						|
        array(1, 3, 28, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 52, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57, 59,),
 | 
						|
        array(1, 3, 11, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 37, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 11, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 11, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 37, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 2, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 22, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 11, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(1, 3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(3, 38, 39, 54, 55, 56, 57,),
 | 
						|
        array(14, 17, 48, 50, 53,),
 | 
						|
        array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 31, 32, 58, 59,),
 | 
						|
        array(1, 11, 18, 27, 33, 36, 47,),
 | 
						|
        array(1, 11, 27, 33,),
 | 
						|
        array(14, 17, 50, 53,),
 | 
						|
        array(1, 27, 33,),
 | 
						|
        array(14, 36, 53,),
 | 
						|
        array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 31, 32, 58, 59,),
 | 
						|
        array(12, 13, 17, 27, 29, 33,),
 | 
						|
        array(12, 13, 17, 27, 33,),
 | 
						|
        array(14, 36, 53,),
 | 
						|
        array(1, 27, 33,),
 | 
						|
        array(14, 36, 53,),
 | 
						|
        array(1, 27, 33,),
 | 
						|
        array(18, 44, 51,),
 | 
						|
        array(1, 2,),
 | 
						|
        array(11, 23, 27, 33, 45,),
 | 
						|
        array(11, 23, 27, 33, 45,),
 | 
						|
        array(13, 14, 17, 53,),
 | 
						|
        array(1, 11, 27, 33,),
 | 
						|
        array(1, 11, 27, 33,),
 | 
						|
        array(12, 13, 17, 49,),
 | 
						|
        array(8, 9, 10,),
 | 
						|
        array(15, 18, 47,),
 | 
						|
        array(15, 18, 47,),
 | 
						|
        array(12, 13, 17,),
 | 
						|
        array(12, 13, 17,),
 | 
						|
        array(14, 53,),
 | 
						|
        array(14, 17,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(1, 18,),
 | 
						|
        array(1, 11,),
 | 
						|
        array(1, 29,),
 | 
						|
        array(14, 17,),
 | 
						|
        array(18, 47,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(1, 52,),
 | 
						|
        array(1,),
 | 
						|
        array(1,),
 | 
						|
        array(1,),
 | 
						|
        array(18,),
 | 
						|
        array(1,),
 | 
						|
        array(1,),
 | 
						|
        array(1,),
 | 
						|
        array(18,),
 | 
						|
        array(1,),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(2, 12, 13, 17, 18, 44, 47, 49, 51, 52,),
 | 
						|
        array(2, 12, 13, 15, 17, 18, 44, 47, 49, 51,),
 | 
						|
        array(2, 12, 13, 15, 17, 18, 44, 47, 49, 51,),
 | 
						|
        array(2, 12, 13, 17, 18, 44, 47, 49, 51,),
 | 
						|
        array(2, 12, 13, 17, 18, 44, 47, 49, 51,),
 | 
						|
        array(12, 13, 17, 18, 44, 47, 49, 51,),
 | 
						|
        array(13, 14, 17, 34, 53,),
 | 
						|
        array(12, 13, 17, 49,),
 | 
						|
        array(15, 44, 51,),
 | 
						|
        array(12, 13, 17,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(14, 53,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(15, 23,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(14, 53,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(27, 33,),
 | 
						|
        array(44, 51,),
 | 
						|
        array(13, 36,),
 | 
						|
        array(1,),
 | 
						|
        array(18,),
 | 
						|
        array(1,),
 | 
						|
        array(18,),
 | 
						|
        array(1,),
 | 
						|
        array(1,),
 | 
						|
        array(2,),
 | 
						|
        array(2,),
 | 
						|
        array(9,),
 | 
						|
        array(1,),
 | 
						|
        array(18,),
 | 
						|
        array(36,),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(1, 2, 3, 36, 38, 39, 47, 54, 55, 56, 57,),
 | 
						|
        array(11, 22, 24, 27, 33, 35, 37, 44,),
 | 
						|
        array(11, 15, 27, 33, 36, 47,),
 | 
						|
        array(12, 13, 17, 49,),
 | 
						|
        array(36, 44, 47, 52,),
 | 
						|
        array(29, 36, 47,),
 | 
						|
        array(23, 45, 59,),
 | 
						|
        array(23, 45, 52,),
 | 
						|
        array(36, 47,),
 | 
						|
        array(35, 37,),
 | 
						|
        array(15, 44,),
 | 
						|
        array(17, 49,),
 | 
						|
        array(35, 52,),
 | 
						|
        array(22, 35,),
 | 
						|
        array(35, 37,),
 | 
						|
        array(36, 47,),
 | 
						|
        array(36, 47,),
 | 
						|
        array(23, 45,),
 | 
						|
        array(35, 37,),
 | 
						|
        array(44, 52,),
 | 
						|
        array(50,),
 | 
						|
        array(50,),
 | 
						|
        array(52,),
 | 
						|
        array(52,),
 | 
						|
        array(17,),
 | 
						|
        array(17,),
 | 
						|
        array(5,),
 | 
						|
        array(17,),
 | 
						|
        array(14,),
 | 
						|
        array(15,),
 | 
						|
        array(17,),
 | 
						|
        array(36,),
 | 
						|
        array(40,),
 | 
						|
        array(17,),
 | 
						|
        array(17,),
 | 
						|
        array(17,),
 | 
						|
        array(17,),
 | 
						|
        array(34,),
 | 
						|
        array(36,),
 | 
						|
        array(37,),
 | 
						|
        array(17,),
 | 
						|
        array(24,),
 | 
						|
        array(11,),
 | 
						|
        array(17,),
 | 
						|
        array(44,),
 | 
						|
        array(34,),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
        array(),
 | 
						|
    );
 | 
						|
    static public $yy_default       = array(
 | 
						|
        330, 504, 483, 483, 519, 519, 519, 483, 519, 519,
 | 
						|
        519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
 | 
						|
        519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
 | 
						|
        519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
 | 
						|
        519, 519, 519, 519, 519, 385, 519, 364, 385, 354,
 | 
						|
        385, 351, 327, 390, 519, 519, 519, 519, 519, 519,
 | 
						|
        519, 519, 519, 519, 392, 407, 482, 396, 507, 369,
 | 
						|
        506, 397, 390, 481, 505, 387, 412, 411, 519, 519,
 | 
						|
        423, 399, 519, 385, 519, 519, 385, 385, 519, 385,
 | 
						|
        519, 385, 495, 376, 413, 413, 519, 399, 399, 448,
 | 
						|
        519, 438, 438, 448, 448, 519, 519, 385, 379, 399,
 | 
						|
        399, 519, 438, 385, 366, 399, 402, 399, 381, 438,
 | 
						|
        415, 406, 416, 492, 410, 490, 414, 403, 437, 437,
 | 
						|
        437, 437, 437, 437, 519, 450, 464, 448, 348, 446,
 | 
						|
        365, 362, 373, 358, 374, 356, 355, 350, 361, 352,
 | 
						|
        519, 360, 367, 519, 445, 473, 475, 368, 476, 372,
 | 
						|
        371, 441, 444, 519, 474, 443, 375, 442, 448, 380,
 | 
						|
        493, 405, 496, 432, 377, 485, 484, 342, 382, 470,
 | 
						|
        448, 489, 489, 448, 448, 489, 423, 419, 423, 449,
 | 
						|
        423, 423, 413, 413, 519, 519, 419, 519, 519, 519,
 | 
						|
        519, 423, 433, 413, 519, 419, 519, 519, 428, 519,
 | 
						|
        519, 519, 334, 519, 519, 519, 519, 494, 425, 519,
 | 
						|
        519, 519, 519, 519, 464, 519, 519, 393, 519, 519,
 | 
						|
        419, 421, 332, 370, 394, 333, 398, 331, 337, 458,
 | 
						|
        425, 463, 457, 479, 478, 329, 335, 454, 491, 328,
 | 
						|
        460, 386, 464, 469, 456, 455, 336, 480, 420, 422,
 | 
						|
        424, 418, 401, 363, 400, 428, 429, 431, 434, 383,
 | 
						|
        409, 408, 430, 357, 453, 452, 488, 378, 486, 468,
 | 
						|
        467, 384, 466, 487, 417, 447, 451, 436, 435, 426,
 | 
						|
        427, 461, 459, 340, 513, 512, 510, 509, 471, 508,
 | 
						|
        514, 517, 503, 502, 338, 339, 501, 518, 511, 341,
 | 
						|
        343, 500, 404, 439, 499, 498, 462, 497, 440, 472,
 | 
						|
        515, 516, 344, 345, 465, 346, 477,
 | 
						|
    );
 | 
						|
    public static $yyFallback       = array();
 | 
						|
    public static $yyRuleName       = array(
 | 
						|
        'start ::= template',
 | 
						|
        'template ::= template_element',
 | 
						|
        'template ::= template template_element',
 | 
						|
        'template ::=',
 | 
						|
        'template_element ::= smartytag',
 | 
						|
        'template_element ::= literal',
 | 
						|
        'template_element ::= PHP',
 | 
						|
        'template_element ::= text_content',
 | 
						|
        'text_content ::= TEXT',
 | 
						|
        'text_content ::= text_content TEXT',
 | 
						|
        'template_element ::= STRIPON',
 | 
						|
        'template_element ::= STRIPOFF',
 | 
						|
        'literal ::= LITERALSTART LITERALEND',
 | 
						|
        'literal ::= LITERALSTART literal_elements LITERALEND',
 | 
						|
        'literal_elements ::= literal_elements literal_element',
 | 
						|
        'literal_elements ::=',
 | 
						|
        'literal_element ::= literal',
 | 
						|
        'literal_element ::= LITERAL',
 | 
						|
        'smartytag ::= tag RDEL',
 | 
						|
        'smartytag ::= SIMPELOUTPUT',
 | 
						|
        'tag ::= LDEL variable',
 | 
						|
        'tag ::= LDEL variable attributes',
 | 
						|
        'tag ::= LDEL value',
 | 
						|
        'tag ::= LDEL value attributes',
 | 
						|
        'tag ::= LDEL expr',
 | 
						|
        'tag ::= LDEL expr attributes',
 | 
						|
        'tag ::= LDEL DOLLARID EQUAL value',
 | 
						|
        'tag ::= LDEL DOLLARID EQUAL expr',
 | 
						|
        'tag ::= LDEL DOLLARID EQUAL expr attributes',
 | 
						|
        'tag ::= LDEL varindexed EQUAL expr attributes',
 | 
						|
        'smartytag ::= SIMPLETAG',
 | 
						|
        'tag ::= LDEL ID attributes',
 | 
						|
        'tag ::= LDEL ID',
 | 
						|
        'tag ::= LDEL ID modifierlist attributes',
 | 
						|
        'tag ::= LDEL ID PTR ID attributes',
 | 
						|
        'tag ::= LDEL ID PTR ID modifierlist attributes',
 | 
						|
        'tag ::= LDELMAKENOCACHE DOLLARID',
 | 
						|
        'tag ::= LDELIF expr',
 | 
						|
        'tag ::= LDELIF expr attributes',
 | 
						|
        'tag ::= LDELIF statement',
 | 
						|
        'tag ::= LDELIF statement attributes',
 | 
						|
        'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
 | 
						|
        'foraction ::= EQUAL expr',
 | 
						|
        'foraction ::= INCDEC',
 | 
						|
        'tag ::= LDELFOR statement TO expr attributes',
 | 
						|
        'tag ::= LDELFOR statement TO expr STEP expr attributes',
 | 
						|
        'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
 | 
						|
        'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
 | 
						|
        'tag ::= LDELFOREACH attributes',
 | 
						|
        'tag ::= LDELSETFILTER ID modparameters',
 | 
						|
        'tag ::= LDELSETFILTER ID modparameters modifierlist',
 | 
						|
        'smartytag ::= CLOSETAG',
 | 
						|
        'tag ::= LDELSLASH ID',
 | 
						|
        'tag ::= LDELSLASH ID modifierlist',
 | 
						|
        'tag ::= LDELSLASH ID PTR ID',
 | 
						|
        'tag ::= LDELSLASH ID PTR ID modifierlist',
 | 
						|
        'attributes ::= attributes attribute',
 | 
						|
        'attributes ::= attribute',
 | 
						|
        'attributes ::=',
 | 
						|
        'attribute ::= SPACE ID EQUAL ID',
 | 
						|
        'attribute ::= ATTR expr',
 | 
						|
        'attribute ::= ATTR value',
 | 
						|
        'attribute ::= SPACE ID',
 | 
						|
        'attribute ::= SPACE expr',
 | 
						|
        'attribute ::= SPACE value',
 | 
						|
        'attribute ::= SPACE INTEGER EQUAL expr',
 | 
						|
        'statements ::= statement',
 | 
						|
        'statements ::= statements COMMA statement',
 | 
						|
        'statement ::= DOLLARID EQUAL INTEGER',
 | 
						|
        'statement ::= DOLLARID EQUAL expr',
 | 
						|
        'statement ::= varindexed EQUAL expr',
 | 
						|
        'statement ::= OPENP statement CLOSEP',
 | 
						|
        'expr ::= value',
 | 
						|
        'expr ::= ternary',
 | 
						|
        'expr ::= DOLLARID COLON ID',
 | 
						|
        'expr ::= expr MATH value',
 | 
						|
        'expr ::= expr UNIMATH value',
 | 
						|
        'expr ::= array',
 | 
						|
        'expr ::= expr modifierlist',
 | 
						|
        'expr ::= expr tlop value',
 | 
						|
        'expr ::= expr lop expr',
 | 
						|
        'expr ::= expr scond',
 | 
						|
        'expr ::= expr ISIN array',
 | 
						|
        'expr ::= expr ISIN value',
 | 
						|
        'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
 | 
						|
        'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
 | 
						|
        'value ::= variable',
 | 
						|
        'value ::= UNIMATH value',
 | 
						|
        'value ::= NOT value',
 | 
						|
        'value ::= TYPECAST value',
 | 
						|
        'value ::= variable INCDEC',
 | 
						|
        'value ::= HEX',
 | 
						|
        'value ::= INTEGER',
 | 
						|
        'value ::= INTEGER DOT INTEGER',
 | 
						|
        'value ::= INTEGER DOT',
 | 
						|
        'value ::= DOT INTEGER',
 | 
						|
        'value ::= ID',
 | 
						|
        'value ::= function',
 | 
						|
        'value ::= OPENP expr CLOSEP',
 | 
						|
        'value ::= variable INSTANCEOF ns1',
 | 
						|
        'value ::= variable INSTANCEOF variable',
 | 
						|
        'value ::= SINGLEQUOTESTRING',
 | 
						|
        'value ::= doublequoted_with_quotes',
 | 
						|
        'value ::= varindexed DOUBLECOLON static_class_access',
 | 
						|
        'value ::= smartytag',
 | 
						|
        'value ::= value modifierlist',
 | 
						|
        'value ::= NAMESPACE',
 | 
						|
        'value ::= ns1 DOUBLECOLON static_class_access',
 | 
						|
        'ns1 ::= ID',
 | 
						|
        'ns1 ::= NAMESPACE',
 | 
						|
        'variable ::= DOLLARID',
 | 
						|
        'variable ::= varindexed',
 | 
						|
        'variable ::= varvar AT ID',
 | 
						|
        'variable ::= object',
 | 
						|
        'variable ::= HATCH ID HATCH',
 | 
						|
        'variable ::= HATCH ID HATCH arrayindex',
 | 
						|
        'variable ::= HATCH variable HATCH',
 | 
						|
        'variable ::= HATCH variable HATCH arrayindex',
 | 
						|
        'varindexed ::= DOLLARID arrayindex',
 | 
						|
        'varindexed ::= varvar arrayindex',
 | 
						|
        'arrayindex ::= arrayindex indexdef',
 | 
						|
        'arrayindex ::=',
 | 
						|
        'indexdef ::= DOT DOLLARID',
 | 
						|
        'indexdef ::= DOT varvar',
 | 
						|
        'indexdef ::= DOT varvar AT ID',
 | 
						|
        'indexdef ::= DOT ID',
 | 
						|
        'indexdef ::= DOT INTEGER',
 | 
						|
        'indexdef ::= DOT LDEL expr RDEL',
 | 
						|
        'indexdef ::= OPENB ID CLOSEB',
 | 
						|
        'indexdef ::= OPENB ID DOT ID CLOSEB',
 | 
						|
        'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
 | 
						|
        'indexdef ::= OPENB INTEGER CLOSEB',
 | 
						|
        'indexdef ::= OPENB DOLLARID CLOSEB',
 | 
						|
        'indexdef ::= OPENB variable CLOSEB',
 | 
						|
        'indexdef ::= OPENB value CLOSEB',
 | 
						|
        'indexdef ::= OPENB expr CLOSEB',
 | 
						|
        'indexdef ::= OPENB CLOSEB',
 | 
						|
        'varvar ::= DOLLARID',
 | 
						|
        'varvar ::= DOLLAR',
 | 
						|
        'varvar ::= varvar varvarele',
 | 
						|
        'varvarele ::= ID',
 | 
						|
        'varvarele ::= SIMPELOUTPUT',
 | 
						|
        'varvarele ::= LDEL expr RDEL',
 | 
						|
        'object ::= varindexed objectchain',
 | 
						|
        'objectchain ::= objectelement',
 | 
						|
        'objectchain ::= objectchain objectelement',
 | 
						|
        'objectelement ::= PTR ID arrayindex',
 | 
						|
        'objectelement ::= PTR varvar arrayindex',
 | 
						|
        'objectelement ::= PTR LDEL expr RDEL arrayindex',
 | 
						|
        'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
 | 
						|
        'objectelement ::= PTR method',
 | 
						|
        'function ::= ns1 OPENP params CLOSEP',
 | 
						|
        'method ::= ID OPENP params CLOSEP',
 | 
						|
        'method ::= DOLLARID OPENP params CLOSEP',
 | 
						|
        'params ::= params COMMA expr',
 | 
						|
        'params ::= expr',
 | 
						|
        'params ::=',
 | 
						|
        'modifierlist ::= modifierlist modifier modparameters',
 | 
						|
        'modifierlist ::= modifier modparameters',
 | 
						|
        'modifier ::= VERT AT ID',
 | 
						|
        'modifier ::= VERT ID',
 | 
						|
        'modparameters ::= modparameters modparameter',
 | 
						|
        'modparameters ::=',
 | 
						|
        'modparameter ::= COLON value',
 | 
						|
        'modparameter ::= COLON array',
 | 
						|
        'static_class_access ::= method',
 | 
						|
        'static_class_access ::= method objectchain',
 | 
						|
        'static_class_access ::= ID',
 | 
						|
        'static_class_access ::= DOLLARID arrayindex',
 | 
						|
        'static_class_access ::= DOLLARID arrayindex objectchain',
 | 
						|
        'lop ::= LOGOP',
 | 
						|
        'lop ::= SLOGOP',
 | 
						|
        'tlop ::= TLOGOP',
 | 
						|
        'scond ::= SINGLECOND',
 | 
						|
        'array ::= OPENB arrayelements CLOSEB',
 | 
						|
        'arrayelements ::= arrayelement',
 | 
						|
        'arrayelements ::= arrayelements COMMA arrayelement',
 | 
						|
        'arrayelements ::=',
 | 
						|
        'arrayelement ::= value APTR expr',
 | 
						|
        'arrayelement ::= ID APTR expr',
 | 
						|
        'arrayelement ::= expr',
 | 
						|
        'doublequoted_with_quotes ::= QUOTE QUOTE',
 | 
						|
        'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
 | 
						|
        'doublequoted ::= doublequoted doublequotedcontent',
 | 
						|
        'doublequoted ::= doublequotedcontent',
 | 
						|
        'doublequotedcontent ::= BACKTICK variable BACKTICK',
 | 
						|
        'doublequotedcontent ::= BACKTICK expr BACKTICK',
 | 
						|
        'doublequotedcontent ::= DOLLARID',
 | 
						|
        'doublequotedcontent ::= LDEL variable RDEL',
 | 
						|
        'doublequotedcontent ::= LDEL expr RDEL',
 | 
						|
        'doublequotedcontent ::= smartytag',
 | 
						|
        'doublequotedcontent ::= TEXT',
 | 
						|
    );
 | 
						|
    public static $yyRuleInfo       = array(
 | 
						|
        array(0 => 61, 1 => 1),
 | 
						|
        array(0 => 62, 1 => 1),
 | 
						|
        array(0 => 62, 1 => 2),
 | 
						|
        array(0 => 62, 1 => 0),
 | 
						|
        array(0 => 63, 1 => 1),
 | 
						|
        array(0 => 63, 1 => 1),
 | 
						|
        array(0 => 63, 1 => 1),
 | 
						|
        array(0 => 63, 1 => 1),
 | 
						|
        array(0 => 66, 1 => 1),
 | 
						|
        array(0 => 66, 1 => 2),
 | 
						|
        array(0 => 63, 1 => 1),
 | 
						|
        array(0 => 63, 1 => 1),
 | 
						|
        array(0 => 65, 1 => 2),
 | 
						|
        array(0 => 65, 1 => 3),
 | 
						|
        array(0 => 67, 1 => 2),
 | 
						|
        array(0 => 67, 1 => 0),
 | 
						|
        array(0 => 68, 1 => 1),
 | 
						|
        array(0 => 68, 1 => 1),
 | 
						|
        array(0 => 64, 1 => 2),
 | 
						|
        array(0 => 64, 1 => 1),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 4),
 | 
						|
        array(0 => 69, 1 => 4),
 | 
						|
        array(0 => 69, 1 => 5),
 | 
						|
        array(0 => 69, 1 => 5),
 | 
						|
        array(0 => 64, 1 => 1),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 4),
 | 
						|
        array(0 => 69, 1 => 5),
 | 
						|
        array(0 => 69, 1 => 6),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 8),
 | 
						|
        array(0 => 78, 1 => 2),
 | 
						|
        array(0 => 78, 1 => 1),
 | 
						|
        array(0 => 69, 1 => 5),
 | 
						|
        array(0 => 69, 1 => 7),
 | 
						|
        array(0 => 69, 1 => 6),
 | 
						|
        array(0 => 69, 1 => 8),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 4),
 | 
						|
        array(0 => 64, 1 => 1),
 | 
						|
        array(0 => 69, 1 => 2),
 | 
						|
        array(0 => 69, 1 => 3),
 | 
						|
        array(0 => 69, 1 => 4),
 | 
						|
        array(0 => 69, 1 => 5),
 | 
						|
        array(0 => 71, 1 => 2),
 | 
						|
        array(0 => 71, 1 => 1),
 | 
						|
        array(0 => 71, 1 => 0),
 | 
						|
        array(0 => 81, 1 => 4),
 | 
						|
        array(0 => 81, 1 => 2),
 | 
						|
        array(0 => 81, 1 => 2),
 | 
						|
        array(0 => 81, 1 => 2),
 | 
						|
        array(0 => 81, 1 => 2),
 | 
						|
        array(0 => 81, 1 => 2),
 | 
						|
        array(0 => 81, 1 => 4),
 | 
						|
        array(0 => 77, 1 => 1),
 | 
						|
        array(0 => 77, 1 => 3),
 | 
						|
        array(0 => 76, 1 => 3),
 | 
						|
        array(0 => 76, 1 => 3),
 | 
						|
        array(0 => 76, 1 => 3),
 | 
						|
        array(0 => 76, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 1),
 | 
						|
        array(0 => 73, 1 => 1),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 1),
 | 
						|
        array(0 => 73, 1 => 2),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 2),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 73, 1 => 3),
 | 
						|
        array(0 => 82, 1 => 7),
 | 
						|
        array(0 => 82, 1 => 7),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 3),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 3),
 | 
						|
        array(0 => 72, 1 => 3),
 | 
						|
        array(0 => 72, 1 => 3),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 3),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 2),
 | 
						|
        array(0 => 72, 1 => 1),
 | 
						|
        array(0 => 72, 1 => 3),
 | 
						|
        array(0 => 88, 1 => 1),
 | 
						|
        array(0 => 88, 1 => 1),
 | 
						|
        array(0 => 70, 1 => 1),
 | 
						|
        array(0 => 70, 1 => 1),
 | 
						|
        array(0 => 70, 1 => 3),
 | 
						|
        array(0 => 70, 1 => 1),
 | 
						|
        array(0 => 70, 1 => 3),
 | 
						|
        array(0 => 70, 1 => 4),
 | 
						|
        array(0 => 70, 1 => 3),
 | 
						|
        array(0 => 70, 1 => 4),
 | 
						|
        array(0 => 74, 1 => 2),
 | 
						|
        array(0 => 74, 1 => 2),
 | 
						|
        array(0 => 92, 1 => 2),
 | 
						|
        array(0 => 92, 1 => 0),
 | 
						|
        array(0 => 93, 1 => 2),
 | 
						|
        array(0 => 93, 1 => 2),
 | 
						|
        array(0 => 93, 1 => 4),
 | 
						|
        array(0 => 93, 1 => 2),
 | 
						|
        array(0 => 93, 1 => 2),
 | 
						|
        array(0 => 93, 1 => 4),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 5),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 3),
 | 
						|
        array(0 => 93, 1 => 2),
 | 
						|
        array(0 => 79, 1 => 1),
 | 
						|
        array(0 => 79, 1 => 1),
 | 
						|
        array(0 => 79, 1 => 2),
 | 
						|
        array(0 => 94, 1 => 1),
 | 
						|
        array(0 => 94, 1 => 1),
 | 
						|
        array(0 => 94, 1 => 3),
 | 
						|
        array(0 => 91, 1 => 2),
 | 
						|
        array(0 => 95, 1 => 1),
 | 
						|
        array(0 => 95, 1 => 2),
 | 
						|
        array(0 => 96, 1 => 3),
 | 
						|
        array(0 => 96, 1 => 3),
 | 
						|
        array(0 => 96, 1 => 5),
 | 
						|
        array(0 => 96, 1 => 6),
 | 
						|
        array(0 => 96, 1 => 2),
 | 
						|
        array(0 => 87, 1 => 4),
 | 
						|
        array(0 => 97, 1 => 4),
 | 
						|
        array(0 => 97, 1 => 4),
 | 
						|
        array(0 => 98, 1 => 3),
 | 
						|
        array(0 => 98, 1 => 1),
 | 
						|
        array(0 => 98, 1 => 0),
 | 
						|
        array(0 => 75, 1 => 3),
 | 
						|
        array(0 => 75, 1 => 2),
 | 
						|
        array(0 => 99, 1 => 3),
 | 
						|
        array(0 => 99, 1 => 2),
 | 
						|
        array(0 => 80, 1 => 2),
 | 
						|
        array(0 => 80, 1 => 0),
 | 
						|
        array(0 => 100, 1 => 2),
 | 
						|
        array(0 => 100, 1 => 2),
 | 
						|
        array(0 => 90, 1 => 1),
 | 
						|
        array(0 => 90, 1 => 2),
 | 
						|
        array(0 => 90, 1 => 1),
 | 
						|
        array(0 => 90, 1 => 2),
 | 
						|
        array(0 => 90, 1 => 3),
 | 
						|
        array(0 => 85, 1 => 1),
 | 
						|
        array(0 => 85, 1 => 1),
 | 
						|
        array(0 => 84, 1 => 1),
 | 
						|
        array(0 => 86, 1 => 1),
 | 
						|
        array(0 => 83, 1 => 3),
 | 
						|
        array(0 => 101, 1 => 1),
 | 
						|
        array(0 => 101, 1 => 3),
 | 
						|
        array(0 => 101, 1 => 0),
 | 
						|
        array(0 => 102, 1 => 3),
 | 
						|
        array(0 => 102, 1 => 3),
 | 
						|
        array(0 => 102, 1 => 1),
 | 
						|
        array(0 => 89, 1 => 2),
 | 
						|
        array(0 => 89, 1 => 3),
 | 
						|
        array(0 => 103, 1 => 2),
 | 
						|
        array(0 => 103, 1 => 1),
 | 
						|
        array(0 => 104, 1 => 3),
 | 
						|
        array(0 => 104, 1 => 3),
 | 
						|
        array(0 => 104, 1 => 1),
 | 
						|
        array(0 => 104, 1 => 3),
 | 
						|
        array(0 => 104, 1 => 3),
 | 
						|
        array(0 => 104, 1 => 1),
 | 
						|
        array(0 => 104, 1 => 1),
 | 
						|
    );
 | 
						|
    public static $yyReduceMap      = array(
 | 
						|
        0   => 0,
 | 
						|
        1   => 1,
 | 
						|
        2   => 2,
 | 
						|
        4   => 4,
 | 
						|
        5   => 5,
 | 
						|
        6   => 6,
 | 
						|
        7   => 7,
 | 
						|
        8   => 8,
 | 
						|
        16  => 8,
 | 
						|
        17  => 8,
 | 
						|
        43  => 8,
 | 
						|
        63  => 8,
 | 
						|
        64  => 8,
 | 
						|
        72  => 8,
 | 
						|
        73  => 8,
 | 
						|
        77  => 8,
 | 
						|
        86  => 8,
 | 
						|
        91  => 8,
 | 
						|
        92  => 8,
 | 
						|
        97  => 8,
 | 
						|
        101 => 8,
 | 
						|
        102 => 8,
 | 
						|
        106 => 8,
 | 
						|
        108 => 8,
 | 
						|
        113 => 8,
 | 
						|
        175 => 8,
 | 
						|
        180 => 8,
 | 
						|
        9   => 9,
 | 
						|
        10  => 10,
 | 
						|
        11  => 11,
 | 
						|
        12  => 12,
 | 
						|
        15  => 12,
 | 
						|
        13  => 13,
 | 
						|
        71  => 13,
 | 
						|
        14  => 14,
 | 
						|
        87  => 14,
 | 
						|
        89  => 14,
 | 
						|
        90  => 14,
 | 
						|
        120 => 14,
 | 
						|
        18  => 18,
 | 
						|
        19  => 19,
 | 
						|
        20  => 20,
 | 
						|
        22  => 20,
 | 
						|
        24  => 20,
 | 
						|
        21  => 21,
 | 
						|
        23  => 21,
 | 
						|
        25  => 21,
 | 
						|
        26  => 26,
 | 
						|
        27  => 26,
 | 
						|
        28  => 28,
 | 
						|
        29  => 29,
 | 
						|
        30  => 30,
 | 
						|
        31  => 31,
 | 
						|
        32  => 32,
 | 
						|
        33  => 33,
 | 
						|
        34  => 34,
 | 
						|
        35  => 35,
 | 
						|
        36  => 36,
 | 
						|
        37  => 37,
 | 
						|
        38  => 38,
 | 
						|
        40  => 38,
 | 
						|
        39  => 39,
 | 
						|
        41  => 41,
 | 
						|
        42  => 42,
 | 
						|
        44  => 44,
 | 
						|
        45  => 45,
 | 
						|
        46  => 46,
 | 
						|
        47  => 47,
 | 
						|
        48  => 48,
 | 
						|
        49  => 49,
 | 
						|
        50  => 50,
 | 
						|
        51  => 51,
 | 
						|
        52  => 52,
 | 
						|
        53  => 53,
 | 
						|
        54  => 54,
 | 
						|
        55  => 55,
 | 
						|
        56  => 56,
 | 
						|
        57  => 57,
 | 
						|
        66  => 57,
 | 
						|
        155 => 57,
 | 
						|
        159 => 57,
 | 
						|
        163 => 57,
 | 
						|
        164 => 57,
 | 
						|
        58  => 58,
 | 
						|
        156 => 58,
 | 
						|
        162 => 58,
 | 
						|
        59  => 59,
 | 
						|
        60  => 60,
 | 
						|
        61  => 60,
 | 
						|
        62  => 62,
 | 
						|
        140 => 62,
 | 
						|
        65  => 65,
 | 
						|
        67  => 67,
 | 
						|
        68  => 68,
 | 
						|
        69  => 68,
 | 
						|
        70  => 70,
 | 
						|
        74  => 74,
 | 
						|
        75  => 75,
 | 
						|
        76  => 75,
 | 
						|
        78  => 78,
 | 
						|
        105 => 78,
 | 
						|
        79  => 79,
 | 
						|
        80  => 80,
 | 
						|
        81  => 81,
 | 
						|
        82  => 82,
 | 
						|
        83  => 83,
 | 
						|
        84  => 84,
 | 
						|
        85  => 85,
 | 
						|
        88  => 88,
 | 
						|
        93  => 93,
 | 
						|
        94  => 94,
 | 
						|
        95  => 95,
 | 
						|
        96  => 96,
 | 
						|
        98  => 98,
 | 
						|
        99  => 99,
 | 
						|
        100 => 99,
 | 
						|
        103 => 103,
 | 
						|
        104 => 104,
 | 
						|
        107 => 107,
 | 
						|
        109 => 109,
 | 
						|
        110 => 110,
 | 
						|
        111 => 111,
 | 
						|
        112 => 112,
 | 
						|
        114 => 114,
 | 
						|
        115 => 115,
 | 
						|
        116 => 116,
 | 
						|
        117 => 117,
 | 
						|
        118 => 118,
 | 
						|
        119 => 119,
 | 
						|
        121 => 121,
 | 
						|
        177 => 121,
 | 
						|
        122 => 122,
 | 
						|
        123 => 123,
 | 
						|
        124 => 124,
 | 
						|
        125 => 125,
 | 
						|
        126 => 126,
 | 
						|
        127 => 127,
 | 
						|
        135 => 127,
 | 
						|
        128 => 128,
 | 
						|
        129 => 129,
 | 
						|
        130 => 130,
 | 
						|
        131 => 130,
 | 
						|
        133 => 130,
 | 
						|
        134 => 130,
 | 
						|
        132 => 132,
 | 
						|
        136 => 136,
 | 
						|
        137 => 137,
 | 
						|
        138 => 138,
 | 
						|
        181 => 138,
 | 
						|
        139 => 139,
 | 
						|
        141 => 141,
 | 
						|
        142 => 142,
 | 
						|
        143 => 143,
 | 
						|
        144 => 144,
 | 
						|
        145 => 145,
 | 
						|
        146 => 146,
 | 
						|
        147 => 147,
 | 
						|
        148 => 148,
 | 
						|
        149 => 149,
 | 
						|
        150 => 150,
 | 
						|
        151 => 151,
 | 
						|
        152 => 152,
 | 
						|
        153 => 153,
 | 
						|
        154 => 154,
 | 
						|
        157 => 157,
 | 
						|
        158 => 158,
 | 
						|
        160 => 160,
 | 
						|
        161 => 161,
 | 
						|
        165 => 165,
 | 
						|
        166 => 166,
 | 
						|
        167 => 167,
 | 
						|
        168 => 168,
 | 
						|
        169 => 169,
 | 
						|
        170 => 170,
 | 
						|
        171 => 171,
 | 
						|
        172 => 172,
 | 
						|
        173 => 173,
 | 
						|
        174 => 174,
 | 
						|
        176 => 176,
 | 
						|
        178 => 178,
 | 
						|
        179 => 179,
 | 
						|
        182 => 182,
 | 
						|
        183 => 183,
 | 
						|
        184 => 184,
 | 
						|
        185 => 185,
 | 
						|
        186 => 185,
 | 
						|
        188 => 185,
 | 
						|
        187 => 187,
 | 
						|
        189 => 189,
 | 
						|
        190 => 190,
 | 
						|
        191 => 191,
 | 
						|
    );
 | 
						|
    /**
 | 
						|
     * result status
 | 
						|
     *
 | 
						|
     * @var bool
 | 
						|
     */
 | 
						|
    public $successful = true;
 | 
						|
    /**
 | 
						|
     * return value
 | 
						|
     *
 | 
						|
     * @var mixed
 | 
						|
     */
 | 
						|
    public $retvalue = 0;
 | 
						|
    /**
 | 
						|
     * @var
 | 
						|
     */
 | 
						|
    public $yymajor;
 | 
						|
    /**
 | 
						|
     * last index of array variable
 | 
						|
     *
 | 
						|
     * @var mixed
 | 
						|
     */
 | 
						|
    public $last_index;
 | 
						|
    /**
 | 
						|
     * last variable name
 | 
						|
     *
 | 
						|
     * @var string
 | 
						|
     */
 | 
						|
    public $last_variable;
 | 
						|
    /**
 | 
						|
     * root parse tree buffer
 | 
						|
     *
 | 
						|
     * @var Smarty_Internal_ParseTree
 | 
						|
     */
 | 
						|
    public $root_buffer;
 | 
						|
    /**
 | 
						|
     * current parse tree object
 | 
						|
     *
 | 
						|
     * @var Smarty_Internal_ParseTree
 | 
						|
     */
 | 
						|
    public $current_buffer;
 | 
						|
    /**
 | 
						|
     * lexer object
 | 
						|
     *
 | 
						|
     * @var Smarty_Internal_Templatelexer
 | 
						|
     */
 | 
						|
    public $lex;
 | 
						|
    /**
 | 
						|
     * {strip} status
 | 
						|
     *
 | 
						|
     * @var bool
 | 
						|
     */
 | 
						|
    public $strip = false;
 | 
						|
    /**
 | 
						|
     * compiler object
 | 
						|
     *
 | 
						|
     * @var Smarty_Internal_TemplateCompilerBase
 | 
						|
     */
 | 
						|
    public $compiler = null;
 | 
						|
    /**
 | 
						|
     * smarty object
 | 
						|
     *
 | 
						|
     * @var Smarty
 | 
						|
     */
 | 
						|
    public $smarty = null;
 | 
						|
    /**
 | 
						|
     * template object
 | 
						|
     *
 | 
						|
     * @var Smarty_Internal_Template
 | 
						|
     */
 | 
						|
    public $template = null;
 | 
						|
    /**
 | 
						|
     * block nesting level
 | 
						|
     *
 | 
						|
     * @var int
 | 
						|
     */
 | 
						|
    public $block_nesting_level = 0;
 | 
						|
    /**
 | 
						|
     * security object
 | 
						|
     *
 | 
						|
     * @var Smarty_Security
 | 
						|
     */
 | 
						|
    public $security = null;
 | 
						|
    /**
 | 
						|
     * template prefix array
 | 
						|
     *
 | 
						|
     * @var \Smarty_Internal_ParseTree[]
 | 
						|
     */
 | 
						|
    public $template_prefix = array();
 | 
						|
    /**
 | 
						|
     * template prefix array
 | 
						|
     *
 | 
						|
     * @var \Smarty_Internal_ParseTree[]
 | 
						|
     */
 | 
						|
    public $template_postfix = array();
 | 
						|
    public $yyTraceFILE;
 | 
						|
    public $yyTracePrompt;
 | 
						|
    public $yyidx;
 | 
						|
    public $yyerrcnt;
 | 
						|
    public $yystack          = array();
 | 
						|
    public $yyTokenName      = array(
 | 
						|
        '$', 'VERT', 'COLON', 'UNIMATH',
 | 
						|
        'PHP', 'TEXT', 'STRIPON', 'STRIPOFF',
 | 
						|
        'LITERALSTART', 'LITERALEND', 'LITERAL', 'RDEL',
 | 
						|
        'SIMPELOUTPUT', 'LDEL', 'DOLLARID', 'EQUAL',
 | 
						|
        'SIMPLETAG', 'ID', 'PTR', 'LDELMAKENOCACHE',
 | 
						|
        'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC',
 | 
						|
        'TO', 'STEP', 'LDELFOREACH', 'SPACE',
 | 
						|
        'AS', 'APTR', 'LDELSETFILTER', 'CLOSETAG',
 | 
						|
        'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA',
 | 
						|
        'OPENP', 'CLOSEP', 'MATH', 'ISIN',
 | 
						|
        'QMARK', 'NOT', 'TYPECAST', 'HEX',
 | 
						|
        'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING', 'DOUBLECOLON',
 | 
						|
        'NAMESPACE', 'AT', 'HATCH', 'OPENB',
 | 
						|
        'CLOSEB', 'DOLLAR', 'LOGOP', 'SLOGOP',
 | 
						|
        'TLOGOP', 'SINGLECOND', 'QUOTE', 'BACKTICK',
 | 
						|
        'error', 'start', 'template', 'template_element',
 | 
						|
        'smartytag', 'literal', 'text_content', 'literal_elements',
 | 
						|
        'literal_element', 'tag', 'variable', 'attributes',
 | 
						|
        'value', 'expr', 'varindexed', 'modifierlist',
 | 
						|
        'statement', 'statements', 'foraction', 'varvar',
 | 
						|
        'modparameters', 'attribute', 'ternary', 'array',
 | 
						|
        'tlop', 'lop', 'scond', 'function',
 | 
						|
        'ns1', 'doublequoted_with_quotes', 'static_class_access', 'object',
 | 
						|
        'arrayindex', 'indexdef', 'varvarele', 'objectchain',
 | 
						|
        'objectelement', 'method', 'params', 'modifier',
 | 
						|
        'modparameter', 'arrayelements', 'arrayelement', 'doublequoted',
 | 
						|
        'doublequotedcontent',
 | 
						|
    );                    /* Index of top element in stack */
 | 
						|
    /**
 | 
						|
     * internal error flag
 | 
						|
     *
 | 
						|
     * @var bool
 | 
						|
     */
 | 
						|
    private $internalError = false;                 /* Shifts left before out of the error */
 | 
						|
    private $_retvalue;  /* The parser's stack */
 | 
						|
    /**
 | 
						|
     * constructor
 | 
						|
     *
 | 
						|
     * @param Smarty_Internal_Templatelexer        $lex
 | 
						|
     * @param Smarty_Internal_TemplateCompilerBase $compiler
 | 
						|
     */
 | 
						|
    function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler)
 | 
						|
    {
 | 
						|
        $this->lex = $lex;
 | 
						|
        $this->compiler = $compiler;
 | 
						|
        $this->template = $this->compiler->template;
 | 
						|
        $this->smarty = $this->template->smarty;
 | 
						|
        $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false;
 | 
						|
        $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template();
 | 
						|
    }
 | 
						|
 | 
						|
    public static function yy_destructor($yymajor, $yypminor)
 | 
						|
    {
 | 
						|
        switch ($yymajor) {
 | 
						|
            default:
 | 
						|
                break;   /* If no destructor action specified: do nothing */
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * insert PHP code in current buffer
 | 
						|
     *
 | 
						|
     * @param string $code
 | 
						|
     */
 | 
						|
    public function insertPhpCode($code)
 | 
						|
    {
 | 
						|
        $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     *  merge PHP code with prefix code and return parse tree tag object
 | 
						|
     *
 | 
						|
     * @param string $code
 | 
						|
     *
 | 
						|
     * @return Smarty_Internal_ParseTree_Tag
 | 
						|
     */
 | 
						|
    public function mergePrefixCode($code)
 | 
						|
    {
 | 
						|
        $tmp = '';
 | 
						|
        foreach ($this->compiler->prefix_code as $preCode) {
 | 
						|
            $tmp .= $preCode;
 | 
						|
        }
 | 
						|
        $this->compiler->prefix_code = array();
 | 
						|
        $tmp .= $code;
 | 
						|
        return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true));
 | 
						|
    }
 | 
						|
 | 
						|
    public function Trace($TraceFILE, $zTracePrompt)
 | 
						|
    {
 | 
						|
        if (!$TraceFILE) {
 | 
						|
            $zTracePrompt = 0;
 | 
						|
        } else if (!$zTracePrompt) {
 | 
						|
            $TraceFILE = 0;
 | 
						|
        }
 | 
						|
        $this->yyTraceFILE = $TraceFILE;
 | 
						|
        $this->yyTracePrompt = $zTracePrompt;
 | 
						|
    }
 | 
						|
 | 
						|
    public function PrintTrace()
 | 
						|
    {
 | 
						|
        $this->yyTraceFILE = fopen('php://output', 'w');
 | 
						|
        $this->yyTracePrompt = '<br>';
 | 
						|
    }
 | 
						|
 | 
						|
    public function tokenName($tokenType)
 | 
						|
    {
 | 
						|
        if ($tokenType === 0) {
 | 
						|
            return 'End of Input';
 | 
						|
        }
 | 
						|
        if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
 | 
						|
            return $this->yyTokenName[ $tokenType ];
 | 
						|
        } else {
 | 
						|
            return "Unknown";
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_pop_parser_stack()
 | 
						|
    {
 | 
						|
        if (empty($this->yystack)) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        $yytos = array_pop($this->yystack);
 | 
						|
        if ($this->yyTraceFILE && $this->yyidx >= 0) {
 | 
						|
            fwrite($this->yyTraceFILE,
 | 
						|
                   $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[ $yytos->major ] .
 | 
						|
                   "\n");
 | 
						|
        }
 | 
						|
        $yymajor = $yytos->major;
 | 
						|
        self::yy_destructor($yymajor, $yytos->minor);
 | 
						|
        $this->yyidx--;
 | 
						|
        return $yymajor;
 | 
						|
    }
 | 
						|
 | 
						|
    public function __destruct()
 | 
						|
    {
 | 
						|
        while ($this->yystack !== Array()) {
 | 
						|
            $this->yy_pop_parser_stack();
 | 
						|
        }
 | 
						|
        if (is_resource($this->yyTraceFILE)) {
 | 
						|
            fclose($this->yyTraceFILE);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_get_expected_tokens($token)
 | 
						|
    {
 | 
						|
        static $res3 = array();
 | 
						|
        static $res4 = array();
 | 
						|
        $state = $this->yystack[ $this->yyidx ]->stateno;
 | 
						|
        $expected = self::$yyExpectedTokens[ $state ];
 | 
						|
        if (isset($res3[ $state ][ $token ])) {
 | 
						|
            if ($res3[ $state ][ $token ]) {
 | 
						|
                return $expected;
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
            if ($res3[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
 | 
						|
                return $expected;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        $stack = $this->yystack;
 | 
						|
        $yyidx = $this->yyidx;
 | 
						|
        do {
 | 
						|
            $yyact = $this->yy_find_shift_action($token);
 | 
						|
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
 | 
						|
                // reduce action
 | 
						|
                $done = 0;
 | 
						|
                do {
 | 
						|
                    if ($done++ == 100) {
 | 
						|
                        $this->yyidx = $yyidx;
 | 
						|
                        $this->yystack = $stack;
 | 
						|
                        // too much recursion prevents proper detection
 | 
						|
                        // so give up
 | 
						|
                        return array_unique($expected);
 | 
						|
                    }
 | 
						|
                    $yyruleno = $yyact - self::YYNSTATE;
 | 
						|
                    $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
 | 
						|
                    $nextstate = $this->yy_find_reduce_action(
 | 
						|
                        $this->yystack[ $this->yyidx ]->stateno,
 | 
						|
                        self::$yyRuleInfo[ $yyruleno ][ 0 ]);
 | 
						|
                    if (isset(self::$yyExpectedTokens[ $nextstate ])) {
 | 
						|
                        $expected = array_merge($expected, self::$yyExpectedTokens[ $nextstate ]);
 | 
						|
                        if (isset($res4[ $nextstate ][ $token ])) {
 | 
						|
                            if ($res4[ $nextstate ][ $token ]) {
 | 
						|
                                $this->yyidx = $yyidx;
 | 
						|
                                $this->yystack = $stack;
 | 
						|
                                return array_unique($expected);
 | 
						|
                            }
 | 
						|
                        } else {
 | 
						|
                            if ($res4[ $nextstate ][ $token ] =
 | 
						|
                                in_array($token, self::$yyExpectedTokens[ $nextstate ], true)) {
 | 
						|
                                $this->yyidx = $yyidx;
 | 
						|
                                $this->yystack = $stack;
 | 
						|
                                return array_unique($expected);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if ($nextstate < self::YYNSTATE) {
 | 
						|
                        // we need to shift a non-terminal
 | 
						|
                        $this->yyidx++;
 | 
						|
                        $x = new TP_yyStackEntry;
 | 
						|
                        $x->stateno = $nextstate;
 | 
						|
                        $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
 | 
						|
                        $this->yystack[ $this->yyidx ] = $x;
 | 
						|
                        continue 2;
 | 
						|
                    } else if ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
 | 
						|
                        $this->yyidx = $yyidx;
 | 
						|
                        $this->yystack = $stack;
 | 
						|
                        // the last token was just ignored, we can't accept
 | 
						|
                        // by ignoring input, this is in essence ignoring a
 | 
						|
                        // syntax error!
 | 
						|
                        return array_unique($expected);
 | 
						|
                    } else if ($nextstate === self::YY_NO_ACTION) {
 | 
						|
                        $this->yyidx = $yyidx;
 | 
						|
                        $this->yystack = $stack;
 | 
						|
                        // input accepted, but not shifted (I guess)
 | 
						|
                        return $expected;
 | 
						|
                    } else {
 | 
						|
                        $yyact = $nextstate;
 | 
						|
                    }
 | 
						|
                } while (true);
 | 
						|
            }
 | 
						|
            break;
 | 
						|
        } while (true);
 | 
						|
        $this->yyidx = $yyidx;
 | 
						|
        $this->yystack = $stack;
 | 
						|
        return array_unique($expected);
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_is_expected_token($token)
 | 
						|
    {
 | 
						|
        static $res = array();
 | 
						|
        static $res2 = array();
 | 
						|
        if ($token === 0) {
 | 
						|
            return true; // 0 is not part of this
 | 
						|
        }
 | 
						|
        $state = $this->yystack[ $this->yyidx ]->stateno;
 | 
						|
        if (isset($res[ $state ][ $token ])) {
 | 
						|
            if ($res[ $state ][ $token ]) {
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
            if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        $stack = $this->yystack;
 | 
						|
        $yyidx = $this->yyidx;
 | 
						|
        do {
 | 
						|
            $yyact = $this->yy_find_shift_action($token);
 | 
						|
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
 | 
						|
                // reduce action
 | 
						|
                $done = 0;
 | 
						|
                do {
 | 
						|
                    if ($done++ == 100) {
 | 
						|
                        $this->yyidx = $yyidx;
 | 
						|
                        $this->yystack = $stack;
 | 
						|
                        // too much recursion prevents proper detection
 | 
						|
                        // so give up
 | 
						|
                        return true;
 | 
						|
                    }
 | 
						|
                    $yyruleno = $yyact - self::YYNSTATE;
 | 
						|
                    $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
 | 
						|
                    $nextstate = $this->yy_find_reduce_action(
 | 
						|
                        $this->yystack[ $this->yyidx ]->stateno,
 | 
						|
                        self::$yyRuleInfo[ $yyruleno ][ 0 ]);
 | 
						|
                    if (isset($res2[ $nextstate ][ $token ])) {
 | 
						|
                        if ($res2[ $nextstate ][ $token ]) {
 | 
						|
                            $this->yyidx = $yyidx;
 | 
						|
                            $this->yystack = $stack;
 | 
						|
                            return true;
 | 
						|
                        }
 | 
						|
                    } else {
 | 
						|
                        if ($res2[ $nextstate ][ $token ] = (isset(self::$yyExpectedTokens[ $nextstate ]) &&
 | 
						|
                                                             in_array($token,
 | 
						|
                                                                      self::$yyExpectedTokens[ $nextstate ],
 | 
						|
                                                                      true))) {
 | 
						|
                            $this->yyidx = $yyidx;
 | 
						|
                            $this->yystack = $stack;
 | 
						|
                            return true;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if ($nextstate < self::YYNSTATE) {
 | 
						|
                        // we need to shift a non-terminal
 | 
						|
                        $this->yyidx++;
 | 
						|
                        $x = new TP_yyStackEntry;
 | 
						|
                        $x->stateno = $nextstate;
 | 
						|
                        $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
 | 
						|
                        $this->yystack[ $this->yyidx ] = $x;
 | 
						|
                        continue 2;
 | 
						|
                    } else if ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
 | 
						|
                        $this->yyidx = $yyidx;
 | 
						|
                        $this->yystack = $stack;
 | 
						|
                        if (!$token) {
 | 
						|
                            // end of input: this is valid
 | 
						|
                            return true;
 | 
						|
                        }
 | 
						|
                        // the last token was just ignored, we can't accept
 | 
						|
                        // by ignoring input, this is in essence ignoring a
 | 
						|
                        // syntax error!
 | 
						|
                        return false;
 | 
						|
                    } else if ($nextstate === self::YY_NO_ACTION) {
 | 
						|
                        $this->yyidx = $yyidx;
 | 
						|
                        $this->yystack = $stack;
 | 
						|
                        // input accepted, but not shifted (I guess)
 | 
						|
                        return true;
 | 
						|
                    } else {
 | 
						|
                        $yyact = $nextstate;
 | 
						|
                    }
 | 
						|
                } while (true);
 | 
						|
            }
 | 
						|
            break;
 | 
						|
        } while (true);
 | 
						|
        $this->yyidx = $yyidx;
 | 
						|
        $this->yystack = $stack;
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_find_shift_action($iLookAhead)
 | 
						|
    {
 | 
						|
        $stateno = $this->yystack[ $this->yyidx ]->stateno;
 | 
						|
        /* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
 | 
						|
        if (!isset(self::$yy_shift_ofst[ $stateno ])) {
 | 
						|
            // no shift actions
 | 
						|
            return self::$yy_default[ $stateno ];
 | 
						|
        }
 | 
						|
        $i = self::$yy_shift_ofst[ $stateno ];
 | 
						|
        if ($i === self::YY_SHIFT_USE_DFLT) {
 | 
						|
            return self::$yy_default[ $stateno ];
 | 
						|
        }
 | 
						|
        if ($iLookAhead == self::YYNOCODE) {
 | 
						|
            return self::YY_NO_ACTION;
 | 
						|
        }
 | 
						|
        $i += $iLookAhead;
 | 
						|
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
 | 
						|
            self::$yy_lookahead[ $i ] != $iLookAhead) {
 | 
						|
            if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
 | 
						|
                && ($iFallback = self::$yyFallback[ $iLookAhead ]) != 0) {
 | 
						|
                if ($this->yyTraceFILE) {
 | 
						|
                    fwrite($this->yyTraceFILE,
 | 
						|
                           $this->yyTracePrompt . "FALLBACK " .
 | 
						|
                           $this->yyTokenName[ $iLookAhead ] . " => " .
 | 
						|
                           $this->yyTokenName[ $iFallback ] . "\n");
 | 
						|
                }
 | 
						|
                return $this->yy_find_shift_action($iFallback);
 | 
						|
            }
 | 
						|
            return self::$yy_default[ $stateno ];
 | 
						|
        } else {
 | 
						|
            return self::$yy_action[ $i ];
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_find_reduce_action($stateno, $iLookAhead)
 | 
						|
    {
 | 
						|
        /* $stateno = $this->yystack[$this->yyidx]->stateno; */
 | 
						|
        if (!isset(self::$yy_reduce_ofst[ $stateno ])) {
 | 
						|
            return self::$yy_default[ $stateno ];
 | 
						|
        }
 | 
						|
        $i = self::$yy_reduce_ofst[ $stateno ];
 | 
						|
        if ($i == self::YY_REDUCE_USE_DFLT) {
 | 
						|
            return self::$yy_default[ $stateno ];
 | 
						|
        }
 | 
						|
        if ($iLookAhead == self::YYNOCODE) {
 | 
						|
            return self::YY_NO_ACTION;
 | 
						|
        }
 | 
						|
        $i += $iLookAhead;
 | 
						|
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
 | 
						|
            self::$yy_lookahead[ $i ] != $iLookAhead) {
 | 
						|
            return self::$yy_default[ $stateno ];
 | 
						|
        } else {
 | 
						|
            return self::$yy_action[ $i ];
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 220 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    public function yy_shift($yyNewState, $yyMajor, $yypMinor)
 | 
						|
    {
 | 
						|
        $this->yyidx++;
 | 
						|
        if ($this->yyidx >= self::YYSTACKDEPTH) {
 | 
						|
            $this->yyidx--;
 | 
						|
            if ($this->yyTraceFILE) {
 | 
						|
                fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
 | 
						|
            }
 | 
						|
            while ($this->yyidx >= 0) {
 | 
						|
                $this->yy_pop_parser_stack();
 | 
						|
            }
 | 
						|
            #line 207 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
            $this->internalError = true;
 | 
						|
            $this->compiler->trigger_template_error("Stack overflow in template parser");
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        $yytos = new TP_yyStackEntry;
 | 
						|
        $yytos->stateno = $yyNewState;
 | 
						|
        $yytos->major = $yyMajor;
 | 
						|
        $yytos->minor = $yypMinor;
 | 
						|
        $this->yystack[] = $yytos;
 | 
						|
        if ($this->yyTraceFILE && $this->yyidx > 0) {
 | 
						|
            fprintf($this->yyTraceFILE,
 | 
						|
                    "%sShift %d\n",
 | 
						|
                    $this->yyTracePrompt,
 | 
						|
                    $yyNewState);
 | 
						|
            fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
 | 
						|
            for ($i = 1; $i <= $this->yyidx; $i++) {
 | 
						|
                fprintf($this->yyTraceFILE,
 | 
						|
                        " %s",
 | 
						|
                        $this->yyTokenName[ $this->yystack[ $i ]->major ]);
 | 
						|
            }
 | 
						|
            fwrite($this->yyTraceFILE, "\n");
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 230 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r0()
 | 
						|
    {
 | 
						|
        $this->root_buffer->prepend_array($this, $this->template_prefix);
 | 
						|
        $this->root_buffer->append_array($this, $this->template_postfix);
 | 
						|
        $this->_retvalue = $this->root_buffer->to_smarty_php($this);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 237 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r1()
 | 
						|
    {
 | 
						|
        if ($this->yystack[ $this->yyidx + 0 ]->minor != null) {
 | 
						|
            $this->current_buffer->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 251 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r2()
 | 
						|
    {
 | 
						|
        if ($this->yystack[ $this->yyidx + 0 ]->minor != null) {
 | 
						|
            // because of possible code injection
 | 
						|
            $this->current_buffer->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 262 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r4()
 | 
						|
    {
 | 
						|
        if ($this->compiler->has_code) {
 | 
						|
            $this->_retvalue = $this->mergePrefixCode($this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = null;
 | 
						|
        }
 | 
						|
        $this->compiler->has_variable_string = false;
 | 
						|
        $this->block_nesting_level = count($this->compiler->_tag_stack);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 266 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r5()
 | 
						|
    {
 | 
						|
        $this->_retvalue = new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 277 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r6()
 | 
						|
    {
 | 
						|
        $code = $this->compiler->compileTag('private_php',
 | 
						|
                                            array(array('code' => $this->yystack[ $this->yyidx + 0 ]->minor),
 | 
						|
                                                  array('type' => $this->lex->phpType)),
 | 
						|
                                            array());
 | 
						|
        if ($this->compiler->has_code && !empty($code)) {
 | 
						|
            $tmp = '';
 | 
						|
            foreach ($this->compiler->prefix_code as $code) {
 | 
						|
                $tmp .= $code;
 | 
						|
            }
 | 
						|
            $this->compiler->prefix_code = array();
 | 
						|
            $this->_retvalue =
 | 
						|
                new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp . $code, true));
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = null;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 281 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r7()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->processText($this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 285 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r8()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 290 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r9()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 294 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r10()
 | 
						|
    {
 | 
						|
        $this->strip = true;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 299 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r11()
 | 
						|
    {
 | 
						|
        $this->strip = false;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 303 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r12()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 307 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r13()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 323 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r14()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 329 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r18()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 339 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r19()
 | 
						|
    {
 | 
						|
        $var =
 | 
						|
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, -$this->lex->rdel_length),
 | 
						|
                 ' $');
 | 
						|
        if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                           array('nocache'),
 | 
						|
                                                           array('value' => $this->compiler->compileVariable('\'' .
 | 
						|
                                                                                                             $match[ 1 ] .
 | 
						|
                                                                                                             '\'')));
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                           array(),
 | 
						|
                                                           array('value' => $this->compiler->compileVariable('\'' .
 | 
						|
                                                                                                             $var .
 | 
						|
                                                                                                             '\'')));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 343 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r20()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('value' => $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 366 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r21()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                       $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                       array('value' => $this->yystack[ $this->yyidx + -1 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 374 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r26()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('assign',
 | 
						|
                                                       array(array('value' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                              0 ]->minor),
 | 
						|
                                                             array('var' => '\'' . substr($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -2 ]->minor,
 | 
						|
                                                                                          1) . '\'')));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 378 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r28()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('assign',
 | 
						|
                                                       array_merge(array(array('value' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -1 ]->minor),
 | 
						|
                                                                         array('var' => '\'' .
 | 
						|
                                                                                        substr($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                               -3 ]->minor,
 | 
						|
                                                                                               1) . '\'')),
 | 
						|
                                                                   $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 383 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r29()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('assign',
 | 
						|
                                                       array_merge(array(array('value' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -1 ]->minor),
 | 
						|
                                                                         array('var' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                        -3 ]->minor[ 'var' ])),
 | 
						|
                                                                   $this->yystack[ $this->yyidx + 0 ]->minor),
 | 
						|
                                                       array('smarty_internal_index' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                        -3 ]->minor[ 'smarty_internal_index' ]));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 405 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r30()
 | 
						|
    {
 | 
						|
        $tag =
 | 
						|
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, -$this->lex->rdel_length));
 | 
						|
        if ($tag == 'strip') {
 | 
						|
            $this->strip = true;
 | 
						|
            $this->_retvalue = null;;
 | 
						|
        } else {
 | 
						|
            if (defined($tag)) {
 | 
						|
                if ($this->security) {
 | 
						|
                    $this->security->isTrustedConstant($tag, $this->compiler);
 | 
						|
                }
 | 
						|
                $this->_retvalue =
 | 
						|
                    $this->compiler->compileTag('private_print_expression', array(), array('value' => $tag));
 | 
						|
            } else {
 | 
						|
                if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
 | 
						|
                    $this->_retvalue = $this->compiler->compileTag($match[ 1 ], array("'nocache'"));
 | 
						|
                } else {
 | 
						|
                    $this->_retvalue = $this->compiler->compileTag($tag, array());
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 415 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r31()
 | 
						|
    {
 | 
						|
        if (defined($this->yystack[ $this->yyidx + -1 ]->minor)) {
 | 
						|
            if ($this->security) {
 | 
						|
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler);
 | 
						|
            }
 | 
						|
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                           $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                           array('value' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                            -1 ]->minor));
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor,
 | 
						|
                                                           $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 428 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r32()
 | 
						|
    {
 | 
						|
        if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
 | 
						|
            if ($this->security) {
 | 
						|
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
 | 
						|
            }
 | 
						|
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                           array(),
 | 
						|
                                                           array('value' => $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor, array());
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 440 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r33()
 | 
						|
    {
 | 
						|
        if (defined($this->yystack[ $this->yyidx + -2 ]->minor)) {
 | 
						|
            if ($this->security) {
 | 
						|
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler);
 | 
						|
            }
 | 
						|
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',
 | 
						|
                                                           $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                           array('value'        => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                   -2 ]->minor,
 | 
						|
                                                                 'modifierlist' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                   -1 ]->minor));
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor,
 | 
						|
                                                           $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                           array('modifierlist' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                   -1 ]->minor));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 445 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r34()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor,
 | 
						|
                                                       $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                       array('object_method' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                -1 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 450 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r35()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -4 ]->minor,
 | 
						|
                                                       $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                       array('modifierlist'  => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                -1 ]->minor,
 | 
						|
                                                             'object_method' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                -2 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 455 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r36()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('make_nocache',
 | 
						|
                                                       array(array('var' => '\'' . substr($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          0 ]->minor,
 | 
						|
                                                                                          1) . '\'')));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 460 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r37()
 | 
						|
    {
 | 
						|
        $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->lex->ldel_length));
 | 
						|
        $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag,
 | 
						|
                                                       array(),
 | 
						|
                                                       array('if condition' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                               0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 465 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r38()
 | 
						|
    {
 | 
						|
        $tag = trim(substr($this->yystack[ $this->yyidx + -2 ]->minor, $this->lex->ldel_length));
 | 
						|
        $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag,
 | 
						|
                                                       $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                       array('if condition' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                               -1 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 476 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r39()
 | 
						|
    {
 | 
						|
        $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->lex->ldel_length));
 | 
						|
        $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag,
 | 
						|
                                                       array(),
 | 
						|
                                                       array('if condition' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                               0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 480 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r41()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('for',
 | 
						|
                                                       array_merge($this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                                   array(array('start' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -6 ]->minor),
 | 
						|
                                                                         array('ifexp' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -4 ]->minor),
 | 
						|
                                                                         array('var' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                        -2 ]->minor),
 | 
						|
                                                                         array('step' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                         -1 ]->minor))),
 | 
						|
                                                       1);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 488 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r42()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 492 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r44()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('for',
 | 
						|
                                                       array_merge($this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                                   array(array('start' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -3 ]->minor),
 | 
						|
                                                                         array('to' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                       -1 ]->minor))),
 | 
						|
                                                       0);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 497 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r45()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('for',
 | 
						|
                                                       array_merge($this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                                   array(array('start' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                          -5 ]->minor),
 | 
						|
                                                                         array('to' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                       -3 ]->minor),
 | 
						|
                                                                         array('step' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                         -1 ]->minor))),
 | 
						|
                                                       0);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 501 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r46()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('foreach',
 | 
						|
                                                       array_merge($this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                                   array(array('from' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                         -3 ]->minor),
 | 
						|
                                                                         array('item' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                         -1 ]->minor))));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 504 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r47()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('foreach',
 | 
						|
                                                       array_merge($this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                                   array(array('from' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                         -5 ]->minor),
 | 
						|
                                                                         array('item' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                         -1 ]->minor),
 | 
						|
                                                                         array('key' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                        -3 ]->minor))));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 509 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r48()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 513 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r49()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('setfilter',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('modifier_list' => array(array_merge(array($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                                        -1 ]->minor),
 | 
						|
                                                                                                  $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                                  0 ]->minor))));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 519 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r50()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('setfilter',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('modifier_list' => array_merge(array(array_merge(array($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                                                    -2 ]->minor),
 | 
						|
                                                                                                              $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                                              -1 ]->minor)),
 | 
						|
                                                                                            $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                            0 ]->minor)));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 528 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r51()
 | 
						|
    {
 | 
						|
        $tag =
 | 
						|
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, -$this->lex->rdel_length),
 | 
						|
                 ' /');
 | 
						|
        if ($tag == 'strip') {
 | 
						|
            $this->strip = false;
 | 
						|
            $this->_retvalue = null;
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag($tag . 'close', array());
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 532 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r52()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array());
 | 
						|
    }
 | 
						|
 | 
						|
    #line 537 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r53()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('modifier_list' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 541 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r54()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('object_method' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 549 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r55()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('object_method' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                -1 ]->minor,
 | 
						|
                                                             'modifier_list' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 555 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r56()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
 | 
						|
        $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 560 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r57()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 565 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r58()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array();
 | 
						|
    }
 | 
						|
 | 
						|
    #line 576 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r59()
 | 
						|
    {
 | 
						|
        if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
 | 
						|
            if ($this->security) {
 | 
						|
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
 | 
						|
            }
 | 
						|
            $this->_retvalue =
 | 
						|
                array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        } else {
 | 
						|
            $this->_retvalue =
 | 
						|
                array($this->yystack[ $this->yyidx + -2 ]->minor => '\'' . $this->yystack[ $this->yyidx + 0 ]->minor .
 | 
						|
                                                                    '\'');
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 584 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r60()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array(trim($this->yystack[ $this->yyidx + -1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                                  0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 596 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r62()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 609 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r65()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 614 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r67()
 | 
						|
    {
 | 
						|
        $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 621 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r68()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array('var'   => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'',
 | 
						|
                                 'value' => $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 645 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r70()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array('var'   => $this->yystack[ $this->yyidx + -2 ]->minor,
 | 
						|
                                 'value' => $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 650 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r74()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            '$_smarty_tpl->getStreamVariable(\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '://' .
 | 
						|
            $this->yystack[ $this->yyidx + 0 ]->minor . '\')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 664 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r75()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            $this->yystack[ $this->yyidx + -2 ]->minor . trim($this->yystack[ $this->yyidx + -1 ]->minor) .
 | 
						|
            $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 670 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r78()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileTag('private_modifier',
 | 
						|
                                                       array(),
 | 
						|
                                                       array('value'        => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                               -1 ]->minor,
 | 
						|
                                                             'modifierlist' => $this->yystack[ $this->yyidx +
 | 
						|
                                                                                               0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 674 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r79()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            $this->yystack[ $this->yyidx + -1 ]->minor[ 'pre' ] . $this->yystack[ $this->yyidx + -2 ]->minor .
 | 
						|
            $this->yystack[ $this->yyidx + -1 ]->minor[ 'op' ] . $this->yystack[ $this->yyidx + 0 ]->minor . ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 678 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r80()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 682 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r81()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 686 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r82()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            'in_array(' . $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor .
 | 
						|
            ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 694 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r83()
 | 
						|
    {
 | 
						|
        $this->_retvalue = 'in_array(' . $this->yystack[ $this->yyidx + -2 ]->minor . ',(array)' .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor . ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 698 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r84()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -5 ]->minor . ' ? ' . $this->compiler->compileVariable('\'' .
 | 
						|
                                                                                                                 substr($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                                                        -2 ]->minor,
 | 
						|
                                                                                                                        1) .
 | 
						|
                                                                                                                 '\'') .
 | 
						|
                           ' : ' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 713 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r85()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            $this->yystack[ $this->yyidx + -5 ]->minor . ' ? ' . $this->yystack[ $this->yyidx + -2 ]->minor . ' : ' .
 | 
						|
            $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 734 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r88()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 738 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r93()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 742 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r94()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 747 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r95()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 764 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r96()
 | 
						|
    {
 | 
						|
        if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
 | 
						|
            if ($this->security) {
 | 
						|
                $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
 | 
						|
            }
 | 
						|
            $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 768 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r98()
 | 
						|
    {
 | 
						|
        $this->_retvalue = "(" . $this->yystack[ $this->yyidx + -1 ]->minor . ")";
 | 
						|
    }
 | 
						|
 | 
						|
    #line 786 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r99()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 797 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r103()
 | 
						|
    {
 | 
						|
        $prefixVar = $this->compiler->getNewPrefixVariable();
 | 
						|
        if ($this->yystack[ $this->yyidx + -2 ]->minor[ 'var' ] == '\'smarty\'') {
 | 
						|
            $this->compiler->appendPrefixCode("<?php $prefixVar" . ' = ' .
 | 
						|
                                              $this->compiler->compileTag('private_special_variable',
 | 
						|
                                                                          array(),
 | 
						|
                                                                          $this->yystack[ $this->yyidx +
 | 
						|
                                                                                          -2 ]->minor[ 'smarty_internal_index' ]) .
 | 
						|
                                              ';?>');
 | 
						|
        } else {
 | 
						|
            $this->compiler->appendPrefixCode("<?php $prefixVar" . ' = ' .
 | 
						|
                                              $this->compiler->compileVariable($this->yystack[ $this->yyidx +
 | 
						|
                                                                                               -2 ]->minor[ 'var' ]) .
 | 
						|
                                              $this->yystack[ $this->yyidx + -2 ]->minor[ 'smarty_internal_index' ] .
 | 
						|
                                              ';?>');
 | 
						|
        }
 | 
						|
        $this->_retvalue = $prefixVar . '::' . $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
 | 
						|
    }
 | 
						|
 | 
						|
    #line 814 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r104()
 | 
						|
    {
 | 
						|
        $prefixVar = $this->compiler->getNewPrefixVariable();
 | 
						|
        $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php $prefixVar" . '=ob_get_clean();?>'));
 | 
						|
        $this->_retvalue = $prefixVar;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 833 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r107()
 | 
						|
    {
 | 
						|
        if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) &&
 | 
						|
            (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + -2 ]->minor,
 | 
						|
                                                                             $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                                                             $this->compiler))) {
 | 
						|
            if (isset($this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ])) {
 | 
						|
                $this->_retvalue =
 | 
						|
                    $this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ] . '::' .
 | 
						|
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] . $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
 | 
						|
            } else {
 | 
						|
                $this->_retvalue =
 | 
						|
                    $this->yystack[ $this->yyidx + -2 ]->minor . '::' . $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
 | 
						|
                    $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
            $this->compiler->trigger_template_error("static class '" . $this->yystack[ $this->yyidx + -2 ]->minor .
 | 
						|
                                                    "' is undefined or not allowed by security setting");
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 844 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r109()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 847 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r110()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 860 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r111()
 | 
						|
    {
 | 
						|
        if ($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ] == '\'smarty\'') {
 | 
						|
            $smarty_var = $this->compiler->compileTag('private_special_variable',
 | 
						|
                                                      array(),
 | 
						|
                                                      $this->yystack[ $this->yyidx +
 | 
						|
                                                                      0 ]->minor[ 'smarty_internal_index' ]);
 | 
						|
            $this->_retvalue = $smarty_var;
 | 
						|
        } else {
 | 
						|
            // used for array reset,next,prev,end,current
 | 
						|
            $this->last_variable = $this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ];
 | 
						|
            $this->last_index = $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
 | 
						|
            $this->_retvalue = $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]) .
 | 
						|
                               $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 870 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r112()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[ $this->yyidx + -2 ]->minor . ']->' .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 874 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r114()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + -1 ]->minor . "'");
 | 
						|
    }
 | 
						|
 | 
						|
    #line 878 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r115()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '(is_array($tmp = ' .
 | 
						|
                           $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + -2 ]->minor .
 | 
						|
                                                                  "'") . ') ? $tmp' .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor . ' :null)';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 882 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r116()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 886 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r117()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
 | 
						|
            ') ? $tmp' . $this->yystack[ $this->yyidx + 0 ]->minor . ' : null)';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 889 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r118()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array('var'                   => '\'' .
 | 
						|
                                                            substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) .
 | 
						|
                                                            '\'',
 | 
						|
                                 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 902 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r119()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array('var'                   => $this->yystack[ $this->yyidx + -1 ]->minor,
 | 
						|
                                 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 908 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r121()
 | 
						|
    {
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 911 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r122()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            '[' . $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') .
 | 
						|
            ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 915 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r123()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 919 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r124()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) . '->' .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 923 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r125()
 | 
						|
    {
 | 
						|
        $this->_retvalue = "['" . $this->yystack[ $this->yyidx + 0 ]->minor . "']";
 | 
						|
    }
 | 
						|
 | 
						|
    #line 928 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r126()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 933 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r127()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 937 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r128()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable',
 | 
						|
                                                             array(),
 | 
						|
                                                             '[\'section\'][\'' .
 | 
						|
                                                             $this->yystack[ $this->yyidx + -1 ]->minor .
 | 
						|
                                                             '\'][\'index\']') . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 940 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r129()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable',
 | 
						|
                                                             array(),
 | 
						|
                                                             '[\'section\'][\'' .
 | 
						|
                                                             $this->yystack[ $this->yyidx + -3 ]->minor . '\'][\'' .
 | 
						|
                                                             $this->yystack[ $this->yyidx + -1 ]->minor . '\']') . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 946 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r130()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 962 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r132()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[' . $this->compiler->compileVariable('\'' .
 | 
						|
                                                                  substr($this->yystack[ $this->yyidx + -1 ]->minor,
 | 
						|
                                                                         1) . '\'') . ']';;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 972 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r136()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '[]';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 976 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r137()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 981 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r138()
 | 
						|
    {
 | 
						|
        $this->_retvalue = "''";
 | 
						|
    }
 | 
						|
 | 
						|
    #line 989 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r139()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 995 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r141()
 | 
						|
    {
 | 
						|
        $var =
 | 
						|
            trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, -$this->lex->rdel_length),
 | 
						|
                 ' $');
 | 
						|
        $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\'');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1002 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r142()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1011 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r143()
 | 
						|
    {
 | 
						|
        if ($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ] == '\'smarty\'') {
 | 
						|
            $this->_retvalue = $this->compiler->compileTag('private_special_variable',
 | 
						|
                                                           array(),
 | 
						|
                                                           $this->yystack[ $this->yyidx +
 | 
						|
                                                                           -1 ]->minor[ 'smarty_internal_index' ]) .
 | 
						|
                               $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
        } else {
 | 
						|
            $this->_retvalue = $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ]) .
 | 
						|
                               $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ] .
 | 
						|
                               $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1016 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r144()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1021 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r145()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1028 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r146()
 | 
						|
    {
 | 
						|
        if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) == '_') {
 | 
						|
            $this->compiler->trigger_template_error(self::Err1);
 | 
						|
        }
 | 
						|
        $this->_retvalue =
 | 
						|
            '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1035 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r147()
 | 
						|
    {
 | 
						|
        if ($this->security) {
 | 
						|
            $this->compiler->trigger_template_error(self::Err2);
 | 
						|
        }
 | 
						|
        $this->_retvalue = '->{' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor) .
 | 
						|
                           $this->yystack[ $this->yyidx + 0 ]->minor . '}';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1042 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r148()
 | 
						|
    {
 | 
						|
        if ($this->security) {
 | 
						|
            $this->compiler->trigger_template_error(self::Err2);
 | 
						|
        }
 | 
						|
        $this->_retvalue =
 | 
						|
            '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1050 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r149()
 | 
						|
    {
 | 
						|
        if ($this->security) {
 | 
						|
            $this->compiler->trigger_template_error(self::Err2);
 | 
						|
        }
 | 
						|
        $this->_retvalue =
 | 
						|
            '->{\'' . $this->yystack[ $this->yyidx + -4 ]->minor . '\'.' . $this->yystack[ $this->yyidx + -2 ]->minor .
 | 
						|
            $this->yystack[ $this->yyidx + 0 ]->minor . '}';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1058 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r150()
 | 
						|
    {
 | 
						|
        $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1066 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r151()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor,
 | 
						|
                                                                   $this->yystack[ $this->yyidx + -1 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1073 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r152()
 | 
						|
    {
 | 
						|
        if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) == '_') {
 | 
						|
            $this->compiler->trigger_template_error(self::Err1);
 | 
						|
        }
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -3 ]->minor . "(" .
 | 
						|
                           implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ")";
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1084 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r153()
 | 
						|
    {
 | 
						|
        if ($this->security) {
 | 
						|
            $this->compiler->trigger_template_error(self::Err2);
 | 
						|
        }
 | 
						|
        $prefixVar = $this->compiler->getNewPrefixVariable();
 | 
						|
        $this->compiler->appendPrefixCode("<?php $prefixVar" . '=' . $this->compiler->compileVariable('\'' .
 | 
						|
                                                                                                      substr($this->yystack[ $this->yyidx +
 | 
						|
                                                                                                                             -3 ]->minor,
 | 
						|
                                                                                                             1) .
 | 
						|
                                                                                                      '\'') . ';?>');
 | 
						|
        $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1101 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r154()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1105 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r157()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array_merge($this->yystack[ $this->yyidx + -2 ]->minor,
 | 
						|
                                       array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor,
 | 
						|
                                                         $this->yystack[ $this->yyidx + 0 ]->minor)));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1113 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r158()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1121 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r160()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1140 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r161()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1145 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r165()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1150 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r166()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1155 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r167()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1160 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r168()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1166 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r169()
 | 
						|
    {
 | 
						|
        $this->_retvalue = array($this->yystack[ $this->yyidx + -2 ]->minor,
 | 
						|
                                 $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor,
 | 
						|
                                 'property');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1170 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r170()
 | 
						|
    {
 | 
						|
        $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' ';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1189 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r171()
 | 
						|
    {
 | 
						|
        static $lops = array(
 | 
						|
            'eq'  => ' == ',
 | 
						|
            'ne'  => ' != ',
 | 
						|
            'neq' => ' != ',
 | 
						|
            'gt'  => ' > ',
 | 
						|
            'ge'  => ' >= ',
 | 
						|
            'gte' => ' >= ',
 | 
						|
            'lt'  => ' < ',
 | 
						|
            'le'  => ' <= ',
 | 
						|
            'lte' => ' <= ',
 | 
						|
            'mod' => ' % ',
 | 
						|
            'and' => ' && ',
 | 
						|
            'or'  => ' || ',
 | 
						|
            'xor' => ' xor ',
 | 
						|
        );
 | 
						|
        $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
        $this->_retvalue = $lops[ $op ];
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1202 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r172()
 | 
						|
    {
 | 
						|
        static $tlops = array(
 | 
						|
            'isdivby'     => array('op' => ' % ', 'pre' => '!('),
 | 
						|
            'isnotdivby'  => array('op' => ' % ', 'pre' => '('),
 | 
						|
            'isevenby'    => array('op' => ' / ', 'pre' => '!(1 & '),
 | 
						|
            'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
 | 
						|
            'isoddby'     => array('op' => ' / ', 'pre' => '(1 & '),
 | 
						|
            'isnotoddby'  => array('op' => ' / ', 'pre' => '!(1 & '),
 | 
						|
        );
 | 
						|
        $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
        $this->_retvalue = $tlops[ $op ];
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1216 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r173()
 | 
						|
    {
 | 
						|
        static $scond = array(
 | 
						|
            'iseven'    => '!(1 & ',
 | 
						|
            'isnoteven' => '(1 & ',
 | 
						|
            'isodd'     => '(1 & ',
 | 
						|
            'isnotodd'  => '!(1 & ',
 | 
						|
        );
 | 
						|
        $op = strtolower(str_replace(' ', '', $this->yystack[ $this->yyidx + 0 ]->minor));
 | 
						|
        $this->_retvalue = $scond[ $op ];
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1224 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r174()
 | 
						|
    {
 | 
						|
        $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1232 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r176()
 | 
						|
    {
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1236 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r178()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1252 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r179()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1258 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r182()
 | 
						|
    {
 | 
						|
        $this->compiler->leaveDoubleQuote();
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1263 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r183()
 | 
						|
    {
 | 
						|
        $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
        $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1267 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r184()
 | 
						|
    {
 | 
						|
        $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1275 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r185()
 | 
						|
    {
 | 
						|
        $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1283 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r187()
 | 
						|
    {
 | 
						|
        $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' .
 | 
						|
                                                              substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) .
 | 
						|
                                                              '\']->value');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1287 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r189()
 | 
						|
    {
 | 
						|
        $this->_retvalue =
 | 
						|
            new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')');
 | 
						|
    }
 | 
						|
 | 
						|
    #line 1291 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
    function yy_r190()
 | 
						|
    {
 | 
						|
        $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    function yy_r191()
 | 
						|
    {
 | 
						|
        $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor);
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_reduce($yyruleno)
 | 
						|
    {
 | 
						|
        if ($this->yyTraceFILE && $yyruleno >= 0
 | 
						|
            && $yyruleno < count(self::$yyRuleName)) {
 | 
						|
            fprintf($this->yyTraceFILE,
 | 
						|
                    "%sReduce (%d) [%s].\n",
 | 
						|
                    $this->yyTracePrompt,
 | 
						|
                    $yyruleno,
 | 
						|
                    self::$yyRuleName[ $yyruleno ]);
 | 
						|
        }
 | 
						|
        $this->_retvalue = $yy_lefthand_side = null;
 | 
						|
        if (isset(self::$yyReduceMap[ $yyruleno ])) {
 | 
						|
            // call the action
 | 
						|
            $this->_retvalue = null;
 | 
						|
            $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}();
 | 
						|
            $yy_lefthand_side = $this->_retvalue;
 | 
						|
        }
 | 
						|
        $yygoto = self::$yyRuleInfo[ $yyruleno ][ 0 ];
 | 
						|
        $yysize = self::$yyRuleInfo[ $yyruleno ][ 1 ];
 | 
						|
        $this->yyidx -= $yysize;
 | 
						|
        for ($i = $yysize; $i; $i--) {
 | 
						|
            // pop all of the right-hand side parameters
 | 
						|
            array_pop($this->yystack);
 | 
						|
        }
 | 
						|
        $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto);
 | 
						|
        if ($yyact < self::YYNSTATE) {
 | 
						|
            if (!$this->yyTraceFILE && $yysize) {
 | 
						|
                $this->yyidx++;
 | 
						|
                $x = new TP_yyStackEntry;
 | 
						|
                $x->stateno = $yyact;
 | 
						|
                $x->major = $yygoto;
 | 
						|
                $x->minor = $yy_lefthand_side;
 | 
						|
                $this->yystack[ $this->yyidx ] = $x;
 | 
						|
            } else {
 | 
						|
                $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
 | 
						|
            }
 | 
						|
        } else if ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
 | 
						|
            $this->yy_accept();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_parse_failed()
 | 
						|
    {
 | 
						|
        if ($this->yyTraceFILE) {
 | 
						|
            fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
 | 
						|
        }
 | 
						|
        while ($this->yyidx >= 0) {
 | 
						|
            $this->yy_pop_parser_stack();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_syntax_error($yymajor, $TOKEN)
 | 
						|
    {
 | 
						|
        #line 200 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
        $this->internalError = true;
 | 
						|
        $this->yymajor = $yymajor;
 | 
						|
        $this->compiler->trigger_template_error();
 | 
						|
    }
 | 
						|
 | 
						|
    public function yy_accept()
 | 
						|
    {
 | 
						|
        if ($this->yyTraceFILE) {
 | 
						|
            fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
 | 
						|
        }
 | 
						|
        while ($this->yyidx >= 0) {
 | 
						|
            $this->yy_pop_parser_stack();
 | 
						|
        }
 | 
						|
        #line 193 "../smarty/lexer/smarty_internal_templateparser.y"
 | 
						|
        $this->successful = !$this->internalError;
 | 
						|
        $this->internalError = false;
 | 
						|
        $this->retvalue = $this->_retvalue;
 | 
						|
    }
 | 
						|
 | 
						|
    public function doParse($yymajor, $yytokenvalue)
 | 
						|
    {
 | 
						|
        $yyerrorhit = 0;   /* True if yymajor has invoked an error */
 | 
						|
        if ($this->yyidx === null || $this->yyidx < 0) {
 | 
						|
            $this->yyidx = 0;
 | 
						|
            $this->yyerrcnt = -1;
 | 
						|
            $x = new TP_yyStackEntry;
 | 
						|
            $x->stateno = 0;
 | 
						|
            $x->major = 0;
 | 
						|
            $this->yystack = array();
 | 
						|
            $this->yystack[] = $x;
 | 
						|
        }
 | 
						|
        $yyendofinput = ($yymajor == 0);
 | 
						|
        if ($this->yyTraceFILE) {
 | 
						|
            fprintf($this->yyTraceFILE,
 | 
						|
                    "%sInput %s\n",
 | 
						|
                    $this->yyTracePrompt,
 | 
						|
                    $this->yyTokenName[ $yymajor ]);
 | 
						|
        }
 | 
						|
        do {
 | 
						|
            $yyact = $this->yy_find_shift_action($yymajor);
 | 
						|
            if ($yymajor < self::YYERRORSYMBOL &&
 | 
						|
                !$this->yy_is_expected_token($yymajor)) {
 | 
						|
                // force a syntax error
 | 
						|
                $yyact = self::YY_ERROR_ACTION;
 | 
						|
            }
 | 
						|
            if ($yyact < self::YYNSTATE) {
 | 
						|
                $this->yy_shift($yyact, $yymajor, $yytokenvalue);
 | 
						|
                $this->yyerrcnt--;
 | 
						|
                if ($yyendofinput && $this->yyidx >= 0) {
 | 
						|
                    $yymajor = 0;
 | 
						|
                } else {
 | 
						|
                    $yymajor = self::YYNOCODE;
 | 
						|
                }
 | 
						|
            } else if ($yyact < self::YYNSTATE + self::YYNRULE) {
 | 
						|
                $this->yy_reduce($yyact - self::YYNSTATE);
 | 
						|
            } else if ($yyact == self::YY_ERROR_ACTION) {
 | 
						|
                if ($this->yyTraceFILE) {
 | 
						|
                    fprintf($this->yyTraceFILE,
 | 
						|
                            "%sSyntax Error!\n",
 | 
						|
                            $this->yyTracePrompt);
 | 
						|
                }
 | 
						|
                if (self::YYERRORSYMBOL) {
 | 
						|
                    if ($this->yyerrcnt < 0) {
 | 
						|
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
 | 
						|
                    }
 | 
						|
                    $yymx = $this->yystack[ $this->yyidx ]->major;
 | 
						|
                    if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
 | 
						|
                        if ($this->yyTraceFILE) {
 | 
						|
                            fprintf($this->yyTraceFILE,
 | 
						|
                                    "%sDiscard input token %s\n",
 | 
						|
                                    $this->yyTracePrompt,
 | 
						|
                                    $this->yyTokenName[ $yymajor ]);
 | 
						|
                        }
 | 
						|
                        $this->yy_destructor($yymajor, $yytokenvalue);
 | 
						|
                        $yymajor = self::YYNOCODE;
 | 
						|
                    } else {
 | 
						|
                        while ($this->yyidx >= 0 &&
 | 
						|
                               $yymx != self::YYERRORSYMBOL &&
 | 
						|
                               ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
 | 
						|
                        ) {
 | 
						|
                            $this->yy_pop_parser_stack();
 | 
						|
                        }
 | 
						|
                        if ($this->yyidx < 0 || $yymajor == 0) {
 | 
						|
                            $this->yy_destructor($yymajor, $yytokenvalue);
 | 
						|
                            $this->yy_parse_failed();
 | 
						|
                            $yymajor = self::YYNOCODE;
 | 
						|
                        } else if ($yymx != self::YYERRORSYMBOL) {
 | 
						|
                            $u2 = 0;
 | 
						|
                            $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    $this->yyerrcnt = 3;
 | 
						|
                    $yyerrorhit = 1;
 | 
						|
                } else {
 | 
						|
                    if ($this->yyerrcnt <= 0) {
 | 
						|
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
 | 
						|
                    }
 | 
						|
                    $this->yyerrcnt = 3;
 | 
						|
                    $this->yy_destructor($yymajor, $yytokenvalue);
 | 
						|
                    if ($yyendofinput) {
 | 
						|
                        $this->yy_parse_failed();
 | 
						|
                    }
 | 
						|
                    $yymajor = self::YYNOCODE;
 | 
						|
                }
 | 
						|
            } else {
 | 
						|
                $this->yy_accept();
 | 
						|
                $yymajor = self::YYNOCODE;
 | 
						|
            }
 | 
						|
        } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
 | 
						|
    }
 | 
						|
}
 | 
						|
 |