Code

Updated smarty to 3.0.5
[gosa.git] / gosa-core / include / smarty / sysplugins / smarty_internal_templateparser.php
1 <?php
2 /**
3 * Smarty Internal Plugin Templateparser
4 *
5 * This is the template parser.
6 * It is generated from the internal.templateparser.y file
7 * @package Smarty
8 * @subpackage Compiler
9 * @author Uwe Tews
10 */
12 class TP_yyToken implements ArrayAccess
13 {
14     public $string = '';
15     public $metadata = array();
17     function __construct($s, $m = array())
18     {
19         if ($s instanceof TP_yyToken) {
20             $this->string = $s->string;
21             $this->metadata = $s->metadata;
22         } else {
23             $this->string = (string) $s;
24             if ($m instanceof TP_yyToken) {
25                 $this->metadata = $m->metadata;
26             } elseif (is_array($m)) {
27                 $this->metadata = $m;
28             }
29         }
30     }
32     function __toString()
33     {
34         return $this->_string;
35     }
37     function offsetExists($offset)
38     {
39         return isset($this->metadata[$offset]);
40     }
42     function offsetGet($offset)
43     {
44         return $this->metadata[$offset];
45     }
47     function offsetSet($offset, $value)
48     {
49         if ($offset === null) {
50             if (isset($value[0])) {
51                 $x = ($value instanceof TP_yyToken) ?
52                     $value->metadata : $value;
53                 $this->metadata = array_merge($this->metadata, $x);
54                 return;
55             }
56             $offset = count($this->metadata);
57         }
58         if ($value === null) {
59             return;
60         }
61         if ($value instanceof TP_yyToken) {
62             if ($value->metadata) {
63                 $this->metadata[$offset] = $value->metadata;
64             }
65         } elseif ($value) {
66             $this->metadata[$offset] = $value;
67         }
68     }
70     function offsetUnset($offset)
71     {
72         unset($this->metadata[$offset]);
73     }
74 }
76 class TP_yyStackEntry
77 {
78     public $stateno;       /* The state-number */
79     public $major;         /* The major token value.  This is the code
80                      ** number for the token at this stack level */
81     public $minor; /* The user-supplied minor token value.  This
82                      ** is the value of the token  */
83 };
86 #line 12 "smarty_internal_templateparser.y"
87 class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php"
88 {
89 #line 14 "smarty_internal_templateparser.y"
91           const Err1 = "Security error: Call to private object member not allowed";
92           const Err2 = "Security error: Call to dynamic object member not allowed";
93     // states whether the parse was successful or not
94     public $successful = true;
95     public $retvalue = 0;
96     private $lex;
97     private $internalError = false;
99     function __construct($lex, $compiler) {
100         // set instance object
101         self::instance($this); 
102         $this->lex = $lex;
103         $this->compiler = $compiler;
104         $this->smarty = $this->compiler->smarty;
105         $this->template = $this->compiler->template;
106         $this->compiler->has_variable_string = false;
107                                 $this->compiler->prefix_code = array();
108                                 $this->prefix_number = 0;
109                                 $this->block_nesting_level = 0;
110                                 if ($this->security = isset($this->smarty->security_policy)) {
111               $this->php_handling = $this->smarty->security_policy->php_handling;
112         } else {
113               $this->php_handling = $this->smarty->php_handling;
114         }
115                                 $this->is_xml = false;
116                                 $this->asp_tags = (ini_get('asp_tags') != '0');
117                                 $this->current_buffer = $this->root_buffer = new _smarty_template_buffer($this);
118     }
119     public static function &instance($new_instance = null)
120     {
121         static $instance = null;
122         if (isset($new_instance) && is_object($new_instance))
123             $instance = $new_instance;
124         return $instance;
125     }
127     public static function escape_start_tag($tag_text) {
128        $tag = preg_replace('/\A<\?(.*)\z/', '<<?php ?>?\1', $tag_text, -1 , $count); //Escape tag
129        assert($tag !== false && $count === 1);
130        return $tag;
131     }
133     public static function escape_end_tag($tag_text) {
134        assert($tag_text === '?>');
135        return '?<?php ?>>';
136     }
138     
139 #line 132 "smarty_internal_templateparser.php"
141     const TP_VERT                           =  1;
142     const TP_COLON                          =  2;
143     const TP_COMMENT                        =  3;
144     const TP_PHPSTARTTAG                    =  4;
145     const TP_PHPENDTAG                      =  5;
146     const TP_ASPSTARTTAG                    =  6;
147     const TP_ASPENDTAG                      =  7;
148     const TP_FAKEPHPSTARTTAG                =  8;
149     const TP_XMLTAG                         =  9;
150     const TP_OTHER                          = 10;
151     const TP_LINEBREAK                      = 11;
152     const TP_LITERALSTART                   = 12;
153     const TP_LITERALEND                     = 13;
154     const TP_LITERAL                        = 14;
155     const TP_LDEL                           = 15;
156     const TP_RDEL                           = 16;
157     const TP_DOLLAR                         = 17;
158     const TP_ID                             = 18;
159     const TP_EQUAL                          = 19;
160     const TP_PTR                            = 20;
161     const TP_LDELIF                         = 21;
162     const TP_SPACE                          = 22;
163     const TP_LDELFOR                        = 23;
164     const TP_SEMICOLON                      = 24;
165     const TP_INCDEC                         = 25;
166     const TP_TO                             = 26;
167     const TP_STEP                           = 27;
168     const TP_LDELFOREACH                    = 28;
169     const TP_AS                             = 29;
170     const TP_APTR                           = 30;
171     const TP_SMARTYBLOCKCHILD               = 31;
172     const TP_LDELSLASH                      = 32;
173     const TP_INTEGER                        = 33;
174     const TP_COMMA                          = 34;
175     const TP_MATH                           = 35;
176     const TP_UNIMATH                        = 36;
177     const TP_ANDSYM                         = 37;
178     const TP_ISIN                           = 38;
179     const TP_ISDIVBY                        = 39;
180     const TP_ISNOTDIVBY                     = 40;
181     const TP_ISEVEN                         = 41;
182     const TP_ISNOTEVEN                      = 42;
183     const TP_ISEVENBY                       = 43;
184     const TP_ISNOTEVENBY                    = 44;
185     const TP_ISODD                          = 45;
186     const TP_ISNOTODD                       = 46;
187     const TP_ISODDBY                        = 47;
188     const TP_ISNOTODDBY                     = 48;
189     const TP_INSTANCEOF                     = 49;
190     const TP_OPENP                          = 50;
191     const TP_CLOSEP                         = 51;
192     const TP_QMARK                          = 52;
193     const TP_NOT                            = 53;
194     const TP_TYPECAST                       = 54;
195     const TP_HEX                            = 55;
196     const TP_DOT                            = 56;
197     const TP_SINGLEQUOTESTRING              = 57;
198     const TP_DOUBLECOLON                    = 58;
199     const TP_AT                             = 59;
200     const TP_HATCH                          = 60;
201     const TP_OPENB                          = 61;
202     const TP_CLOSEB                         = 62;
203     const TP_EQUALS                         = 63;
204     const TP_NOTEQUALS                      = 64;
205     const TP_GREATERTHAN                    = 65;
206     const TP_LESSTHAN                       = 66;
207     const TP_GREATEREQUAL                   = 67;
208     const TP_LESSEQUAL                      = 68;
209     const TP_IDENTITY                       = 69;
210     const TP_NONEIDENTITY                   = 70;
211     const TP_MOD                            = 71;
212     const TP_LAND                           = 72;
213     const TP_LOR                            = 73;
214     const TP_LXOR                           = 74;
215     const TP_QUOTE                          = 75;
216     const TP_BACKTICK                       = 76;
217     const TP_DOLLARID                       = 77;
218     const YY_NO_ACTION = 572;
219     const YY_ACCEPT_ACTION = 571;
220     const YY_ERROR_ACTION = 570;
222     const YY_SZ_ACTTAB = 2394;
223 static public $yy_action = array(
224  /*     0 */   192,  249,  282,  291,  295,  270,  277,  272,  269,  284,
225  /*    10 */   287,  373,  349,  168,  155,  308,   39,  136,  138,    5,
226  /*    20 */   320,   12,  222,  185,  228,  219,   12,  126,    7,  134,
227  /*    30 */   303,  251,  246,  232,   48,   45,   44,   43,   26,   24,
228  /*    40 */   255,  250,   16,   27,  267,  286,   14,   10,  364,  307,
229  /*    50 */   298,  305,  313,   46,  185,  362,  168,  340,  365,    7,
230  /*    60 */   192,   12,  266,  268,  271,  289,  239,  245,  257,  260,
231  /*    70 */   254,  297,  353,  345,  192,  290,  302,  157,   13,  208,
232  /*    80 */   224,  237,  229,   72,  140,  119,  571,   91,  252,  282,
233  /*    90 */   291,  176,  363,  338,  273,   12,  327,  314,   13,  304,
234  /*   100 */    41,  237,   30,  230,  196,  259,  195,  175,   48,   45,
235  /*   110 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
236  /*   120 */    14,   10,  211,  318,   13,  147,  439,  237,  100,   34,
237  /*   130 */    13,   12,  439,  237,   30,  273,  266,  268,  271,  289,
238  /*   140 */   239,  245,  257,  260,  254,  297,  353,  345,  192,  192,
239  /*   150 */   302,  181,  148,    8,  224,  101,  229,   72,   13,  119,
240  /*   160 */     5,  237,  273,  299,  264,  350,  363,  338,  126,   12,
241  /*   170 */   327,  314,   46,  304,  214,  336,  293,  145,  181,  259,
242  /*   180 */   201,   12,   48,   45,   44,   43,   26,   24,  255,  250,
243  /*   190 */    16,   27,  267,  286,   14,   10,   13,    2,  309,  237,
244  /*   200 */    18,   46,  214,  441,   12,   19,  279,  130,  330,  441,
245  /*   210 */   266,  268,  271,  289,  239,  245,  257,  260,  254,  297,
246  /*   220 */   353,  345,  192,  328,  302,  342,  360,  372,  224,  112,
247  /*   230 */   229,   54,   12,  119,  127,   13,   46,  316,  237,  369,
248  /*   240 */   363,  338,   12,   12,  327,  314,   32,  304,  124,  154,
249  /*   250 */   233,  209,  311,   31,  170,  312,   48,   45,   44,   43,
250  /*   260 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
251  /*   270 */   192,  317,  315,    5,  435,  102,  367,   12,   12,  221,
252  /*   280 */    12,  126,  131,  293,  266,  268,  271,  289,  239,  245,
253  /*   290 */   257,  260,  254,  297,  353,  345,  304,  438,  355,  164,
254  /*   300 */   343,   29,   29,  438,   48,   45,   44,   43,   26,   24,
255  /*   310 */   255,  250,   16,   27,  267,  286,   14,   10,  339,  247,
256  /*   320 */   248,  436,  181,   33,    4,   40,  138,  436,  114,  220,
257  /*   330 */    46,  322,  266,  268,  271,  289,  239,  245,  257,  260,
258  /*   340 */   254,  297,  353,  345,  192,  302,  159,  167,  347,  224,
259  /*   350 */    13,  229,   72,  237,  119,    5,  273,   21,   22,  285,
260  /*   360 */   209,  363,  338,  126,  121,  327,  314,  259,  304,    5,
261  /*   370 */   181,   99,  231,  177,  312,  197,   29,  126,   48,   45,
262  /*   380 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
263  /*   390 */    14,   10,  192,  234,  326,  334,  306,  163,  156,  259,
264  /*   400 */    12,   12,   12,  192,  293,   28,  266,  268,  271,  289,
265  /*   410 */   239,  245,  257,  260,  254,  297,  353,  345,  435,  354,
266  /*   420 */    13,  181,  348,  205,   12,   12,   48,   45,   44,   43,
267  /*   430 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
268  /*   440 */     6,  241,  150,  280,    6,  325,  293,   12,  301,   12,
269  /*   450 */   210,   12,  273,  253,  266,  268,  271,  289,  239,  245,
270  /*   460 */   257,  260,  254,  297,  353,  345,  192,   38,  180,  165,
271  /*   470 */   152,   13,  122,   97,  237,  161,  324,  366,   12,  273,
272  /*   480 */   273,   46,   23,   21,   22,  273,  204,  238,  222,  173,
273  /*   490 */   228,  292,  111,   12,  133,  134,  181,   12,  246,  232,
274  /*   500 */    48,   45,   44,   43,   26,   24,  255,  250,   16,   27,
275  /*   510 */   267,  286,   14,   10,  256,  160,  172,  356,    3,   13,
276  /*   520 */    12,  329,  227,   12,  369,  273,  174,   12,  266,  268,
277  /*   530 */   271,  289,  239,  245,  257,  260,  254,  297,  353,  345,
278  /*   540 */   192,  180,  357,   37,  370,  137,  294,  162,  333,  166,
279  /*   550 */   192,  366,   12,  158,   12,  179,   23,  273,  303,  273,
280  /*   560 */   281,  358,  222,  273,  228,  274,   12,  346,  259,  134,
281  /*   570 */   259,  217,  246,  232,   48,   45,   44,   43,   26,   24,
282  /*   580 */   255,  250,   16,   27,  267,  286,   14,   10,  192,  149,
283  /*   590 */   368,   13,  215,  226,  207,   36,   11,  132,  138,  273,
284  /*   600 */   192,   98,  266,  268,  271,  289,  239,  245,  257,  260,
285  /*   610 */   254,  297,  353,  345,  303,  180,  359,   37,  370,  169,
286  /*   620 */   312,   12,   48,   45,   44,   43,   26,   24,  255,  250,
287  /*   630 */    16,   27,  267,  286,   14,   10,  121,  144,  216,  337,
288  /*   640 */    13,  361,  236,  194,  210,  116,  132,  273,   12,  120,
289  /*   650 */   266,  268,  271,  289,  239,  245,  257,  260,  254,  297,
290  /*   660 */   353,  345,  192,  302,  300,  105,  123,  224,   94,  229,
291  /*   670 */    55,   15,  119,  135,  129,  109,  192,  263,  303,  363,
292  /*   680 */   338,  303,  143,  327,  314,  259,  304,  303,  303,  171,
293  /*   690 */   335,  258,  273,  261,   90,  118,   48,   45,   44,   43,
294  /*   700 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
295  /*   710 */   192,   35,  323,  180,  311,  138,  153,  192,  113,  259,
296  /*   720 */   351,   20,   12,   96,  266,  268,  271,  289,  239,  245,
297  /*   730 */   257,  260,  254,  297,  353,  345,  303,  275,   25,   42,
298  /*   740 */   276,  212,   95,  352,   48,   45,   44,   43,   26,   24,
299  /*   750 */   255,  250,   16,   27,  267,  286,   14,   10,   93,  318,
300  /*   760 */   318,  103,  318,  265,  318,  318,  318,  318,  318,  318,
301  /*   770 */   318,  303,  266,  268,  271,  289,  239,  245,  257,  260,
302  /*   780 */   254,  297,  353,  345,  192,  318,  302,  104,  318,  318,
303  /*   790 */   224,  318,  229,   82,  318,  119,  318,  318,  318,  318,
304  /*   800 */   303,  318,  363,  338,  318,   12,  327,  314,  318,  304,
305  /*   810 */   318,  318,  318,  318,  318,  318,  318,  318,   48,   45,
306  /*   820 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
307  /*   830 */    14,   10,  192,  318,  318,  318,  318,  318,  318,  318,
308  /*   840 */   318,  318,  318,  318,  318,  318,  266,  268,  271,  289,
309  /*   850 */   239,  245,  257,  260,  254,  297,  353,  345,  318,  318,
310  /*   860 */   318,  318,  318,  318,  318,  318,   48,   45,   44,   43,
311  /*   870 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
312  /*   880 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
313  /*   890 */   318,  318,  318,  318,  266,  268,  271,  289,  239,  245,
314  /*   900 */   257,  260,  254,  297,  353,  345,  192,  371,  302,  318,
315  /*   910 */   318,  318,  224,  318,  229,   86,  318,  119,  318,  318,
316  /*   920 */   318,  178,  318,  318,  363,  338,  318,  318,  327,  314,
317  /*   930 */   318,  304,  318,  318,  318,  318,  318,  318,  318,  318,
318  /*   940 */    48,   45,   44,   43,   26,   24,  255,  250,   16,   27,
319  /*   950 */   267,  286,   14,   10,  192,  318,  318,  318,  318,  318,
320  /*   960 */   318,  318,  318,  318,  318,  318,  318,  318,  266,  268,
321  /*   970 */   271,  289,  239,  245,  257,  260,  254,  297,  353,  345,
322  /*   980 */   318,  318,  206,  318,  318,  318,  318,  318,   48,   45,
323  /*   990 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
324  /*  1000 */    14,   10,  192,  318,  318,  318,  318,  318,  318,  318,
325  /*  1010 */   318,  318,  318,  318,  318,  318,  266,  268,  271,  289,
326  /*  1020 */   239,  245,  257,  260,  254,  297,  353,  345,  318,  318,
327  /*  1030 */   318,  318,  318,  318,  318,  318,   48,   45,   44,   43,
328  /*  1040 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
329  /*  1050 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
330  /*  1060 */   318,  318,  318,  318,  266,  268,  271,  289,  239,  245,
331  /*  1070 */   257,  260,  254,  297,  353,  345,   48,   45,   44,   43,
332  /*  1080 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
333  /*  1090 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
334  /*  1100 */   318,  318,  318,  318,  266,  268,  271,  289,  239,  245,
335  /*  1110 */   257,  260,  254,  297,  353,  345,  318,  318,  318,  318,
336  /*  1120 */    39,  318,  115,  186,  318,  302,  222,  318,  228,  319,
337  /*  1130 */   318,  229,  318,  134,  119,  318,  246,  232,  223,  318,
338  /*  1140 */   318,   50,  321,  441,  318,  327,  314,  318,  304,  441,
339  /*  1150 */   318,  318,  318,  318,  318,    9,  225,  318,   47,   49,
340  /*  1160 */   242,  218,  331,  318,  318,   99,    1,  262,  318,  318,
341  /*  1170 */   318,   39,  318,  115,  199,  318,   46,  222,  318,  228,
342  /*  1180 */    92,  318,  318,  318,  134,  318,  318,  246,  232,  223,
343  /*  1190 */   318,  318,   50,  318,  318,  318,  318,  318,  302,  318,
344  /*  1200 */   318,  318,  193,  318,  229,   85,    9,  119,  318,   47,
345  /*  1210 */    49,  242,  218,  331,  363,  338,   99,    1,  327,  314,
346  /*  1220 */   318,  304,   39,  318,  115,  187,  318,  318,  222,  318,
347  /*  1230 */   228,   92,  200,  341,  318,  134,  318,  318,  246,  232,
348  /*  1240 */   223,  318,  318,   50,  318,  318,  318,  318,  318,  302,
349  /*  1250 */   318,  318,  318,  193,  318,  229,   85,    9,  119,  318,
350  /*  1260 */    47,   49,  242,  218,  331,  363,  338,   99,    1,  327,
351  /*  1270 */   314,  318,  304,   39,  318,  114,  199,  318,  318,  222,
352  /*  1280 */   318,  228,   92,  318,  344,  318,  134,  318,  318,  246,
353  /*  1290 */   232,  223,  318,  318,   50,  318,  318,  318,  318,  318,
354  /*  1300 */   302,  318,  318,  318,  224,  318,  229,   67,   17,  119,
355  /*  1310 */   318,   47,   49,  242,  218,  331,  363,  338,   99,    1,
356  /*  1320 */   327,  314,  318,  304,   39,  318,  115,  190,  318,  318,
357  /*  1330 */   222,  318,  228,   92,  318,  318,  318,  134,  318,  318,
358  /*  1340 */   246,  232,  223,  318,  318,   50,  318,  318,  318,  318,
359  /*  1350 */   318,  302,  318,  318,  318,  224,  318,  229,   68,    9,
360  /*  1360 */   119,  318,   47,   49,  242,  218,  331,  363,  338,   99,
361  /*  1370 */     1,  327,  314,  318,  304,   39,  318,  125,  199,  318,
362  /*  1380 */   318,  222,  318,  228,   92,  318,  318,  318,  134,  318,
363  /*  1390 */   318,  246,  232,  223,  318,  318,   50,  318,  318,  318,
364  /*  1400 */   318,  318,  302,  318,  318,  318,  224,  318,  229,   77,
365  /*  1410 */     9,  119,  318,   47,   49,  242,  218,  331,  363,  338,
366  /*  1420 */    99,    1,  327,  314,  318,  304,   39,  318,  128,   89,
367  /*  1430 */   318,  318,  222,  318,  228,   92,  318,  318,  318,  134,
368  /*  1440 */   318,  318,  246,  232,  223,  318,  318,   50,  318,  318,
369  /*  1450 */   318,  318,  318,  302,  318,  318,  318,  224,  318,  229,
370  /*  1460 */    61,    9,  119,  318,   47,   49,  242,  218,  331,  363,
371  /*  1470 */   338,   99,    1,  327,  314,  318,  304,   39,  318,  115,
372  /*  1480 */   182,  318,  318,  222,  318,  228,   92,  318,  318,  318,
373  /*  1490 */   134,  318,  318,  246,  232,  223,  318,  318,   50,  318,
374  /*  1500 */   318,  318,  318,  318,  302,  318,  318,  318,  224,  318,
375  /*  1510 */   229,   73,    9,  119,  318,   47,   49,  242,  218,  331,
376  /*  1520 */   363,  338,   99,    1,  327,  314,  318,  304,   39,  318,
377  /*  1530 */   115,  183,  318,  318,  222,  318,  228,   92,  318,  318,
378  /*  1540 */   318,  134,  318,  318,  246,  232,  191,  318,  318,   50,
379  /*  1550 */   318,  318,  318,  318,  318,  302,  318,  318,  318,  224,
380  /*  1560 */   318,  229,   63,    9,  119,  318,   47,   49,  242,  218,
381  /*  1570 */   331,  363,  338,   99,    1,  327,  314,  318,  304,   39,
382  /*  1580 */   318,  117,  199,  318,  318,  222,  318,  228,   92,  318,
383  /*  1590 */   318,  318,  134,  318,  318,  246,  232,  223,  318,  318,
384  /*  1600 */    50,  318,  318,  318,  318,  318,  302,  318,  318,  318,
385  /*  1610 */   224,  318,  229,   70,    9,  119,  318,   47,   49,  242,
386  /*  1620 */   218,  331,  363,  338,   99,    1,  327,  314,  318,  304,
387  /*  1630 */    39,  318,  114,  203,  318,  318,  222,  318,  228,   92,
388  /*  1640 */   318,  318,  318,  134,  318,  318,  246,  232,  223,  318,
389  /*  1650 */   318,   50,  318,  318,  318,  318,  318,  302,  318,  318,
390  /*  1660 */   318,  224,  318,  229,   74,   17,  119,  318,   47,   49,
391  /*  1670 */   242,  218,  331,  363,  338,   99,  318,  327,  314,  318,
392  /*  1680 */   304,   39,  318,  114,  199,  318,  318,  222,  318,  228,
393  /*  1690 */    92,  318,  318,  318,  134,  318,  318,  246,  232,  223,
394  /*  1700 */   482,  318,   50,  318,  318,  318,  482,  318,  482,  318,
395  /*  1710 */   482,  482,  318,  482,  151,  318,   17,  167,  482,   47,
396  /*  1720 */    49,  242,  218,  331,  273,  318,   99,   21,   22,  318,
397  /*  1730 */   318,  318,  318,  482,    5,  482,  318,  318,  318,  318,
398  /*  1740 */   181,   92,  126,  318,  318,  141,  482,  302,  167,  318,
399  /*  1750 */   318,  224,  318,  229,   81,  273,  119,  318,   21,   22,
400  /*  1760 */   482,  318,  318,  363,  338,  318,  318,  327,  314,  318,
401  /*  1770 */   304,  181,  302,  318,  318,  318,  224,  318,  229,   71,
402  /*  1780 */   318,  119,  318,  318,  318,  318,  318,  318,  363,  338,
403  /*  1790 */   318,  318,  327,  314,  302,  304,  318,  318,  224,  318,
404  /*  1800 */   229,   79,  318,  119,  318,  318,  318,  318,  318,  318,
405  /*  1810 */   363,  338,  318,  318,  327,  314,  302,  304,  318,  318,
406  /*  1820 */   108,  318,  106,   51,  318,  107,  318,  318,  318,  318,
407  /*  1830 */   318,  318,  363,  338,  302,  318,  327,  314,  224,  304,
408  /*  1840 */   229,   78,  318,  119,  318,  318,  318,  318,  318,  318,
409  /*  1850 */   363,  338,  192,  318,  327,  314,  318,  304,  318,  302,
410  /*  1860 */   318,  318,  318,  224,  318,  229,   64,  310,  119,  318,
411  /*  1870 */   318,  213,  318,   12,  318,  363,  338,  302,  318,  327,
412  /*  1880 */   314,  224,  304,  229,   62,  318,  119,  318,  318,  318,
413  /*  1890 */   318,  318,  318,  363,  338,  318,  318,  327,  314,  302,
414  /*  1900 */   304,    5,  318,  188,  318,  229,   84,  318,  119,  126,
415  /*  1910 */   318,  318,  318,  318,  318,  363,  338,  302,  318,  327,
416  /*  1920 */   314,  224,  304,  229,   80,  318,  119,  318,  318,  318,
417  /*  1930 */   318,  318,  318,  363,  338,  318,  318,  327,  314,  318,
418  /*  1940 */   304,  318,  302,  318,  318,  318,  224,  318,  229,   76,
419  /*  1950 */   318,  119,  318,  318,  318,  318,  318,  318,  363,  338,
420  /*  1960 */   302,  318,  327,  314,  224,  304,  229,   66,  318,  119,
421  /*  1970 */   318,  318,  318,  318,  318,  318,  363,  338,  318,  318,
422  /*  1980 */   327,  314,  302,  304,  318,  318,  224,  318,  229,   83,
423  /*  1990 */   318,  119,  318,  318,  318,  318,  318,  318,  363,  338,
424  /*  2000 */   302,  318,  327,  314,  224,  304,  229,   75,  318,  119,
425  /*  2010 */   318,  318,  318,  318,  318,  318,  363,  338,  318,  318,
426  /*  2020 */   327,  314,  318,  304,  318,  302,  318,  318,  318,  184,
427  /*  2030 */   318,  229,   58,  318,  119,  318,  318,  318,  318,  318,
428  /*  2040 */   318,  363,  338,  302,  318,  327,  314,  224,  304,  229,
429  /*  2050 */    87,  318,  119,  318,  318,  318,  318,  318,  318,  363,
430  /*  2060 */   338,  318,  318,  327,  314,  302,  304,  318,  318,  189,
431  /*  2070 */   318,  229,   69,  318,  119,  318,  318,  318,  318,  318,
432  /*  2080 */   318,  363,  338,  302,  318,  327,  314,  224,  304,  229,
433  /*  2090 */    59,  318,  119,  318,  318,  318,  318,  318,  318,  363,
434  /*  2100 */   338,  318,  318,  327,  314,  318,  304,  318,  302,  318,
435  /*  2110 */   318,  318,  224,  318,  229,   57,  318,  119,  318,  318,
436  /*  2120 */   318,  318,  318,  318,  363,  338,  302,  318,  327,  314,
437  /*  2130 */   108,  304,  110,   56,  318,  107,  318,  318,  318,  318,
438  /*  2140 */   318,  318,  363,  338,  318,  318,  327,  314,  302,  304,
439  /*  2150 */   318,  318,  224,  318,  198,   60,  318,  119,  318,  318,
440  /*  2160 */   318,  318,  318,  318,  363,  338,  302,  318,  327,  314,
441  /*  2170 */   224,  304,  229,   65,  318,  119,  318,  318,  318,  318,
442  /*  2180 */   318,  318,  363,  338,  318,  318,  327,  314,  318,  304,
443  /*  2190 */   318,  302,  318,  318,  318,  224,  318,  229,   52,  318,
444  /*  2200 */   119,  318,  318,  318,  318,  318,  318,  363,  338,  302,
445  /*  2210 */   318,  327,  314,  202,  304,  229,   53,  318,  119,  318,
446  /*  2220 */   318,  318,  318,  318,  318,  363,  338,  318,  318,  327,
447  /*  2230 */   314,  302,  304,  318,  318,  224,  318,  229,   88,  318,
448  /*  2240 */   119,  318,  318,  318,  318,  318,  318,  363,  338,  302,
449  /*  2250 */   318,  327,  314,  240,  304,  229,  302,  318,  119,  318,
450  /*  2260 */   283,  318,  229,  318,  318,  119,  244,  318,  318,  327,
451  /*  2270 */   314,  318,  304,  318,  302,  318,  327,  314,  235,  304,
452  /*  2280 */   229,  302,  318,  119,  318,  278,  318,  229,  318,  318,
453  /*  2290 */   119,  318,  318,  318,  327,  314,  318,  304,  318,  302,
454  /*  2300 */   318,  327,  314,  288,  304,  229,  318,  318,  119,  302,
455  /*  2310 */   318,  318,  318,  296,  318,  229,  318,  318,  119,  327,
456  /*  2320 */   314,  318,  304,  318,  318,  318,  318,  318,  318,  327,
457  /*  2330 */   314,  302,  304,  318,  318,  332,  318,  229,  302,  318,
458  /*  2340 */   119,  318,  243,  318,  229,  318,  318,  119,  318,  318,
459  /*  2350 */   142,  327,  314,  167,  304,  318,  318,  318,  327,  314,
460  /*  2360 */   273,  304,  318,   21,   22,  139,  318,  146,  167,  318,
461  /*  2370 */   167,  318,  318,  318,  318,  273,  181,  273,   21,   22,
462  /*  2380 */    21,   22,  318,  318,  318,  318,  318,  318,  318,  318,
463  /*  2390 */   318,  181,  318,  181,
464     );
465     static public $yy_lookahead = array(
466  /*     0 */     1,   81,   82,   83,    3,    4,    5,    6,    7,    8,
467  /*    10 */     9,   10,   11,   12,  106,   16,   15,   95,   20,   50,
468  /*    20 */    16,   22,   21,   56,   23,   56,   22,   58,   61,   28,
469  /*    30 */   108,   62,   31,   32,   35,   36,   37,   38,   39,   40,
470  /*    40 */    41,   42,   43,   44,   45,   46,   47,   48,    4,    5,
471  /*    50 */     6,    7,    8,   49,   56,   16,   12,   13,   14,   61,
472  /*    60 */     1,   22,   63,   64,   65,   66,   67,   68,   69,   70,
473  /*    70 */    71,   72,   73,   74,    1,   16,   82,  106,   15,   20,
474  /*    80 */    86,   18,   88,   89,   87,   91,   79,   80,   81,   82,
475  /*    90 */    83,  114,   98,   99,   97,   22,  102,  103,   15,  105,
476  /*   100 */    27,   18,   19,   92,   93,  108,  112,  114,   35,   36,
477  /*   110 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
478  /*   120 */    47,   48,   59,  110,   15,   87,   16,   18,   90,   19,
479  /*   130 */    15,   22,   22,   18,   19,   97,   63,   64,   65,   66,
480  /*   140 */    67,   68,   69,   70,   71,   72,   73,   74,    1,    1,
481  /*   150 */    82,  113,   87,   30,   86,   90,   88,   89,   15,   91,
482  /*   160 */    50,   18,   97,   16,   16,   33,   98,   99,   58,   22,
483  /*   170 */   102,  103,   49,  105,   59,   16,   25,  106,  113,  108,
484  /*   180 */   112,   22,   35,   36,   37,   38,   39,   40,   41,   42,
485  /*   190 */    43,   44,   45,   46,   47,   48,   15,   34,   16,   18,
486  /*   200 */    19,   49,   59,   16,   22,   15,   25,   17,   18,   22,
487  /*   210 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
488  /*   220 */    73,   74,    1,   33,   82,   62,   16,   76,   86,   17,
489  /*   230 */    88,   89,   22,   91,   92,   15,   49,   16,   18,   82,
490  /*   240 */    98,   99,   22,   22,  102,  103,   15,  105,   17,   18,
491  /*   250 */    30,   56,  107,   30,  109,  110,   35,   36,   37,   38,
492  /*   260 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
493  /*   270 */     1,   16,   16,   50,   16,  118,  119,   22,   22,   88,
494  /*   280 */    22,   58,   91,   25,   63,   64,   65,   66,   67,   68,
495  /*   290 */    69,   70,   71,   72,   73,   74,  105,   16,   83,   90,
496  /*   300 */    85,   34,   34,   22,   35,   36,   37,   38,   39,   40,
497  /*   310 */    41,   42,   43,   44,   45,   46,   47,   48,   51,   51,
498  /*   320 */    51,   16,  113,   19,   22,   19,   20,   22,   17,   18,
499  /*   330 */    49,   18,   63,   64,   65,   66,   67,   68,   69,   70,
500  /*   340 */    71,   72,   73,   74,    1,   82,   87,   90,   60,   86,
501  /*   350 */    15,   88,   89,   18,   91,   50,   97,  100,  101,   16,
502  /*   360 */    56,   98,   99,   58,   58,  102,  103,  108,  105,   50,
503  /*   370 */   113,   60,   59,  109,  110,  112,   34,   58,   35,   36,
504  /*   380 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
505  /*   390 */    47,   48,    1,   51,   16,   16,   16,  106,   90,  108,
506  /*   400 */    22,   22,   22,    1,   25,   15,   63,   64,   65,   66,
507  /*   410 */    67,   68,   69,   70,   71,   72,   73,   74,   16,   16,
508  /*   420 */    15,  113,   60,   18,   22,   22,   35,   36,   37,   38,
509  /*   430 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
510  /*   440 */    50,   16,   87,   16,   50,   16,   25,   22,   16,   22,
511  /*   450 */     2,   22,   97,   62,   63,   64,   65,   66,   67,   68,
512  /*   460 */    69,   70,   71,   72,   73,   74,    1,   19,  113,   87,
513  /*   470 */    87,   15,   17,   90,   18,   87,   18,   10,   22,   97,
514  /*   480 */    97,   49,   15,  100,  101,   97,   30,   16,   21,   24,
515  /*   490 */    23,   16,   18,   22,   22,   28,  113,   22,   31,   32,
516  /*   500 */    35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
517  /*   510 */    45,   46,   47,   48,   16,   87,   24,   16,   50,   15,
518  /*   520 */    22,   16,   18,   22,   82,   97,   34,   22,   63,   64,
519  /*   530 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
520  /*   540 */     1,  113,   75,   76,   77,   95,   16,   87,   16,   87,
521  /*   550 */     1,   10,   22,   87,   22,   16,   15,   97,  108,   97,
522  /*   560 */    16,  119,   21,   97,   23,   16,   22,   33,  108,   28,
523  /*   570 */   108,   18,   31,   32,   35,   36,   37,   38,   39,   40,
524  /*   580 */    41,   42,   43,   44,   45,   46,   47,   48,    1,   87,
525  /*   590 */   104,   15,   17,   18,   18,   26,    2,  111,   20,   97,
526  /*   600 */     1,   95,   63,   64,   65,   66,   67,   68,   69,   70,
527  /*   610 */    71,   72,   73,   74,  108,  113,   75,   76,   77,  109,
528  /*   620 */   110,   22,   35,   36,   37,   38,   39,   40,   41,   42,
529  /*   630 */    43,   44,   45,   46,   47,   48,   58,   87,   51,  104,
530  /*   640 */    15,   18,   16,   18,    2,   18,  111,   97,   22,   17,
531  /*   650 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
532  /*   660 */    73,   74,    1,   82,   18,   95,   17,   86,   95,   88,
533  /*   670 */    89,   52,   91,   96,   95,   95,    1,   16,  108,   98,
534  /*   680 */    99,  108,   87,  102,  103,  108,  105,  108,  108,   18,
535  /*   690 */    18,   16,   97,   62,   18,   17,   35,   36,   37,   38,
536  /*   700 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
537  /*   710 */     1,    2,   97,  113,  107,   20,  106,    1,   17,  108,
538  /*   720 */   111,   22,   22,   95,   63,   64,   65,   66,   67,   68,
539  /*   730 */    69,   70,   71,   72,   73,   74,  108,   92,   94,    2,
540  /*   740 */    22,   94,  106,   13,   35,   36,   37,   38,   39,   40,
541  /*   750 */    41,   42,   43,   44,   45,   46,   47,   48,   95,  120,
542  /*   760 */   120,   84,  120,  115,  120,  120,  120,  120,  120,  120,
543  /*   770 */   120,  108,   63,   64,   65,   66,   67,   68,   69,   70,
544  /*   780 */    71,   72,   73,   74,    1,  120,   82,   95,  120,  120,
545  /*   790 */    86,  120,   88,   89,  120,   91,  120,  120,  120,  120,
546  /*   800 */   108,  120,   98,   99,  120,   22,  102,  103,  120,  105,
547  /*   810 */   120,  120,  120,  120,  120,  120,  120,  120,   35,   36,
548  /*   820 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
549  /*   830 */    47,   48,    1,  120,  120,  120,  120,  120,  120,  120,
550  /*   840 */   120,  120,  120,  120,  120,  120,   63,   64,   65,   66,
551  /*   850 */    67,   68,   69,   70,   71,   72,   73,   74,  120,  120,
552  /*   860 */   120,  120,  120,  120,  120,  120,   35,   36,   37,   38,
553  /*   870 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
554  /*   880 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
555  /*   890 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
556  /*   900 */    69,   70,   71,   72,   73,   74,    1,   76,   82,  120,
557  /*   910 */   120,  120,   86,  120,   88,   89,  120,   91,  120,  120,
558  /*   920 */   120,   16,  120,  120,   98,   99,  120,  120,  102,  103,
559  /*   930 */   120,  105,  120,  120,  120,  120,  120,  120,  120,  120,
560  /*   940 */    35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
561  /*   950 */    45,   46,   47,   48,    1,  120,  120,  120,  120,  120,
562  /*   960 */   120,  120,  120,  120,  120,  120,  120,  120,   63,   64,
563  /*   970 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
564  /*   980 */   120,  120,   29,  120,  120,  120,  120,  120,   35,   36,
565  /*   990 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
566  /*  1000 */    47,   48,    1,  120,  120,  120,  120,  120,  120,  120,
567  /*  1010 */   120,  120,  120,  120,  120,  120,   63,   64,   65,   66,
568  /*  1020 */    67,   68,   69,   70,   71,   72,   73,   74,  120,  120,
569  /*  1030 */   120,  120,  120,  120,  120,  120,   35,   36,   37,   38,
570  /*  1040 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
571  /*  1050 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
572  /*  1060 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
573  /*  1070 */    69,   70,   71,   72,   73,   74,   35,   36,   37,   38,
574  /*  1080 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
575  /*  1090 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
576  /*  1100 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
577  /*  1110 */    69,   70,   71,   72,   73,   74,  120,  120,  120,  120,
578  /*  1120 */    15,  120,   17,   18,  120,   82,   21,  120,   23,   86,
579  /*  1130 */   120,   88,  120,   28,   91,  120,   31,   32,   33,  120,
580  /*  1140 */   120,   36,   99,   16,  120,  102,  103,  120,  105,   22,
581  /*  1150 */   120,  120,  120,  120,  120,   50,   29,  120,   53,   54,
582  /*  1160 */    55,   56,   57,  120,  120,   60,   61,   62,  120,  120,
583  /*  1170 */   120,   15,  120,   17,   18,  120,   49,   21,  120,   23,
584  /*  1180 */    75,  120,  120,  120,   28,  120,  120,   31,   32,   33,
585  /*  1190 */   120,  120,   36,  120,  120,  120,  120,  120,   82,  120,
586  /*  1200 */   120,  120,   86,  120,   88,   89,   50,   91,  120,   53,
587  /*  1210 */    54,   55,   56,   57,   98,   99,   60,   61,  102,  103,
588  /*  1220 */   120,  105,   15,  120,   17,   18,  120,  120,   21,  120,
589  /*  1230 */    23,   75,  116,  117,  120,   28,  120,  120,   31,   32,
590  /*  1240 */    33,  120,  120,   36,  120,  120,  120,  120,  120,   82,
591  /*  1250 */   120,  120,  120,   86,  120,   88,   89,   50,   91,  120,
592  /*  1260 */    53,   54,   55,   56,   57,   98,   99,   60,   61,  102,
593  /*  1270 */   103,  120,  105,   15,  120,   17,   18,  120,  120,   21,
594  /*  1280 */   120,   23,   75,  120,  117,  120,   28,  120,  120,   31,
595  /*  1290 */    32,   33,  120,  120,   36,  120,  120,  120,  120,  120,
596  /*  1300 */    82,  120,  120,  120,   86,  120,   88,   89,   50,   91,
597  /*  1310 */   120,   53,   54,   55,   56,   57,   98,   99,   60,   61,
598  /*  1320 */   102,  103,  120,  105,   15,  120,   17,   18,  120,  120,
599  /*  1330 */    21,  120,   23,   75,  120,  120,  120,   28,  120,  120,
600  /*  1340 */    31,   32,   33,  120,  120,   36,  120,  120,  120,  120,
601  /*  1350 */   120,   82,  120,  120,  120,   86,  120,   88,   89,   50,
602  /*  1360 */    91,  120,   53,   54,   55,   56,   57,   98,   99,   60,
603  /*  1370 */    61,  102,  103,  120,  105,   15,  120,   17,   18,  120,
604  /*  1380 */   120,   21,  120,   23,   75,  120,  120,  120,   28,  120,
605  /*  1390 */   120,   31,   32,   33,  120,  120,   36,  120,  120,  120,
606  /*  1400 */   120,  120,   82,  120,  120,  120,   86,  120,   88,   89,
607  /*  1410 */    50,   91,  120,   53,   54,   55,   56,   57,   98,   99,
608  /*  1420 */    60,   61,  102,  103,  120,  105,   15,  120,   17,   18,
609  /*  1430 */   120,  120,   21,  120,   23,   75,  120,  120,  120,   28,
610  /*  1440 */   120,  120,   31,   32,   33,  120,  120,   36,  120,  120,
611  /*  1450 */   120,  120,  120,   82,  120,  120,  120,   86,  120,   88,
612  /*  1460 */    89,   50,   91,  120,   53,   54,   55,   56,   57,   98,
613  /*  1470 */    99,   60,   61,  102,  103,  120,  105,   15,  120,   17,
614  /*  1480 */    18,  120,  120,   21,  120,   23,   75,  120,  120,  120,
615  /*  1490 */    28,  120,  120,   31,   32,   33,  120,  120,   36,  120,
616  /*  1500 */   120,  120,  120,  120,   82,  120,  120,  120,   86,  120,
617  /*  1510 */    88,   89,   50,   91,  120,   53,   54,   55,   56,   57,
618  /*  1520 */    98,   99,   60,   61,  102,  103,  120,  105,   15,  120,
619  /*  1530 */    17,   18,  120,  120,   21,  120,   23,   75,  120,  120,
620  /*  1540 */   120,   28,  120,  120,   31,   32,   33,  120,  120,   36,
621  /*  1550 */   120,  120,  120,  120,  120,   82,  120,  120,  120,   86,
622  /*  1560 */   120,   88,   89,   50,   91,  120,   53,   54,   55,   56,
623  /*  1570 */    57,   98,   99,   60,   61,  102,  103,  120,  105,   15,
624  /*  1580 */   120,   17,   18,  120,  120,   21,  120,   23,   75,  120,
625  /*  1590 */   120,  120,   28,  120,  120,   31,   32,   33,  120,  120,
626  /*  1600 */    36,  120,  120,  120,  120,  120,   82,  120,  120,  120,
627  /*  1610 */    86,  120,   88,   89,   50,   91,  120,   53,   54,   55,
628  /*  1620 */    56,   57,   98,   99,   60,   61,  102,  103,  120,  105,
629  /*  1630 */    15,  120,   17,   18,  120,  120,   21,  120,   23,   75,
630  /*  1640 */   120,  120,  120,   28,  120,  120,   31,   32,   33,  120,
631  /*  1650 */   120,   36,  120,  120,  120,  120,  120,   82,  120,  120,
632  /*  1660 */   120,   86,  120,   88,   89,   50,   91,  120,   53,   54,
633  /*  1670 */    55,   56,   57,   98,   99,   60,  120,  102,  103,  120,
634  /*  1680 */   105,   15,  120,   17,   18,  120,  120,   21,  120,   23,
635  /*  1690 */    75,  120,  120,  120,   28,  120,  120,   31,   32,   33,
636  /*  1700 */    16,  120,   36,  120,  120,  120,   22,  120,   24,  120,
637  /*  1710 */    26,   27,  120,   29,   87,  120,   50,   90,   34,   53,
638  /*  1720 */    54,   55,   56,   57,   97,  120,   60,  100,  101,  120,
639  /*  1730 */   120,  120,  120,   49,   50,   51,  120,  120,  120,  120,
640  /*  1740 */   113,   75,   58,  120,  120,   87,   62,   82,   90,  120,
641  /*  1750 */   120,   86,  120,   88,   89,   97,   91,  120,  100,  101,
642  /*  1760 */    76,  120,  120,   98,   99,  120,  120,  102,  103,  120,
643  /*  1770 */   105,  113,   82,  120,  120,  120,   86,  120,   88,   89,
644  /*  1780 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
645  /*  1790 */   120,  120,  102,  103,   82,  105,  120,  120,   86,  120,
646  /*  1800 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
647  /*  1810 */    98,   99,  120,  120,  102,  103,   82,  105,  120,  120,
648  /*  1820 */    86,  120,   88,   89,  120,   91,  120,  120,  120,  120,
649  /*  1830 */   120,  120,   98,   99,   82,  120,  102,  103,   86,  105,
650  /*  1840 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
651  /*  1850 */    98,   99,    1,  120,  102,  103,  120,  105,  120,   82,
652  /*  1860 */   120,  120,  120,   86,  120,   88,   89,   16,   91,  120,
653  /*  1870 */   120,   20,  120,   22,  120,   98,   99,   82,  120,  102,
654  /*  1880 */   103,   86,  105,   88,   89,  120,   91,  120,  120,  120,
655  /*  1890 */   120,  120,  120,   98,   99,  120,  120,  102,  103,   82,
656  /*  1900 */   105,   50,  120,   86,  120,   88,   89,  120,   91,   58,
657  /*  1910 */   120,  120,  120,  120,  120,   98,   99,   82,  120,  102,
658  /*  1920 */   103,   86,  105,   88,   89,  120,   91,  120,  120,  120,
659  /*  1930 */   120,  120,  120,   98,   99,  120,  120,  102,  103,  120,
660  /*  1940 */   105,  120,   82,  120,  120,  120,   86,  120,   88,   89,
661  /*  1950 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
662  /*  1960 */    82,  120,  102,  103,   86,  105,   88,   89,  120,   91,
663  /*  1970 */   120,  120,  120,  120,  120,  120,   98,   99,  120,  120,
664  /*  1980 */   102,  103,   82,  105,  120,  120,   86,  120,   88,   89,
665  /*  1990 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
666  /*  2000 */    82,  120,  102,  103,   86,  105,   88,   89,  120,   91,
667  /*  2010 */   120,  120,  120,  120,  120,  120,   98,   99,  120,  120,
668  /*  2020 */   102,  103,  120,  105,  120,   82,  120,  120,  120,   86,
669  /*  2030 */   120,   88,   89,  120,   91,  120,  120,  120,  120,  120,
670  /*  2040 */   120,   98,   99,   82,  120,  102,  103,   86,  105,   88,
671  /*  2050 */    89,  120,   91,  120,  120,  120,  120,  120,  120,   98,
672  /*  2060 */    99,  120,  120,  102,  103,   82,  105,  120,  120,   86,
673  /*  2070 */   120,   88,   89,  120,   91,  120,  120,  120,  120,  120,
674  /*  2080 */   120,   98,   99,   82,  120,  102,  103,   86,  105,   88,
675  /*  2090 */    89,  120,   91,  120,  120,  120,  120,  120,  120,   98,
676  /*  2100 */    99,  120,  120,  102,  103,  120,  105,  120,   82,  120,
677  /*  2110 */   120,  120,   86,  120,   88,   89,  120,   91,  120,  120,
678  /*  2120 */   120,  120,  120,  120,   98,   99,   82,  120,  102,  103,
679  /*  2130 */    86,  105,   88,   89,  120,   91,  120,  120,  120,  120,
680  /*  2140 */   120,  120,   98,   99,  120,  120,  102,  103,   82,  105,
681  /*  2150 */   120,  120,   86,  120,   88,   89,  120,   91,  120,  120,
682  /*  2160 */   120,  120,  120,  120,   98,   99,   82,  120,  102,  103,
683  /*  2170 */    86,  105,   88,   89,  120,   91,  120,  120,  120,  120,
684  /*  2180 */   120,  120,   98,   99,  120,  120,  102,  103,  120,  105,
685  /*  2190 */   120,   82,  120,  120,  120,   86,  120,   88,   89,  120,
686  /*  2200 */    91,  120,  120,  120,  120,  120,  120,   98,   99,   82,
687  /*  2210 */   120,  102,  103,   86,  105,   88,   89,  120,   91,  120,
688  /*  2220 */   120,  120,  120,  120,  120,   98,   99,  120,  120,  102,
689  /*  2230 */   103,   82,  105,  120,  120,   86,  120,   88,   89,  120,
690  /*  2240 */    91,  120,  120,  120,  120,  120,  120,   98,   99,   82,
691  /*  2250 */   120,  102,  103,   86,  105,   88,   82,  120,   91,  120,
692  /*  2260 */    86,  120,   88,  120,  120,   91,   99,  120,  120,  102,
693  /*  2270 */   103,  120,  105,  120,   82,  120,  102,  103,   86,  105,
694  /*  2280 */    88,   82,  120,   91,  120,   86,  120,   88,  120,  120,
695  /*  2290 */    91,  120,  120,  120,  102,  103,  120,  105,  120,   82,
696  /*  2300 */   120,  102,  103,   86,  105,   88,  120,  120,   91,   82,
697  /*  2310 */   120,  120,  120,   86,  120,   88,  120,  120,   91,  102,
698  /*  2320 */   103,  120,  105,  120,  120,  120,  120,  120,  120,  102,
699  /*  2330 */   103,   82,  105,  120,  120,   86,  120,   88,   82,  120,
700  /*  2340 */    91,  120,   86,  120,   88,  120,  120,   91,  120,  120,
701  /*  2350 */    87,  102,  103,   90,  105,  120,  120,  120,  102,  103,
702  /*  2360 */    97,  105,  120,  100,  101,   87,  120,   87,   90,  120,
703  /*  2370 */    90,  120,  120,  120,  120,   97,  113,   97,  100,  101,
704  /*  2380 */   100,  101,  120,  120,  120,  120,  120,  120,  120,  120,
705  /*  2390 */   120,  113,  120,  113,
706 );
707     const YY_SHIFT_USE_DFLT = -34;
708     const YY_SHIFT_MAX = 233;
709     static public $yy_shift_ofst = array(
710  /*     0 */     1, 1309, 1309, 1156, 1360, 1156, 1156, 1105, 1156, 1156,
711  /*    10 */  1156, 1462, 1513, 1156, 1156, 1564, 1156, 1156, 1156, 1156,
712  /*    20 */  1513, 1156, 1156, 1411, 1156, 1156, 1156, 1156, 1156, 1156,
713  /*    30 */  1156, 1156, 1156, 1156, 1207, 1156, 1156, 1156, 1156, 1411,
714  /*    40 */  1156, 1156, 1258, 1258, 1666, 1666, 1615, 1666, 1666, 1666,
715  /*    50 */  1666,  221,   73,  147,   -1,  783,  783,  783,  953,  905,
716  /*    60 */   831,  539,  709,  343,  269,  391,  661,  587,  465, 1001,
717  /*    70 */  1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
718  /*    80 */  1001, 1001, 1001, 1001, 1001, 1001, 1001, 1041, 1041, 1851,
719  /*    90 */   599,    1,  541,  456,  220,   -2,  109,  402,  109,  311,
720  /*   100 */   599,  599,  467,   44,  115,  181,  379,  306,    4,  143,
721  /*   110 */   258,   59,  335,  335,  335,  405,  675,  576,  335,  578,
722  /*   120 */   335,  575,  335,  335,  504,  405,  575,  626,  625,  335,
723  /*   130 */   335,  695,  695,  701,  699,  700,   63,   83,  231,  425,
724  /*   140 */   427,  475,  403,  471,  429,  -33,  256,  182,  159,   39,
725  /*   150 */   210,  380,  255,  -33,  390,  -33,  148,  -33,  532,  530,
726  /*   160 */   505,  501,  544,  -33,  549,  378,  498,  716,  730,  695,
727  /*   170 */   695,  468,  718,  718,  701,  737,  737,  695,  -34,  -34,
728  /*   180 */   -34,  -34, 1684,  110, 1127,  190,  -31,  305,  187,  281,
729  /*   190 */   223,  304,  313,  123,  448,  268,  492,  267,  151,  319,
730  /*   200 */   163,  342,  432,  319,  678,  642,  632,  594,  627,  132,
731  /*   210 */   623,  646,  649,  676,  672,  671,  619,  631,  534,  553,
732  /*   220 */   288,  362,  302,  195,  152,  212,  394,  468,  472,  421,
733  /*   230 */   569,  458,  474,  455,
734 );
735     const YY_REDUCE_USE_DFLT = -93;
736     const YY_REDUCE_MAX = 181;
737     static public $yy_reduce_ofst = array(
738  /*     0 */     7, 1116, 1167,  263,  142,   68,   -6, 2084, 1575, 1218,
739  /*    10 */  1320, 1961, 1817, 1473, 1835, 1795, 1752, 1777, 1860, 1878,
740  /*    20 */  1943, 1918, 1900, 1734, 1712, 1269,  704,  826, 1371, 1422,
741  /*    30 */  1690, 1665, 2001, 1524, 1983, 2149, 2109, 2066, 2127, 2044,
742  /*    40 */  2026,  581, 2167, 1043, 2249, 2199, 2192, 2174, 2256, 2227,
743  /*    50 */  2217,  383, 1658, 1627, 2263, 2278,  383, 2280,  257,  257,
744  /*    60 */   257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
745  /*    70 */   257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
746  /*    80 */   257,  257,  257,  257,  257,  257,  257,  257,  257,   38,
747  /*    90 */    65,  -80,  157,  259,  460,  145,   -3,  428,  462,  191,
748  /*   100 */   355,  502,  442,  215,  291,  577,  466,  264,  550,  291,
749  /*   110 */   466,  209,  573,  450,  580,  580,  308,  580,  628,  264,
750  /*   120 */   663,  486,  506,  570,  579,  692,  535,  595,  580,   71,
751  /*   130 */   -78,  264,  510,   11,  388,  382,  611,  611,  609,  615,
752  /*   140 */   615,  615,  615,  615,  615,  607,  615,  615,  615,  615,
753  /*   150 */   615,  615,  615,  607,  610,  607,  600,  607,  615,  615,
754  /*   160 */   615,  615,  615,  607,  600,  615,  615,  600,  677,   13,
755  /*   170 */    13,  636,  644,  647,  645,  648,  648,   13,  -29,  -92,
756  /*   180 */   -23,   -7,
757 );
758     static public $yyExpectedTokens = array(
759         /* 0 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 21, 23, 28, 31, 32, ),
760         /* 1 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
761         /* 2 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
762         /* 3 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
763         /* 4 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
764         /* 5 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
765         /* 6 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
766         /* 7 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 62, 75, ),
767         /* 8 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
768         /* 9 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
769         /* 10 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
770         /* 11 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
771         /* 12 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
772         /* 13 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
773         /* 14 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
774         /* 15 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
775         /* 16 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
776         /* 17 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
777         /* 18 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
778         /* 19 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
779         /* 20 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
780         /* 21 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
781         /* 22 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
782         /* 23 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
783         /* 24 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
784         /* 25 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
785         /* 26 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
786         /* 27 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
787         /* 28 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
788         /* 29 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
789         /* 30 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
790         /* 31 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
791         /* 32 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
792         /* 33 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
793         /* 34 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
794         /* 35 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
795         /* 36 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
796         /* 37 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
797         /* 38 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
798         /* 39 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
799         /* 40 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
800         /* 41 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
801         /* 42 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
802         /* 43 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
803         /* 44 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
804         /* 45 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
805         /* 46 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
806         /* 47 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
807         /* 48 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
808         /* 49 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
809         /* 50 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
810         /* 51 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
811         /* 52 */ array(1, 22, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
812         /* 53 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
813         /* 54 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
814         /* 55 */ array(1, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
815         /* 56 */ array(1, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
816         /* 57 */ array(1, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
817         /* 58 */ array(1, 29, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
818         /* 59 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
819         /* 60 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, ),
820         /* 61 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
821         /* 62 */ array(1, 2, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
822         /* 63 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
823         /* 64 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
824         /* 65 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
825         /* 66 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
826         /* 67 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
827         /* 68 */ array(1, 24, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
828         /* 69 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
829         /* 70 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
830         /* 71 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
831         /* 72 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
832         /* 73 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
833         /* 74 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
834         /* 75 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
835         /* 76 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
836         /* 77 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
837         /* 78 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
838         /* 79 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
839         /* 80 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
840         /* 81 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
841         /* 82 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
842         /* 83 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
843         /* 84 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
844         /* 85 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
845         /* 86 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
846         /* 87 */ array(35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
847         /* 88 */ array(35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
848         /* 89 */ array(1, 16, 20, 22, 50, 58, ),
849         /* 90 */ array(1, 22, ),
850         /* 91 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 21, 23, 28, 31, 32, ),
851         /* 92 */ array(10, 15, 21, 23, 28, 31, 32, 75, 76, 77, ),
852         /* 93 */ array(15, 18, 22, 30, ),
853         /* 94 */ array(15, 18, 22, 30, ),
854         /* 95 */ array(20, 56, 61, ),
855         /* 96 */ array(15, 18, 22, ),
856         /* 97 */ array(1, 16, 22, ),
857         /* 98 */ array(15, 18, 22, ),
858         /* 99 */ array(17, 18, 60, ),
859         /* 100 */ array(1, 22, ),
860         /* 101 */ array(1, 22, ),
861         /* 102 */ array(10, 15, 21, 23, 28, 31, 32, 75, 76, 77, ),
862         /* 103 */ array(4, 5, 6, 7, 8, 12, 13, 14, ),
863         /* 104 */ array(15, 18, 19, 59, ),
864         /* 105 */ array(15, 18, 19, 25, ),
865         /* 106 */ array(16, 22, 25, ),
866         /* 107 */ array(19, 20, 58, ),
867         /* 108 */ array(16, 22, 49, ),
868         /* 109 */ array(15, 18, 59, ),
869         /* 110 */ array(16, 22, 25, ),
870         /* 111 */ array(1, 16, 20, ),
871         /* 112 */ array(15, 18, ),
872         /* 113 */ array(15, 18, ),
873         /* 114 */ array(15, 18, ),
874         /* 115 */ array(15, 18, ),
875         /* 116 */ array(1, 16, ),
876         /* 117 */ array(15, 18, ),
877         /* 118 */ array(15, 18, ),
878         /* 119 */ array(20, 58, ),
879         /* 120 */ array(15, 18, ),
880         /* 121 */ array(17, 18, ),
881         /* 122 */ array(15, 18, ),
882         /* 123 */ array(15, 18, ),
883         /* 124 */ array(15, 18, ),
884         /* 125 */ array(15, 18, ),
885         /* 126 */ array(17, 18, ),
886         /* 127 */ array(16, 22, ),
887         /* 128 */ array(15, 18, ),
888         /* 129 */ array(15, 18, ),
889         /* 130 */ array(15, 18, ),
890         /* 131 */ array(20, ),
891         /* 132 */ array(20, ),
892         /* 133 */ array(17, ),
893         /* 134 */ array(22, ),
894         /* 135 */ array(22, ),
895         /* 136 */ array(15, 18, 59, ),
896         /* 137 */ array(15, 18, 19, ),
897         /* 138 */ array(15, 17, 18, ),
898         /* 139 */ array(16, 22, ),
899         /* 140 */ array(16, 22, ),
900         /* 141 */ array(16, 22, ),
901         /* 142 */ array(16, 22, ),
902         /* 143 */ array(16, 22, ),
903         /* 144 */ array(16, 22, ),
904         /* 145 */ array(56, 61, ),
905         /* 146 */ array(16, 22, ),
906         /* 147 */ array(16, 22, ),
907         /* 148 */ array(16, 22, ),
908         /* 149 */ array(16, 22, ),
909         /* 150 */ array(16, 22, ),
910         /* 151 */ array(16, 22, ),
911         /* 152 */ array(16, 22, ),
912         /* 153 */ array(56, 61, ),
913         /* 154 */ array(15, 50, ),
914         /* 155 */ array(56, 61, ),
915         /* 156 */ array(1, 16, ),
916         /* 157 */ array(56, 61, ),
917         /* 158 */ array(16, 22, ),
918         /* 159 */ array(16, 22, ),
919         /* 160 */ array(16, 22, ),
920         /* 161 */ array(16, 22, ),
921         /* 162 */ array(16, 22, ),
922         /* 163 */ array(56, 61, ),
923         /* 164 */ array(1, 16, ),
924         /* 165 */ array(16, 22, ),
925         /* 166 */ array(16, 22, ),
926         /* 167 */ array(1, ),
927         /* 168 */ array(13, ),
928         /* 169 */ array(20, ),
929         /* 170 */ array(20, ),
930         /* 171 */ array(50, ),
931         /* 172 */ array(22, ),
932         /* 173 */ array(22, ),
933         /* 174 */ array(17, ),
934         /* 175 */ array(2, ),
935         /* 176 */ array(2, ),
936         /* 177 */ array(20, ),
937         /* 178 */ array(),
938         /* 179 */ array(),
939         /* 180 */ array(),
940         /* 181 */ array(),
941         /* 182 */ array(16, 22, 24, 26, 27, 29, 34, 49, 50, 51, 58, 62, 76, ),
942         /* 183 */ array(16, 19, 22, 50, 58, ),
943         /* 184 */ array(16, 22, 29, 49, ),
944         /* 185 */ array(15, 17, 18, 33, ),
945         /* 186 */ array(50, 56, 58, 62, ),
946         /* 187 */ array(16, 22, 50, 58, ),
947         /* 188 */ array(16, 22, 49, ),
948         /* 189 */ array(16, 22, 49, ),
949         /* 190 */ array(30, 50, 58, ),
950         /* 191 */ array(19, 56, ),
951         /* 192 */ array(18, 59, ),
952         /* 193 */ array(30, 49, ),
953         /* 194 */ array(2, 19, ),
954         /* 195 */ array(34, 51, ),
955         /* 196 */ array(24, 34, ),
956         /* 197 */ array(34, 51, ),
957         /* 198 */ array(25, 76, ),
958         /* 199 */ array(50, 58, ),
959         /* 200 */ array(34, 62, ),
960         /* 201 */ array(34, 51, ),
961         /* 202 */ array(16, 49, ),
962         /* 203 */ array(50, 58, ),
963         /* 204 */ array(17, ),
964         /* 205 */ array(2, ),
965         /* 206 */ array(17, ),
966         /* 207 */ array(2, ),
967         /* 208 */ array(18, ),
968         /* 209 */ array(33, ),
969         /* 210 */ array(18, ),
970         /* 211 */ array(18, ),
971         /* 212 */ array(17, ),
972         /* 213 */ array(18, ),
973         /* 214 */ array(18, ),
974         /* 215 */ array(18, ),
975         /* 216 */ array(52, ),
976         /* 217 */ array(62, ),
977         /* 218 */ array(33, ),
978         /* 219 */ array(18, ),
979         /* 220 */ array(60, ),
980         /* 221 */ array(60, ),
981         /* 222 */ array(22, ),
982         /* 223 */ array(56, ),
983         /* 224 */ array(49, ),
984         /* 225 */ array(17, ),
985         /* 226 */ array(50, ),
986         /* 227 */ array(50, ),
987         /* 228 */ array(22, ),
988         /* 229 */ array(25, ),
989         /* 230 */ array(26, ),
990         /* 231 */ array(18, ),
991         /* 232 */ array(18, ),
992         /* 233 */ array(17, ),
993         /* 234 */ array(),
994         /* 235 */ array(),
995         /* 236 */ array(),
996         /* 237 */ array(),
997         /* 238 */ array(),
998         /* 239 */ array(),
999         /* 240 */ array(),
1000         /* 241 */ array(),
1001         /* 242 */ array(),
1002         /* 243 */ array(),
1003         /* 244 */ array(),
1004         /* 245 */ array(),
1005         /* 246 */ array(),
1006         /* 247 */ array(),
1007         /* 248 */ array(),
1008         /* 249 */ array(),
1009         /* 250 */ array(),
1010         /* 251 */ array(),
1011         /* 252 */ array(),
1012         /* 253 */ array(),
1013         /* 254 */ array(),
1014         /* 255 */ array(),
1015         /* 256 */ array(),
1016         /* 257 */ array(),
1017         /* 258 */ array(),
1018         /* 259 */ array(),
1019         /* 260 */ array(),
1020         /* 261 */ array(),
1021         /* 262 */ array(),
1022         /* 263 */ array(),
1023         /* 264 */ array(),
1024         /* 265 */ array(),
1025         /* 266 */ array(),
1026         /* 267 */ array(),
1027         /* 268 */ array(),
1028         /* 269 */ array(),
1029         /* 270 */ array(),
1030         /* 271 */ array(),
1031         /* 272 */ array(),
1032         /* 273 */ array(),
1033         /* 274 */ array(),
1034         /* 275 */ array(),
1035         /* 276 */ array(),
1036         /* 277 */ array(),
1037         /* 278 */ array(),
1038         /* 279 */ array(),
1039         /* 280 */ array(),
1040         /* 281 */ array(),
1041         /* 282 */ array(),
1042         /* 283 */ array(),
1043         /* 284 */ array(),
1044         /* 285 */ array(),
1045         /* 286 */ array(),
1046         /* 287 */ array(),
1047         /* 288 */ array(),
1048         /* 289 */ array(),
1049         /* 290 */ array(),
1050         /* 291 */ array(),
1051         /* 292 */ array(),
1052         /* 293 */ array(),
1053         /* 294 */ array(),
1054         /* 295 */ array(),
1055         /* 296 */ array(),
1056         /* 297 */ array(),
1057         /* 298 */ array(),
1058         /* 299 */ array(),
1059         /* 300 */ array(),
1060         /* 301 */ array(),
1061         /* 302 */ array(),
1062         /* 303 */ array(),
1063         /* 304 */ array(),
1064         /* 305 */ array(),
1065         /* 306 */ array(),
1066         /* 307 */ array(),
1067         /* 308 */ array(),
1068         /* 309 */ array(),
1069         /* 310 */ array(),
1070         /* 311 */ array(),
1071         /* 312 */ array(),
1072         /* 313 */ array(),
1073         /* 314 */ array(),
1074         /* 315 */ array(),
1075         /* 316 */ array(),
1076         /* 317 */ array(),
1077         /* 318 */ array(),
1078         /* 319 */ array(),
1079         /* 320 */ array(),
1080         /* 321 */ array(),
1081         /* 322 */ array(),
1082         /* 323 */ array(),
1083         /* 324 */ array(),
1084         /* 325 */ array(),
1085         /* 326 */ array(),
1086         /* 327 */ array(),
1087         /* 328 */ array(),
1088         /* 329 */ array(),
1089         /* 330 */ array(),
1090         /* 331 */ array(),
1091         /* 332 */ array(),
1092         /* 333 */ array(),
1093         /* 334 */ array(),
1094         /* 335 */ array(),
1095         /* 336 */ array(),
1096         /* 337 */ array(),
1097         /* 338 */ array(),
1098         /* 339 */ array(),
1099         /* 340 */ array(),
1100         /* 341 */ array(),
1101         /* 342 */ array(),
1102         /* 343 */ array(),
1103         /* 344 */ array(),
1104         /* 345 */ array(),
1105         /* 346 */ array(),
1106         /* 347 */ array(),
1107         /* 348 */ array(),
1108         /* 349 */ array(),
1109         /* 350 */ array(),
1110         /* 351 */ array(),
1111         /* 352 */ array(),
1112         /* 353 */ array(),
1113         /* 354 */ array(),
1114         /* 355 */ array(),
1115         /* 356 */ array(),
1116         /* 357 */ array(),
1117         /* 358 */ array(),
1118         /* 359 */ array(),
1119         /* 360 */ array(),
1120         /* 361 */ array(),
1121         /* 362 */ array(),
1122         /* 363 */ array(),
1123         /* 364 */ array(),
1124         /* 365 */ array(),
1125         /* 366 */ array(),
1126         /* 367 */ array(),
1127         /* 368 */ array(),
1128         /* 369 */ array(),
1129         /* 370 */ array(),
1130         /* 371 */ array(),
1131         /* 372 */ array(),
1132         /* 373 */ array(),
1133 );
1134     static public $yy_default = array(
1135  /*     0 */   377,  553,  570,  524,  570,  524,  524,  570,  570,  570,
1136  /*    10 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
1137  /*    20 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
1138  /*    30 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
1139  /*    40 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
1140  /*    50 */   570,  570,  435,  570,  570,  435,  435,  435,  440,  570,
1141  /*    60 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  437,
1142  /*    70 */   442,  445,  523,  522,  554,  454,  419,  467,  462,  459,
1143  /*    80 */   466,  555,  458,  457,  440,  556,  463,  470,  471,  482,
1144  /*    90 */   435,  374,  570,  435,  435,  536,  435,  453,  435,  570,
1145  /*   100 */   435,  435,  570,  570,  497,  570,  472,  490,  446,  497,
1146  /*   110 */   472,  570,  570,  570,  570,  570,  570,  570,  570,  490,
1147  /*   120 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  497,
1148  /*   130 */   570,  490,  533,  570,  435,  435,  498,  570,  570,  570,
1149  /*   140 */   570,  570,  570,  570,  570,  515,  570,  570,  570,  570,
1150  /*   150 */   570,  570,  570,  514,  497,  517,  570,  516,  570,  570,
1151  /*   160 */   570,  570,  570,  495,  570,  570,  570,  453,  392,  534,
1152  /*   170 */   537,  497,  569,  569,  570,  526,  525,  511,  497,  497,
1153  /*   180 */   530,  530,  448,  482,  446,  570,  482,  482,  446,  446,
1154  /*   190 */   482,  478,  570,  446,  509,  570,  570,  570,  472,  482,
1155  /*   200 */   570,  570,  446,  468,  570,  509,  570,  509,  570,  480,
1156  /*   210 */   570,  570,  570,  570,  570,  570,  484,  570,  570,  570,
1157  /*   220 */   570,  570,  570,  478,  446,  570,  535,  509,  570,  472,
1158  /*   230 */   443,  570,  570,  570,  519,  469,  416,  509,  417,  542,
1159  /*   240 */   531,  422,  477,  449,  532,  543,  428,  520,  484,  376,
1160  /*   250 */   461,  503,  375,  505,  546,  460,  425,  544,  431,  508,
1161  /*   260 */   545,  504,  506,  502,  432,  529,  538,  464,  539,  384,
1162  /*   270 */   381,  540,  383,  434,  430,  444,  568,  382,  450,  420,
1163  /*   280 */   427,  424,  378,  474,  385,  510,  465,  386,  473,  541,
1164  /*   290 */   429,  380,  421,  476,  426,  379,  475,  547,  398,  406,
1165  /*   300 */   499,  405,  489,  507,  492,  399,  407,  397,  414,  409,
1166  /*   310 */   410,  496,  512,  396,  486,  408,  565,  404,  513,  456,
1167  /*   320 */   400,  455,  528,  433,  527,  401,  418,  483,  501,  403,
1168  /*   330 */   500,  485,  451,  402,  564,  491,  411,  487,  452,  521,
1169  /*   340 */   390,  551,  550,  391,  552,  549,  481,  493,  494,  388,
1170  /*   350 */   479,  518,  389,  548,  415,  393,  423,  558,  559,  557,
1171  /*   360 */   412,  448,  413,  447,  395,  394,  567,  560,  488,  566,
1172  /*   370 */   563,  562,  561,  387,
1173 );
1174     const YYNOCODE = 121;
1175     const YYSTACKDEPTH = 100;
1176     const YYNSTATE = 374;
1177     const YYNRULE = 196;
1178     const YYERRORSYMBOL = 78;
1179     const YYERRSYMDT = 'yy0';
1180     const YYFALLBACK = 0;
1181     static public $yyFallback = array(
1182     );
1183     static function Trace($TraceFILE, $zTracePrompt)
1184     {
1185         if (!$TraceFILE) {
1186             $zTracePrompt = 0;
1187         } elseif (!$zTracePrompt) {
1188             $TraceFILE = 0;
1189         }
1190         self::$yyTraceFILE = $TraceFILE;
1191         self::$yyTracePrompt = $zTracePrompt;
1192     }
1194     static function PrintTrace()
1195     {
1196         self::$yyTraceFILE = fopen('php://output', 'w');
1197         self::$yyTracePrompt = '<br>';
1198     }
1200     static public $yyTraceFILE;
1201     static public $yyTracePrompt;
1202     public $yyidx;                    /* Index of top element in stack */
1203     public $yyerrcnt;                 /* Shifts left before out of the error */
1204     public $yystack = array();  /* The parser's stack */
1206     public $yyTokenName = array( 
1207   '$',             'VERT',          'COLON',         'COMMENT',     
1208   'PHPSTARTTAG',   'PHPENDTAG',     'ASPSTARTTAG',   'ASPENDTAG',   
1209   'FAKEPHPSTARTTAG',  'XMLTAG',        'OTHER',         'LINEBREAK',   
1210   'LITERALSTART',  'LITERALEND',    'LITERAL',       'LDEL',        
1211   'RDEL',          'DOLLAR',        'ID',            'EQUAL',       
1212   'PTR',           'LDELIF',        'SPACE',         'LDELFOR',     
1213   'SEMICOLON',     'INCDEC',        'TO',            'STEP',        
1214   'LDELFOREACH',   'AS',            'APTR',          'SMARTYBLOCKCHILD',
1215   'LDELSLASH',     'INTEGER',       'COMMA',         'MATH',        
1216   'UNIMATH',       'ANDSYM',        'ISIN',          'ISDIVBY',     
1217   'ISNOTDIVBY',    'ISEVEN',        'ISNOTEVEN',     'ISEVENBY',    
1218   'ISNOTEVENBY',   'ISODD',         'ISNOTODD',      'ISODDBY',     
1219   'ISNOTODDBY',    'INSTANCEOF',    'OPENP',         'CLOSEP',      
1220   'QMARK',         'NOT',           'TYPECAST',      'HEX',         
1221   'DOT',           'SINGLEQUOTESTRING',  'DOUBLECOLON',   'AT',          
1222   'HATCH',         'OPENB',         'CLOSEB',        'EQUALS',      
1223   'NOTEQUALS',     'GREATERTHAN',   'LESSTHAN',      'GREATEREQUAL',
1224   'LESSEQUAL',     'IDENTITY',      'NONEIDENTITY',  'MOD',         
1225   'LAND',          'LOR',           'LXOR',          'QUOTE',       
1226   'BACKTICK',      'DOLLARID',      'error',         'start',       
1227   'template',      'template_element',  'smartytag',     'literal',     
1228   'literal_elements',  'literal_element',  'value',         'attributes',  
1229   'variable',      'expr',          'modifierlist',  'varindexed',  
1230   'statement',     'statements',    'optspace',      'varvar',      
1231   'foraction',     'attribute',     'ternary',       'array',       
1232   'ifcond',        'lop',           'function',      'doublequoted_with_quotes',
1233   'static_class_access',  'object',        'arrayindex',    'indexdef',    
1234   'varvarele',     'objectchain',   'objectelement',  'method',      
1235   'params',        'modifier',      'modparameters',  'modparameter',
1236   'arrayelements',  'arrayelement',  'doublequoted',  'doublequotedcontent',
1237     );
1239     static public $yyRuleName = array(
1240  /*   0 */ "start ::= template",
1241  /*   1 */ "template ::= template_element",
1242  /*   2 */ "template ::= template template_element",
1243  /*   3 */ "template ::=",
1244  /*   4 */ "template_element ::= smartytag",
1245  /*   5 */ "template_element ::= COMMENT",
1246  /*   6 */ "template_element ::= literal",
1247  /*   7 */ "template_element ::= PHPSTARTTAG",
1248  /*   8 */ "template_element ::= PHPENDTAG",
1249  /*   9 */ "template_element ::= ASPSTARTTAG",
1250  /*  10 */ "template_element ::= ASPENDTAG",
1251  /*  11 */ "template_element ::= FAKEPHPSTARTTAG",
1252  /*  12 */ "template_element ::= XMLTAG",
1253  /*  13 */ "template_element ::= OTHER",
1254  /*  14 */ "template_element ::= LINEBREAK",
1255  /*  15 */ "literal ::= LITERALSTART LITERALEND",
1256  /*  16 */ "literal ::= LITERALSTART literal_elements LITERALEND",
1257  /*  17 */ "literal_elements ::= literal_elements literal_element",
1258  /*  18 */ "literal_elements ::=",
1259  /*  19 */ "literal_element ::= literal",
1260  /*  20 */ "literal_element ::= LITERAL",
1261  /*  21 */ "literal_element ::= PHPSTARTTAG",
1262  /*  22 */ "literal_element ::= FAKEPHPSTARTTAG",
1263  /*  23 */ "literal_element ::= PHPENDTAG",
1264  /*  24 */ "literal_element ::= ASPSTARTTAG",
1265  /*  25 */ "literal_element ::= ASPENDTAG",
1266  /*  26 */ "smartytag ::= LDEL value RDEL",
1267  /*  27 */ "smartytag ::= LDEL value attributes RDEL",
1268  /*  28 */ "smartytag ::= LDEL variable attributes RDEL",
1269  /*  29 */ "smartytag ::= LDEL expr modifierlist attributes RDEL",
1270  /*  30 */ "smartytag ::= LDEL expr attributes RDEL",
1271  /*  31 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL",
1272  /*  32 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL",
1273  /*  33 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL",
1274  /*  34 */ "smartytag ::= LDEL varindexed EQUAL expr attributes RDEL",
1275  /*  35 */ "smartytag ::= LDEL ID attributes RDEL",
1276  /*  36 */ "smartytag ::= LDEL ID RDEL",
1277  /*  37 */ "smartytag ::= LDEL ID PTR ID attributes RDEL",
1278  /*  38 */ "smartytag ::= LDEL ID modifierlist attributes RDEL",
1279  /*  39 */ "smartytag ::= LDEL ID PTR ID modifierlist attributes RDEL",
1280  /*  40 */ "smartytag ::= LDELIF SPACE expr RDEL",
1281  /*  41 */ "smartytag ::= LDELIF SPACE expr attributes RDEL",
1282  /*  42 */ "smartytag ::= LDELIF SPACE statement RDEL",
1283  /*  43 */ "smartytag ::= LDELIF SPACE statement attributes RDEL",
1284  /*  44 */ "smartytag ::= LDELFOR SPACE statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes RDEL",
1285  /*  45 */ "foraction ::= EQUAL expr",
1286  /*  46 */ "foraction ::= INCDEC",
1287  /*  47 */ "smartytag ::= LDELFOR SPACE statement TO expr attributes RDEL",
1288  /*  48 */ "smartytag ::= LDELFOR SPACE statement TO expr STEP expr attributes RDEL",
1289  /*  49 */ "smartytag ::= LDELFOREACH attributes RDEL",
1290  /*  50 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes RDEL",
1291  /*  51 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
1292  /*  52 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes RDEL",
1293  /*  53 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
1294  /*  54 */ "smartytag ::= SMARTYBLOCKCHILD",
1295  /*  55 */ "smartytag ::= LDELSLASH ID RDEL",
1296  /*  56 */ "smartytag ::= LDELSLASH ID modifierlist RDEL",
1297  /*  57 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",
1298  /*  58 */ "smartytag ::= LDELSLASH ID PTR ID modifierlist RDEL",
1299  /*  59 */ "attributes ::= attributes attribute",
1300  /*  60 */ "attributes ::= attribute",
1301  /*  61 */ "attributes ::=",
1302  /*  62 */ "attribute ::= SPACE ID EQUAL ID",
1303  /*  63 */ "attribute ::= SPACE ID EQUAL expr",
1304  /*  64 */ "attribute ::= SPACE ID EQUAL value",
1305  /*  65 */ "attribute ::= SPACE ID",
1306  /*  66 */ "attribute ::= SPACE expr",
1307  /*  67 */ "attribute ::= SPACE value",
1308  /*  68 */ "attribute ::= SPACE INTEGER EQUAL expr",
1309  /*  69 */ "statements ::= statement",
1310  /*  70 */ "statements ::= statements COMMA statement",
1311  /*  71 */ "statement ::= DOLLAR varvar EQUAL expr",
1312  /*  72 */ "expr ::= value",
1313  /*  73 */ "expr ::= ternary",
1314  /*  74 */ "expr ::= DOLLAR ID COLON ID",
1315  /*  75 */ "expr ::= expr MATH value",
1316  /*  76 */ "expr ::= expr UNIMATH value",
1317  /*  77 */ "expr ::= expr ANDSYM value",
1318  /*  78 */ "expr ::= array",
1319  /*  79 */ "expr ::= expr modifierlist",
1320  /*  80 */ "expr ::= expr ifcond expr",
1321  /*  81 */ "expr ::= expr ISIN array",
1322  /*  82 */ "expr ::= expr ISIN value",
1323  /*  83 */ "expr ::= expr lop expr",
1324  /*  84 */ "expr ::= expr ISDIVBY expr",
1325  /*  85 */ "expr ::= expr ISNOTDIVBY expr",
1326  /*  86 */ "expr ::= expr ISEVEN",
1327  /*  87 */ "expr ::= expr ISNOTEVEN",
1328  /*  88 */ "expr ::= expr ISEVENBY expr",
1329  /*  89 */ "expr ::= expr ISNOTEVENBY expr",
1330  /*  90 */ "expr ::= expr ISODD",
1331  /*  91 */ "expr ::= expr ISNOTODD",
1332  /*  92 */ "expr ::= expr ISODDBY expr",
1333  /*  93 */ "expr ::= expr ISNOTODDBY expr",
1334  /*  94 */ "expr ::= value INSTANCEOF ID",
1335  /*  95 */ "expr ::= value INSTANCEOF value",
1336  /*  96 */ "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr",
1337  /*  97 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
1338  /*  98 */ "value ::= variable",
1339  /*  99 */ "value ::= UNIMATH value",
1340  /* 100 */ "value ::= NOT value",
1341  /* 101 */ "value ::= TYPECAST value",
1342  /* 102 */ "value ::= variable INCDEC",
1343  /* 103 */ "value ::= HEX",
1344  /* 104 */ "value ::= INTEGER",
1345  /* 105 */ "value ::= INTEGER DOT INTEGER",
1346  /* 106 */ "value ::= INTEGER DOT",
1347  /* 107 */ "value ::= DOT INTEGER",
1348  /* 108 */ "value ::= ID",
1349  /* 109 */ "value ::= function",
1350  /* 110 */ "value ::= OPENP expr CLOSEP",
1351  /* 111 */ "value ::= SINGLEQUOTESTRING",
1352  /* 112 */ "value ::= doublequoted_with_quotes",
1353  /* 113 */ "value ::= ID DOUBLECOLON static_class_access",
1354  /* 114 */ "value ::= varindexed DOUBLECOLON static_class_access",
1355  /* 115 */ "value ::= smartytag",
1356  /* 116 */ "variable ::= varindexed",
1357  /* 117 */ "variable ::= DOLLAR varvar AT ID",
1358  /* 118 */ "variable ::= object",
1359  /* 119 */ "variable ::= HATCH ID HATCH",
1360  /* 120 */ "variable ::= HATCH variable HATCH",
1361  /* 121 */ "varindexed ::= DOLLAR varvar arrayindex",
1362  /* 122 */ "arrayindex ::= arrayindex indexdef",
1363  /* 123 */ "arrayindex ::=",
1364  /* 124 */ "indexdef ::= DOT DOLLAR varvar",
1365  /* 125 */ "indexdef ::= DOT DOLLAR varvar AT ID",
1366  /* 126 */ "indexdef ::= DOT ID",
1367  /* 127 */ "indexdef ::= DOT INTEGER",
1368  /* 128 */ "indexdef ::= DOT LDEL expr RDEL",
1369  /* 129 */ "indexdef ::= OPENB ID CLOSEB",
1370  /* 130 */ "indexdef ::= OPENB ID DOT ID CLOSEB",
1371  /* 131 */ "indexdef ::= OPENB expr CLOSEB",
1372  /* 132 */ "indexdef ::= OPENB CLOSEB",
1373  /* 133 */ "varvar ::= varvarele",
1374  /* 134 */ "varvar ::= varvar varvarele",
1375  /* 135 */ "varvarele ::= ID",
1376  /* 136 */ "varvarele ::= LDEL expr RDEL",
1377  /* 137 */ "object ::= varindexed objectchain",
1378  /* 138 */ "objectchain ::= objectelement",
1379  /* 139 */ "objectchain ::= objectchain objectelement",
1380  /* 140 */ "objectelement ::= PTR ID arrayindex",
1381  /* 141 */ "objectelement ::= PTR DOLLAR varvar arrayindex",
1382  /* 142 */ "objectelement ::= PTR LDEL expr RDEL arrayindex",
1383  /* 143 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex",
1384  /* 144 */ "objectelement ::= PTR method",
1385  /* 145 */ "function ::= ID OPENP params CLOSEP",
1386  /* 146 */ "method ::= ID OPENP params CLOSEP",
1387  /* 147 */ "method ::= DOLLAR ID OPENP params CLOSEP",
1388  /* 148 */ "params ::= params COMMA expr",
1389  /* 149 */ "params ::= expr",
1390  /* 150 */ "params ::=",
1391  /* 151 */ "modifierlist ::= modifierlist modifier modparameters",
1392  /* 152 */ "modifierlist ::= modifier modparameters",
1393  /* 153 */ "modifier ::= VERT AT ID",
1394  /* 154 */ "modifier ::= VERT ID",
1395  /* 155 */ "modparameters ::= modparameters modparameter",
1396  /* 156 */ "modparameters ::=",
1397  /* 157 */ "modparameter ::= COLON value",
1398  /* 158 */ "modparameter ::= COLON array",
1399  /* 159 */ "static_class_access ::= method",
1400  /* 160 */ "static_class_access ::= method objectchain",
1401  /* 161 */ "static_class_access ::= ID",
1402  /* 162 */ "static_class_access ::= DOLLAR ID arrayindex",
1403  /* 163 */ "static_class_access ::= DOLLAR ID arrayindex objectchain",
1404  /* 164 */ "ifcond ::= EQUALS",
1405  /* 165 */ "ifcond ::= NOTEQUALS",
1406  /* 166 */ "ifcond ::= GREATERTHAN",
1407  /* 167 */ "ifcond ::= LESSTHAN",
1408  /* 168 */ "ifcond ::= GREATEREQUAL",
1409  /* 169 */ "ifcond ::= LESSEQUAL",
1410  /* 170 */ "ifcond ::= IDENTITY",
1411  /* 171 */ "ifcond ::= NONEIDENTITY",
1412  /* 172 */ "ifcond ::= MOD",
1413  /* 173 */ "lop ::= LAND",
1414  /* 174 */ "lop ::= LOR",
1415  /* 175 */ "lop ::= LXOR",
1416  /* 176 */ "array ::= OPENB arrayelements CLOSEB",
1417  /* 177 */ "arrayelements ::= arrayelement",
1418  /* 178 */ "arrayelements ::= arrayelements COMMA arrayelement",
1419  /* 179 */ "arrayelements ::=",
1420  /* 180 */ "arrayelement ::= value APTR expr",
1421  /* 181 */ "arrayelement ::= ID APTR expr",
1422  /* 182 */ "arrayelement ::= expr",
1423  /* 183 */ "doublequoted_with_quotes ::= QUOTE QUOTE",
1424  /* 184 */ "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",
1425  /* 185 */ "doublequoted ::= doublequoted doublequotedcontent",
1426  /* 186 */ "doublequoted ::= doublequotedcontent",
1427  /* 187 */ "doublequotedcontent ::= BACKTICK variable BACKTICK",
1428  /* 188 */ "doublequotedcontent ::= BACKTICK expr BACKTICK",
1429  /* 189 */ "doublequotedcontent ::= DOLLARID",
1430  /* 190 */ "doublequotedcontent ::= LDEL variable RDEL",
1431  /* 191 */ "doublequotedcontent ::= LDEL expr RDEL",
1432  /* 192 */ "doublequotedcontent ::= smartytag",
1433  /* 193 */ "doublequotedcontent ::= OTHER",
1434  /* 194 */ "optspace ::= SPACE",
1435  /* 195 */ "optspace ::=",
1436     );
1438     function tokenName($tokenType)
1439     {
1440         if ($tokenType === 0) {
1441             return 'End of Input';
1442         }
1443         if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
1444             return $this->yyTokenName[$tokenType];
1445         } else {
1446             return "Unknown";
1447         }
1448     }
1450     static function yy_destructor($yymajor, $yypminor)
1451     {
1452         switch ($yymajor) {
1453             default:  break;   /* If no destructor action specified: do nothing */
1454         }
1455     }
1457     function yy_pop_parser_stack()
1458     {
1459         if (!count($this->yystack)) {
1460             return;
1461         }
1462         $yytos = array_pop($this->yystack);
1463         if (self::$yyTraceFILE && $this->yyidx >= 0) {
1464             fwrite(self::$yyTraceFILE,
1465                 self::$yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
1466                     "\n");
1467         }
1468         $yymajor = $yytos->major;
1469         self::yy_destructor($yymajor, $yytos->minor);
1470         $this->yyidx--;
1471         return $yymajor;
1472     }
1474     function __destruct()
1475     {
1476         while ($this->yystack !== Array()) {
1477             $this->yy_pop_parser_stack();
1478         }
1479         if (is_resource(self::$yyTraceFILE)) {
1480             fclose(self::$yyTraceFILE);
1481         }
1482     }
1484     function yy_get_expected_tokens($token)
1485     {
1486         $state = $this->yystack[$this->yyidx]->stateno;
1487         $expected = self::$yyExpectedTokens[$state];
1488         if (in_array($token, self::$yyExpectedTokens[$state], true)) {
1489             return $expected;
1490         }
1491         $stack = $this->yystack;
1492         $yyidx = $this->yyidx;
1493         do {
1494             $yyact = $this->yy_find_shift_action($token);
1495             if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1496                 // reduce action
1497                 $done = 0;
1498                 do {
1499                     if ($done++ == 100) {
1500                         $this->yyidx = $yyidx;
1501                         $this->yystack = $stack;
1502                         // too much recursion prevents proper detection
1503                         // so give up
1504                         return array_unique($expected);
1505                     }
1506                     $yyruleno = $yyact - self::YYNSTATE;
1507                     $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
1508                     $nextstate = $this->yy_find_reduce_action(
1509                         $this->yystack[$this->yyidx]->stateno,
1510                         self::$yyRuleInfo[$yyruleno]['lhs']);
1511                     if (isset(self::$yyExpectedTokens[$nextstate])) {
1512                         $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
1513                             if (in_array($token,
1514                                   self::$yyExpectedTokens[$nextstate], true)) {
1515                             $this->yyidx = $yyidx;
1516                             $this->yystack = $stack;
1517                             return array_unique($expected);
1518                         }
1519                     }
1520                     if ($nextstate < self::YYNSTATE) {
1521                         // we need to shift a non-terminal
1522                         $this->yyidx++;
1523                         $x = new TP_yyStackEntry;
1524                         $x->stateno = $nextstate;
1525                         $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
1526                         $this->yystack[$this->yyidx] = $x;
1527                         continue 2;
1528                     } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
1529                         $this->yyidx = $yyidx;
1530                         $this->yystack = $stack;
1531                         // the last token was just ignored, we can't accept
1532                         // by ignoring input, this is in essence ignoring a
1533                         // syntax error!
1534                         return array_unique($expected);
1535                     } elseif ($nextstate === self::YY_NO_ACTION) {
1536                         $this->yyidx = $yyidx;
1537                         $this->yystack = $stack;
1538                         // input accepted, but not shifted (I guess)
1539                         return $expected;
1540                     } else {
1541                         $yyact = $nextstate;
1542                     }
1543                 } while (true);
1544             }
1545             break;
1546         } while (true);
1547         $this->yyidx = $yyidx;
1548         $this->yystack = $stack;
1549         return array_unique($expected);
1550     }
1552     function yy_is_expected_token($token)
1553     {
1554         if ($token === 0) {
1555             return true; // 0 is not part of this
1556         }
1557         $state = $this->yystack[$this->yyidx]->stateno;
1558         if (in_array($token, self::$yyExpectedTokens[$state], true)) {
1559             return true;
1560         }
1561         $stack = $this->yystack;
1562         $yyidx = $this->yyidx;
1563         do {
1564             $yyact = $this->yy_find_shift_action($token);
1565             if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
1566                 // reduce action
1567                 $done = 0;
1568                 do {
1569                     if ($done++ == 100) {
1570                         $this->yyidx = $yyidx;
1571                         $this->yystack = $stack;
1572                         // too much recursion prevents proper detection
1573                         // so give up
1574                         return true;
1575                     }
1576                     $yyruleno = $yyact - self::YYNSTATE;
1577                     $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
1578                     $nextstate = $this->yy_find_reduce_action(
1579                         $this->yystack[$this->yyidx]->stateno,
1580                         self::$yyRuleInfo[$yyruleno]['lhs']);
1581                     if (isset(self::$yyExpectedTokens[$nextstate]) &&
1582                           in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
1583                         $this->yyidx = $yyidx;
1584                         $this->yystack = $stack;
1585                         return true;
1586                     }
1587                     if ($nextstate < self::YYNSTATE) {
1588                         // we need to shift a non-terminal
1589                         $this->yyidx++;
1590                         $x = new TP_yyStackEntry;
1591                         $x->stateno = $nextstate;
1592                         $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
1593                         $this->yystack[$this->yyidx] = $x;
1594                         continue 2;
1595                     } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
1596                         $this->yyidx = $yyidx;
1597                         $this->yystack = $stack;
1598                         if (!$token) {
1599                             // end of input: this is valid
1600                             return true;
1601                         }
1602                         // the last token was just ignored, we can't accept
1603                         // by ignoring input, this is in essence ignoring a
1604                         // syntax error!
1605                         return false;
1606                     } elseif ($nextstate === self::YY_NO_ACTION) {
1607                         $this->yyidx = $yyidx;
1608                         $this->yystack = $stack;
1609                         // input accepted, but not shifted (I guess)
1610                         return true;
1611                     } else {
1612                         $yyact = $nextstate;
1613                     }
1614                 } while (true);
1615             }
1616             break;
1617         } while (true);
1618         $this->yyidx = $yyidx;
1619         $this->yystack = $stack;
1620         return true;
1621     }
1623    function yy_find_shift_action($iLookAhead)
1624     {
1625         $stateno = $this->yystack[$this->yyidx]->stateno;
1626      
1627         /* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
1628         if (!isset(self::$yy_shift_ofst[$stateno])) {
1629             // no shift actions
1630             return self::$yy_default[$stateno];
1631         }
1632         $i = self::$yy_shift_ofst[$stateno];
1633         if ($i === self::YY_SHIFT_USE_DFLT) {
1634             return self::$yy_default[$stateno];
1635         }
1636         if ($iLookAhead == self::YYNOCODE) {
1637             return self::YY_NO_ACTION;
1638         }
1639         $i += $iLookAhead;
1640         if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
1641               self::$yy_lookahead[$i] != $iLookAhead) {
1642             if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
1643                    && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
1644                 if (self::$yyTraceFILE) {
1645                     fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " .
1646                         $this->yyTokenName[$iLookAhead] . " => " .
1647                         $this->yyTokenName[$iFallback] . "\n");
1648                 }
1649                 return $this->yy_find_shift_action($iFallback);
1650             }
1651             return self::$yy_default[$stateno];
1652         } else {
1653             return self::$yy_action[$i];
1654         }
1655     }
1657     function yy_find_reduce_action($stateno, $iLookAhead)
1658     {
1659         /* $stateno = $this->yystack[$this->yyidx]->stateno; */
1661         if (!isset(self::$yy_reduce_ofst[$stateno])) {
1662             return self::$yy_default[$stateno];
1663         }
1664         $i = self::$yy_reduce_ofst[$stateno];
1665         if ($i == self::YY_REDUCE_USE_DFLT) {
1666             return self::$yy_default[$stateno];
1667         }
1668         if ($iLookAhead == self::YYNOCODE) {
1669             return self::YY_NO_ACTION;
1670         }
1671         $i += $iLookAhead;
1672         if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
1673               self::$yy_lookahead[$i] != $iLookAhead) {
1674             return self::$yy_default[$stateno];
1675         } else {
1676             return self::$yy_action[$i];
1677         }
1678     }
1680     function yy_shift($yyNewState, $yyMajor, $yypMinor)
1681     {
1682         $this->yyidx++;
1683         if ($this->yyidx >= self::YYSTACKDEPTH) {
1684             $this->yyidx--;
1685             if (self::$yyTraceFILE) {
1686                 fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt);
1687             }
1688             while ($this->yyidx >= 0) {
1689                 $this->yy_pop_parser_stack();
1690             }
1691 #line 84 "smarty_internal_templateparser.y"
1693     $this->internalError = true;
1694     $this->compiler->trigger_template_error("Stack overflow in template parser");
1695 #line 1691 "smarty_internal_templateparser.php"
1696             return;
1697         }
1698         $yytos = new TP_yyStackEntry;
1699         $yytos->stateno = $yyNewState;
1700         $yytos->major = $yyMajor;
1701         $yytos->minor = $yypMinor;
1702         array_push($this->yystack, $yytos);
1703         if (self::$yyTraceFILE && $this->yyidx > 0) {
1704             fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt,
1705                 $yyNewState);
1706             fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt);
1707             for($i = 1; $i <= $this->yyidx; $i++) {
1708                 fprintf(self::$yyTraceFILE, " %s",
1709                     $this->yyTokenName[$this->yystack[$i]->major]);
1710             }
1711             fwrite(self::$yyTraceFILE,"\n");
1712         }
1713     }
1715     static public $yyRuleInfo = array(
1716   array( 'lhs' => 79, 'rhs' => 1 ),
1717   array( 'lhs' => 80, 'rhs' => 1 ),
1718   array( 'lhs' => 80, 'rhs' => 2 ),
1719   array( 'lhs' => 80, 'rhs' => 0 ),
1720   array( 'lhs' => 81, 'rhs' => 1 ),
1721   array( 'lhs' => 81, 'rhs' => 1 ),
1722   array( 'lhs' => 81, 'rhs' => 1 ),
1723   array( 'lhs' => 81, 'rhs' => 1 ),
1724   array( 'lhs' => 81, 'rhs' => 1 ),
1725   array( 'lhs' => 81, 'rhs' => 1 ),
1726   array( 'lhs' => 81, 'rhs' => 1 ),
1727   array( 'lhs' => 81, 'rhs' => 1 ),
1728   array( 'lhs' => 81, 'rhs' => 1 ),
1729   array( 'lhs' => 81, 'rhs' => 1 ),
1730   array( 'lhs' => 81, 'rhs' => 1 ),
1731   array( 'lhs' => 83, 'rhs' => 2 ),
1732   array( 'lhs' => 83, 'rhs' => 3 ),
1733   array( 'lhs' => 84, 'rhs' => 2 ),
1734   array( 'lhs' => 84, 'rhs' => 0 ),
1735   array( 'lhs' => 85, 'rhs' => 1 ),
1736   array( 'lhs' => 85, 'rhs' => 1 ),
1737   array( 'lhs' => 85, 'rhs' => 1 ),
1738   array( 'lhs' => 85, 'rhs' => 1 ),
1739   array( 'lhs' => 85, 'rhs' => 1 ),
1740   array( 'lhs' => 85, 'rhs' => 1 ),
1741   array( 'lhs' => 85, 'rhs' => 1 ),
1742   array( 'lhs' => 82, 'rhs' => 3 ),
1743   array( 'lhs' => 82, 'rhs' => 4 ),
1744   array( 'lhs' => 82, 'rhs' => 4 ),
1745   array( 'lhs' => 82, 'rhs' => 5 ),
1746   array( 'lhs' => 82, 'rhs' => 4 ),
1747   array( 'lhs' => 82, 'rhs' => 6 ),
1748   array( 'lhs' => 82, 'rhs' => 6 ),
1749   array( 'lhs' => 82, 'rhs' => 7 ),
1750   array( 'lhs' => 82, 'rhs' => 6 ),
1751   array( 'lhs' => 82, 'rhs' => 4 ),
1752   array( 'lhs' => 82, 'rhs' => 3 ),
1753   array( 'lhs' => 82, 'rhs' => 6 ),
1754   array( 'lhs' => 82, 'rhs' => 5 ),
1755   array( 'lhs' => 82, 'rhs' => 7 ),
1756   array( 'lhs' => 82, 'rhs' => 4 ),
1757   array( 'lhs' => 82, 'rhs' => 5 ),
1758   array( 'lhs' => 82, 'rhs' => 4 ),
1759   array( 'lhs' => 82, 'rhs' => 5 ),
1760   array( 'lhs' => 82, 'rhs' => 13 ),
1761   array( 'lhs' => 96, 'rhs' => 2 ),
1762   array( 'lhs' => 96, 'rhs' => 1 ),
1763   array( 'lhs' => 82, 'rhs' => 7 ),
1764   array( 'lhs' => 82, 'rhs' => 9 ),
1765   array( 'lhs' => 82, 'rhs' => 3 ),
1766   array( 'lhs' => 82, 'rhs' => 8 ),
1767   array( 'lhs' => 82, 'rhs' => 11 ),
1768   array( 'lhs' => 82, 'rhs' => 8 ),
1769   array( 'lhs' => 82, 'rhs' => 11 ),
1770   array( 'lhs' => 82, 'rhs' => 1 ),
1771   array( 'lhs' => 82, 'rhs' => 3 ),
1772   array( 'lhs' => 82, 'rhs' => 4 ),
1773   array( 'lhs' => 82, 'rhs' => 5 ),
1774   array( 'lhs' => 82, 'rhs' => 6 ),
1775   array( 'lhs' => 87, 'rhs' => 2 ),
1776   array( 'lhs' => 87, 'rhs' => 1 ),
1777   array( 'lhs' => 87, 'rhs' => 0 ),
1778   array( 'lhs' => 97, 'rhs' => 4 ),
1779   array( 'lhs' => 97, 'rhs' => 4 ),
1780   array( 'lhs' => 97, 'rhs' => 4 ),
1781   array( 'lhs' => 97, 'rhs' => 2 ),
1782   array( 'lhs' => 97, 'rhs' => 2 ),
1783   array( 'lhs' => 97, 'rhs' => 2 ),
1784   array( 'lhs' => 97, 'rhs' => 4 ),
1785   array( 'lhs' => 93, 'rhs' => 1 ),
1786   array( 'lhs' => 93, 'rhs' => 3 ),
1787   array( 'lhs' => 92, 'rhs' => 4 ),
1788   array( 'lhs' => 89, 'rhs' => 1 ),
1789   array( 'lhs' => 89, 'rhs' => 1 ),
1790   array( 'lhs' => 89, 'rhs' => 4 ),
1791   array( 'lhs' => 89, 'rhs' => 3 ),
1792   array( 'lhs' => 89, 'rhs' => 3 ),
1793   array( 'lhs' => 89, 'rhs' => 3 ),
1794   array( 'lhs' => 89, 'rhs' => 1 ),
1795   array( 'lhs' => 89, 'rhs' => 2 ),
1796   array( 'lhs' => 89, 'rhs' => 3 ),
1797   array( 'lhs' => 89, 'rhs' => 3 ),
1798   array( 'lhs' => 89, 'rhs' => 3 ),
1799   array( 'lhs' => 89, 'rhs' => 3 ),
1800   array( 'lhs' => 89, 'rhs' => 3 ),
1801   array( 'lhs' => 89, 'rhs' => 3 ),
1802   array( 'lhs' => 89, 'rhs' => 2 ),
1803   array( 'lhs' => 89, 'rhs' => 2 ),
1804   array( 'lhs' => 89, 'rhs' => 3 ),
1805   array( 'lhs' => 89, 'rhs' => 3 ),
1806   array( 'lhs' => 89, 'rhs' => 2 ),
1807   array( 'lhs' => 89, 'rhs' => 2 ),
1808   array( 'lhs' => 89, 'rhs' => 3 ),
1809   array( 'lhs' => 89, 'rhs' => 3 ),
1810   array( 'lhs' => 89, 'rhs' => 3 ),
1811   array( 'lhs' => 89, 'rhs' => 3 ),
1812   array( 'lhs' => 98, 'rhs' => 8 ),
1813   array( 'lhs' => 98, 'rhs' => 7 ),
1814   array( 'lhs' => 86, 'rhs' => 1 ),
1815   array( 'lhs' => 86, 'rhs' => 2 ),
1816   array( 'lhs' => 86, 'rhs' => 2 ),
1817   array( 'lhs' => 86, 'rhs' => 2 ),
1818   array( 'lhs' => 86, 'rhs' => 2 ),
1819   array( 'lhs' => 86, 'rhs' => 1 ),
1820   array( 'lhs' => 86, 'rhs' => 1 ),
1821   array( 'lhs' => 86, 'rhs' => 3 ),
1822   array( 'lhs' => 86, 'rhs' => 2 ),
1823   array( 'lhs' => 86, 'rhs' => 2 ),
1824   array( 'lhs' => 86, 'rhs' => 1 ),
1825   array( 'lhs' => 86, 'rhs' => 1 ),
1826   array( 'lhs' => 86, 'rhs' => 3 ),
1827   array( 'lhs' => 86, 'rhs' => 1 ),
1828   array( 'lhs' => 86, 'rhs' => 1 ),
1829   array( 'lhs' => 86, 'rhs' => 3 ),
1830   array( 'lhs' => 86, 'rhs' => 3 ),
1831   array( 'lhs' => 86, 'rhs' => 1 ),
1832   array( 'lhs' => 88, 'rhs' => 1 ),
1833   array( 'lhs' => 88, 'rhs' => 4 ),
1834   array( 'lhs' => 88, 'rhs' => 1 ),
1835   array( 'lhs' => 88, 'rhs' => 3 ),
1836   array( 'lhs' => 88, 'rhs' => 3 ),
1837   array( 'lhs' => 91, 'rhs' => 3 ),
1838   array( 'lhs' => 106, 'rhs' => 2 ),
1839   array( 'lhs' => 106, 'rhs' => 0 ),
1840   array( 'lhs' => 107, 'rhs' => 3 ),
1841   array( 'lhs' => 107, 'rhs' => 5 ),
1842   array( 'lhs' => 107, 'rhs' => 2 ),
1843   array( 'lhs' => 107, 'rhs' => 2 ),
1844   array( 'lhs' => 107, 'rhs' => 4 ),
1845   array( 'lhs' => 107, 'rhs' => 3 ),
1846   array( 'lhs' => 107, 'rhs' => 5 ),
1847   array( 'lhs' => 107, 'rhs' => 3 ),
1848   array( 'lhs' => 107, 'rhs' => 2 ),
1849   array( 'lhs' => 95, 'rhs' => 1 ),
1850   array( 'lhs' => 95, 'rhs' => 2 ),
1851   array( 'lhs' => 108, 'rhs' => 1 ),
1852   array( 'lhs' => 108, 'rhs' => 3 ),
1853   array( 'lhs' => 105, 'rhs' => 2 ),
1854   array( 'lhs' => 109, 'rhs' => 1 ),
1855   array( 'lhs' => 109, 'rhs' => 2 ),
1856   array( 'lhs' => 110, 'rhs' => 3 ),
1857   array( 'lhs' => 110, 'rhs' => 4 ),
1858   array( 'lhs' => 110, 'rhs' => 5 ),
1859   array( 'lhs' => 110, 'rhs' => 6 ),
1860   array( 'lhs' => 110, 'rhs' => 2 ),
1861   array( 'lhs' => 102, 'rhs' => 4 ),
1862   array( 'lhs' => 111, 'rhs' => 4 ),
1863   array( 'lhs' => 111, 'rhs' => 5 ),
1864   array( 'lhs' => 112, 'rhs' => 3 ),
1865   array( 'lhs' => 112, 'rhs' => 1 ),
1866   array( 'lhs' => 112, 'rhs' => 0 ),
1867   array( 'lhs' => 90, 'rhs' => 3 ),
1868   array( 'lhs' => 90, 'rhs' => 2 ),
1869   array( 'lhs' => 113, 'rhs' => 3 ),
1870   array( 'lhs' => 113, 'rhs' => 2 ),
1871   array( 'lhs' => 114, 'rhs' => 2 ),
1872   array( 'lhs' => 114, 'rhs' => 0 ),
1873   array( 'lhs' => 115, 'rhs' => 2 ),
1874   array( 'lhs' => 115, 'rhs' => 2 ),
1875   array( 'lhs' => 104, 'rhs' => 1 ),
1876   array( 'lhs' => 104, 'rhs' => 2 ),
1877   array( 'lhs' => 104, 'rhs' => 1 ),
1878   array( 'lhs' => 104, 'rhs' => 3 ),
1879   array( 'lhs' => 104, 'rhs' => 4 ),
1880   array( 'lhs' => 100, 'rhs' => 1 ),
1881   array( 'lhs' => 100, 'rhs' => 1 ),
1882   array( 'lhs' => 100, 'rhs' => 1 ),
1883   array( 'lhs' => 100, 'rhs' => 1 ),
1884   array( 'lhs' => 100, 'rhs' => 1 ),
1885   array( 'lhs' => 100, 'rhs' => 1 ),
1886   array( 'lhs' => 100, 'rhs' => 1 ),
1887   array( 'lhs' => 100, 'rhs' => 1 ),
1888   array( 'lhs' => 100, 'rhs' => 1 ),
1889   array( 'lhs' => 101, 'rhs' => 1 ),
1890   array( 'lhs' => 101, 'rhs' => 1 ),
1891   array( 'lhs' => 101, 'rhs' => 1 ),
1892   array( 'lhs' => 99, 'rhs' => 3 ),
1893   array( 'lhs' => 116, 'rhs' => 1 ),
1894   array( 'lhs' => 116, 'rhs' => 3 ),
1895   array( 'lhs' => 116, 'rhs' => 0 ),
1896   array( 'lhs' => 117, 'rhs' => 3 ),
1897   array( 'lhs' => 117, 'rhs' => 3 ),
1898   array( 'lhs' => 117, 'rhs' => 1 ),
1899   array( 'lhs' => 103, 'rhs' => 2 ),
1900   array( 'lhs' => 103, 'rhs' => 3 ),
1901   array( 'lhs' => 118, 'rhs' => 2 ),
1902   array( 'lhs' => 118, 'rhs' => 1 ),
1903   array( 'lhs' => 119, 'rhs' => 3 ),
1904   array( 'lhs' => 119, 'rhs' => 3 ),
1905   array( 'lhs' => 119, 'rhs' => 1 ),
1906   array( 'lhs' => 119, 'rhs' => 3 ),
1907   array( 'lhs' => 119, 'rhs' => 3 ),
1908   array( 'lhs' => 119, 'rhs' => 1 ),
1909   array( 'lhs' => 119, 'rhs' => 1 ),
1910   array( 'lhs' => 94, 'rhs' => 1 ),
1911   array( 'lhs' => 94, 'rhs' => 0 ),
1912     );
1914     static public $yyReduceMap = array(
1915         0 => 0,
1916         1 => 1,
1917         2 => 1,
1918         4 => 4,
1919         5 => 5,
1920         6 => 6,
1921         7 => 7,
1922         8 => 8,
1923         9 => 9,
1924         10 => 10,
1925         11 => 11,
1926         12 => 12,
1927         13 => 13,
1928         14 => 14,
1929         15 => 15,
1930         18 => 15,
1931         16 => 16,
1932         17 => 17,
1933         99 => 17,
1934         101 => 17,
1935         102 => 17,
1936         160 => 17,
1937         19 => 19,
1938         20 => 19,
1939         72 => 19,
1940         73 => 19,
1941         98 => 19,
1942         103 => 19,
1943         104 => 19,
1944         109 => 19,
1945         111 => 19,
1946         112 => 19,
1947         118 => 19,
1948         159 => 19,
1949         177 => 19,
1950         21 => 21,
1951         22 => 21,
1952         23 => 23,
1953         24 => 24,
1954         25 => 25,
1955         26 => 26,
1956         27 => 27,
1957         28 => 27,
1958         30 => 27,
1959         29 => 29,
1960         31 => 31,
1961         32 => 31,
1962         33 => 33,
1963         34 => 34,
1964         35 => 35,
1965         36 => 36,
1966         37 => 37,
1967         38 => 38,
1968         39 => 39,
1969         40 => 40,
1970         42 => 40,
1971         41 => 41,
1972         43 => 41,
1973         44 => 44,
1974         45 => 45,
1975         46 => 46,
1976         66 => 46,
1977         67 => 46,
1978         161 => 46,
1979         182 => 46,
1980         47 => 47,
1981         48 => 48,
1982         49 => 49,
1983         50 => 50,
1984         51 => 51,
1985         52 => 52,
1986         53 => 53,
1987         54 => 54,
1988         55 => 55,
1989         56 => 56,
1990         57 => 57,
1991         58 => 58,
1992         59 => 59,
1993         60 => 60,
1994         69 => 60,
1995         149 => 60,
1996         153 => 60,
1997         61 => 61,
1998         150 => 61,
1999         62 => 62,
2000         63 => 63,
2001         64 => 63,
2002         65 => 65,
2003         68 => 68,
2004         70 => 70,
2005         71 => 71,
2006         74 => 74,
2007         75 => 75,
2008         76 => 75,
2009         77 => 75,
2010         78 => 78,
2011         133 => 78,
2012         194 => 78,
2013         79 => 79,
2014         80 => 80,
2015         83 => 80,
2016         94 => 80,
2017         81 => 81,
2018         82 => 82,
2019         84 => 84,
2020         85 => 85,
2021         86 => 86,
2022         91 => 86,
2023         87 => 87,
2024         90 => 87,
2025         88 => 88,
2026         93 => 88,
2027         89 => 89,
2028         92 => 89,
2029         95 => 95,
2030         96 => 96,
2031         97 => 97,
2032         100 => 100,
2033         105 => 105,
2034         106 => 106,
2035         107 => 107,
2036         108 => 108,
2037         110 => 110,
2038         113 => 113,
2039         114 => 114,
2040         115 => 115,
2041         116 => 116,
2042         117 => 117,
2043         119 => 119,
2044         120 => 120,
2045         121 => 121,
2046         122 => 122,
2047         123 => 123,
2048         124 => 124,
2049         125 => 125,
2050         126 => 126,
2051         127 => 127,
2052         128 => 128,
2053         131 => 128,
2054         129 => 129,
2055         130 => 130,
2056         132 => 132,
2057         134 => 134,
2058         135 => 135,
2059         136 => 136,
2060         137 => 137,
2061         138 => 138,
2062         139 => 139,
2063         140 => 140,
2064         141 => 141,
2065         142 => 142,
2066         143 => 143,
2067         144 => 144,
2068         145 => 145,
2069         146 => 146,
2070         147 => 147,
2071         148 => 148,
2072         151 => 151,
2073         152 => 152,
2074         154 => 154,
2075         155 => 155,
2076         156 => 156,
2077         157 => 157,
2078         158 => 157,
2079         162 => 162,
2080         163 => 163,
2081         164 => 164,
2082         165 => 165,
2083         166 => 166,
2084         167 => 167,
2085         168 => 168,
2086         169 => 169,
2087         170 => 170,
2088         171 => 171,
2089         172 => 172,
2090         173 => 173,
2091         174 => 174,
2092         175 => 175,
2093         176 => 176,
2094         178 => 178,
2095         179 => 179,
2096         180 => 180,
2097         181 => 181,
2098         183 => 183,
2099         184 => 184,
2100         185 => 185,
2101         186 => 186,
2102         187 => 187,
2103         188 => 187,
2104         190 => 187,
2105         189 => 189,
2106         191 => 191,
2107         192 => 192,
2108         193 => 193,
2109         195 => 195,
2110     );
2111 #line 95 "smarty_internal_templateparser.y"
2112     function yy_r0(){ $this->_retvalue = $this->root_buffer->to_smarty_php();     }
2113 #line 2109 "smarty_internal_templateparser.php"
2114 #line 101 "smarty_internal_templateparser.y"
2115     function yy_r1(){ $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);     }
2116 #line 2112 "smarty_internal_templateparser.php"
2117 #line 113 "smarty_internal_templateparser.y"
2118     function yy_r4(){
2119                                           if ($this->compiler->has_code) {
2120                                             $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();
2121                                             $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode($tmp.$this->yystack[$this->yyidx + 0]->minor,true));
2122                                          } else { 
2123                                            $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
2124                                          }  
2125                                          $this->compiler->has_variable_string = false;
2126                                          $this->block_nesting_level = count($this->compiler->_tag_stack);
2127                                             }
2128 #line 2124 "smarty_internal_templateparser.php"
2129 #line 125 "smarty_internal_templateparser.y"
2130     function yy_r5(){ $this->_retvalue = new _smarty_tag($this, '');    }
2131 #line 2127 "smarty_internal_templateparser.php"
2132 #line 128 "smarty_internal_templateparser.y"
2133     function yy_r6(){ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);     }
2134 #line 2130 "smarty_internal_templateparser.php"
2135 #line 131 "smarty_internal_templateparser.y"
2136     function yy_r7(){
2137                                       if ($this->php_handling == Smarty::PHP_PASSTHRU) {
2138                                                                      $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
2139                                       } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
2140                                        $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
2141                                       }elseif ($this->php_handling == Smarty::PHP_ALLOW) {
2142                                        $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<?php', true));
2143                                       }elseif ($this->php_handling == Smarty::PHP_REMOVE) {
2144                                        $this->_retvalue = new _smarty_text($this, '');
2145                                       }
2146                                          }
2147 #line 2143 "smarty_internal_templateparser.php"
2148 #line 143 "smarty_internal_templateparser.y"
2149     function yy_r8(){if ($this->is_xml) {
2150                                        $this->compiler->tag_nocache = true; 
2151                                        $this->is_xml = true; 
2152                                        $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '?>';?>", $this->compiler, true));
2153                                       }elseif ($this->php_handling == Smarty::PHP_PASSTHRU) {
2154                                                                      $this->_retvalue = new _smarty_text($this, '?<?php ?>>');
2155                                       } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
2156                                        $this->_retvalue = new _smarty_text($this, htmlspecialchars('?>', ENT_QUOTES));
2157                                       }elseif ($this->php_handling == Smarty::PHP_ALLOW) {
2158                                        $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('?>', true));
2159                                       }elseif ($this->php_handling == Smarty::PHP_REMOVE) {
2160                                        $this->_retvalue = new _smarty_text($this, '');
2161                                       }
2162                                          }
2163 #line 2159 "smarty_internal_templateparser.php"
2164 #line 159 "smarty_internal_templateparser.y"
2165     function yy_r9(){
2166                                       if ($this->php_handling == Smarty::PHP_PASSTHRU) {
2167                                                                      $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
2168                                       } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
2169                                        $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
2170                                       }elseif ($this->php_handling == Smarty::PHP_ALLOW) {
2171                                         if ($this->asp_tags) {
2172                                           $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<%', true));
2173                                         } else {
2174                                          $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
2175                                         }
2176                                       }elseif ($this->php_handling == Smarty::PHP_REMOVE) {
2177                                         if ($this->asp_tags) {
2178                                          $this->_retvalue = new _smarty_text($this, '');
2179                                         } else {
2180                                          $this->_retvalue = new _smarty_text($this, '<<?php ?>%');
2181                                         }
2182                                       }
2183                                         }
2184 #line 2180 "smarty_internal_templateparser.php"
2185 #line 180 "smarty_internal_templateparser.y"
2186     function yy_r10(){
2187                                       if ($this->php_handling == Smarty::PHP_PASSTHRU) {
2188                                                                      $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
2189                                       } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
2190                                        $this->_retvalue = new _smarty_text($this, htmlspecialchars('%>', ENT_QUOTES));
2191                                       }elseif ($this->php_handling == Smarty::PHP_ALLOW) {
2192                                         if ($this->asp_tags) {
2193                                           $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('%>', true));
2194                                         } else {
2195                                          $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
2196                                         }
2197                                       }elseif ($this->php_handling == Smarty::PHP_REMOVE) {
2198                                         if ($this->asp_tags) {
2199                                          $this->_retvalue = new _smarty_text($this, '');
2200                                         } else {
2201                                          $this->_retvalue = new _smarty_text($this, '%<?php ?>>');
2202                                         }
2203                                       }
2204                                         }
2205 #line 2201 "smarty_internal_templateparser.php"
2206 #line 200 "smarty_internal_templateparser.y"
2207     function yy_r11(){if ($this->lex->strip) {
2208                                        $this->_retvalue = new _smarty_text($this, preg_replace('![\$this->yystack[$this->yyidx + 0]->minor ]*[\r\n]+[\$this->yystack[$this->yyidx + 0]->minor ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)));      
2209                                      } else {
2210                                        $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));     
2211                                      }
2212                                         }
2213 #line 2209 "smarty_internal_templateparser.php"
2214 #line 208 "smarty_internal_templateparser.y"
2215     function yy_r12(){ $this->compiler->tag_nocache = true; $this->is_xml = true; $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));    }
2216 #line 2212 "smarty_internal_templateparser.php"
2217 #line 211 "smarty_internal_templateparser.y"
2218     function yy_r13(){if ($this->lex->strip) {
2219                                        $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));  
2220                                      } else {
2221                                        $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);     
2222                                      }
2223                                         }
2224 #line 2220 "smarty_internal_templateparser.php"
2225 #line 217 "smarty_internal_templateparser.y"
2226     function yy_r14(){
2227                                      $this->_retvalue = new _smarty_linebreak($this, $this->yystack[$this->yyidx + 0]->minor);
2228                                        }
2229 #line 2225 "smarty_internal_templateparser.php"
2230 #line 222 "smarty_internal_templateparser.y"
2231     function yy_r15(){ $this->_retvalue = '';     }
2232 #line 2228 "smarty_internal_templateparser.php"
2233 #line 223 "smarty_internal_templateparser.y"
2234     function yy_r16(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;     }
2235 #line 2231 "smarty_internal_templateparser.php"
2236 #line 225 "smarty_internal_templateparser.y"
2237     function yy_r17(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;     }
2238 #line 2234 "smarty_internal_templateparser.php"
2239 #line 228 "smarty_internal_templateparser.y"
2240     function yy_r19(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;     }
2241 #line 2237 "smarty_internal_templateparser.php"
2242 #line 230 "smarty_internal_templateparser.y"
2243     function yy_r21(){ $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor);     }
2244 #line 2240 "smarty_internal_templateparser.php"
2245 #line 232 "smarty_internal_templateparser.y"
2246     function yy_r23(){ $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor);     }
2247 #line 2243 "smarty_internal_templateparser.php"
2248 #line 233 "smarty_internal_templateparser.y"
2249     function yy_r24(){ $this->_retvalue = '<<?php ?>%';     }
2250 #line 2246 "smarty_internal_templateparser.php"
2251 #line 234 "smarty_internal_templateparser.y"
2252     function yy_r25(){ $this->_retvalue = '%<?php ?>>';     }
2253 #line 2249 "smarty_internal_templateparser.php"
2254 #line 242 "smarty_internal_templateparser.y"
2255     function yy_r26(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor));    }
2256 #line 2252 "smarty_internal_templateparser.php"
2257 #line 243 "smarty_internal_templateparser.y"
2258     function yy_r27(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor));    }
2259 #line 2255 "smarty_internal_templateparser.php"
2260 #line 245 "smarty_internal_templateparser.y"
2261     function yy_r29(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -3]->minor,'modifierlist'=>$this->yystack[$this->yyidx + -2]->minor));    }
2262 #line 2258 "smarty_internal_templateparser.php"
2263 #line 253 "smarty_internal_templateparser.y"
2264     function yy_r31(){ $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")));    }
2265 #line 2261 "smarty_internal_templateparser.php"
2266 #line 255 "smarty_internal_templateparser.y"
2267     function yy_r33(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'")),$this->yystack[$this->yyidx + -1]->minor));    }
2268 #line 2264 "smarty_internal_templateparser.php"
2269 #line 256 "smarty_internal_templateparser.y"
2270     function yy_r34(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>$this->yystack[$this->yyidx + -4]->minor['var'])),$this->yystack[$this->yyidx + -1]->minor),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -4]->minor['smarty_internal_index']));    }
2271 #line 2267 "smarty_internal_templateparser.php"
2272 #line 258 "smarty_internal_templateparser.y"
2273     function yy_r35(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor);    }
2274 #line 2270 "smarty_internal_templateparser.php"
2275 #line 259 "smarty_internal_templateparser.y"
2276     function yy_r36(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array());    }
2277 #line 2273 "smarty_internal_templateparser.php"
2278 #line 261 "smarty_internal_templateparser.y"
2279     function yy_r37(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor));    }
2280 #line 2276 "smarty_internal_templateparser.php"
2281 #line 263 "smarty_internal_templateparser.y"
2282     function yy_r38(){  $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';
2283                                                                                     $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
2284                                                                                      }
2285 #line 2281 "smarty_internal_templateparser.php"
2286 #line 267 "smarty_internal_templateparser.y"
2287     function yy_r39(){  $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -5]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -3]->minor)).'<?php echo ';
2288                                                                                                $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
2289                                                                                                 }
2290 #line 2286 "smarty_internal_templateparser.php"
2291 #line 271 "smarty_internal_templateparser.y"
2292     function yy_r40(){ $tag = trim(substr($this->yystack[$this->yyidx + -3]->minor,$this->lex->ldel_length)); $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));    }
2293 #line 2289 "smarty_internal_templateparser.php"
2294 #line 272 "smarty_internal_templateparser.y"
2295     function yy_r41(){ $tag = trim(substr($this->yystack[$this->yyidx + -4]->minor,$this->lex->ldel_length)); $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + -1]->minor,array('if condition'=>$this->yystack[$this->yyidx + -2]->minor));    }
2296 #line 2292 "smarty_internal_templateparser.php"
2297 #line 276 "smarty_internal_templateparser.y"
2298     function yy_r44(){
2299                                                              $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -10]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -7]->minor),array('var'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),1);    }
2300 #line 2296 "smarty_internal_templateparser.php"
2301 #line 279 "smarty_internal_templateparser.y"
2302     function yy_r45(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;    }
2303 #line 2299 "smarty_internal_templateparser.php"
2304 #line 280 "smarty_internal_templateparser.y"
2305     function yy_r46(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;    }
2306 #line 2302 "smarty_internal_templateparser.php"
2307 #line 281 "smarty_internal_templateparser.y"
2308     function yy_r47(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -4]->minor),array('to'=>$this->yystack[$this->yyidx + -2]->minor))),0);    }
2309 #line 2305 "smarty_internal_templateparser.php"
2310 #line 282 "smarty_internal_templateparser.y"
2311     function yy_r48(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('to'=>$this->yystack[$this->yyidx + -4]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),0);    }
2312 #line 2308 "smarty_internal_templateparser.php"
2313 #line 284 "smarty_internal_templateparser.y"
2314     function yy_r49(){ $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + -1]->minor);    }
2315 #line 2311 "smarty_internal_templateparser.php"
2316 #line 286 "smarty_internal_templateparser.y"
2317     function yy_r50(){
2318                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor))));    }
2319 #line 2315 "smarty_internal_templateparser.php"
2320 #line 288 "smarty_internal_templateparser.y"
2321     function yy_r51(){
2322                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor))));    }
2323 #line 2319 "smarty_internal_templateparser.php"
2324 #line 290 "smarty_internal_templateparser.y"
2325     function yy_r52(){ 
2326                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor))));    }
2327 #line 2323 "smarty_internal_templateparser.php"
2328 #line 292 "smarty_internal_templateparser.y"
2329     function yy_r53(){ 
2330                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor))));    }
2331 #line 2327 "smarty_internal_templateparser.php"
2332 #line 296 "smarty_internal_templateparser.y"
2333     function yy_r54(){ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);    }
2334 #line 2330 "smarty_internal_templateparser.php"
2335 #line 300 "smarty_internal_templateparser.y"
2336     function yy_r55(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array());    }
2337 #line 2333 "smarty_internal_templateparser.php"
2338 #line 302 "smarty_internal_templateparser.y"
2339     function yy_r56(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + -1]->minor));
2340                                                                                           }
2341 #line 2337 "smarty_internal_templateparser.php"
2342 #line 305 "smarty_internal_templateparser.y"
2343     function yy_r57(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor));    }
2344 #line 2340 "smarty_internal_templateparser.php"
2345 #line 306 "smarty_internal_templateparser.y"
2346     function yy_r58(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + -1]->minor));    }
2347 #line 2343 "smarty_internal_templateparser.php"
2348 #line 312 "smarty_internal_templateparser.y"
2349     function yy_r59(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;    }
2350 #line 2346 "smarty_internal_templateparser.php"
2351 #line 314 "smarty_internal_templateparser.y"
2352     function yy_r60(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);    }
2353 #line 2349 "smarty_internal_templateparser.php"
2354 #line 316 "smarty_internal_templateparser.y"
2355     function yy_r61(){ $this->_retvalue = array();    }
2356 #line 2352 "smarty_internal_templateparser.php"
2357 #line 319 "smarty_internal_templateparser.y"
2358     function yy_r62(){ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
2359                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'true');
2360                                                  } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
2361                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'false');
2362                                                  } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
2363                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'null');
2364                                                  } else
2365                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'");    }
2366 #line 2362 "smarty_internal_templateparser.php"
2367 #line 327 "smarty_internal_templateparser.y"
2368     function yy_r63(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);    }
2369 #line 2365 "smarty_internal_templateparser.php"
2370 #line 329 "smarty_internal_templateparser.y"
2371     function yy_r65(){ $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'";    }
2372 #line 2368 "smarty_internal_templateparser.php"
2373 #line 332 "smarty_internal_templateparser.y"
2374     function yy_r68(){$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);    }
2375 #line 2371 "smarty_internal_templateparser.php"
2376 #line 339 "smarty_internal_templateparser.y"
2377     function yy_r70(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;    }
2378 #line 2374 "smarty_internal_templateparser.php"
2379 #line 341 "smarty_internal_templateparser.y"
2380     function yy_r71(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);    }
2381 #line 2377 "smarty_internal_templateparser.php"
2382 #line 352 "smarty_internal_templateparser.y"
2383     function yy_r74(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')';    }
2384 #line 2380 "smarty_internal_templateparser.php"
2385 #line 354 "smarty_internal_templateparser.y"
2386     function yy_r75(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;     }
2387 #line 2383 "smarty_internal_templateparser.php"
2388 #line 360 "smarty_internal_templateparser.y"
2389     function yy_r78(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;    }
2390 #line 2386 "smarty_internal_templateparser.php"
2391 #line 363 "smarty_internal_templateparser.y"
2392     function yy_r79(){  $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));     }
2393 #line 2389 "smarty_internal_templateparser.php"
2394 #line 367 "smarty_internal_templateparser.y"
2395     function yy_r80(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
2396 #line 2392 "smarty_internal_templateparser.php"
2397 #line 368 "smarty_internal_templateparser.y"
2398     function yy_r81(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';    }
2399 #line 2395 "smarty_internal_templateparser.php"
2400 #line 369 "smarty_internal_templateparser.y"
2401     function yy_r82(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';    }
2402 #line 2398 "smarty_internal_templateparser.php"
2403 #line 371 "smarty_internal_templateparser.y"
2404     function yy_r84(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')';    }
2405 #line 2401 "smarty_internal_templateparser.php"
2406 #line 372 "smarty_internal_templateparser.y"
2407     function yy_r85(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')';    }
2408 #line 2404 "smarty_internal_templateparser.php"
2409 #line 373 "smarty_internal_templateparser.y"
2410     function yy_r86(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')';    }
2411 #line 2407 "smarty_internal_templateparser.php"
2412 #line 374 "smarty_internal_templateparser.y"
2413     function yy_r87(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')';    }
2414 #line 2410 "smarty_internal_templateparser.php"
2415 #line 375 "smarty_internal_templateparser.y"
2416     function yy_r88(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')';    }
2417 #line 2413 "smarty_internal_templateparser.php"
2418 #line 376 "smarty_internal_templateparser.y"
2419     function yy_r89(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')';    }
2420 #line 2416 "smarty_internal_templateparser.php"
2421 #line 382 "smarty_internal_templateparser.y"
2422     function yy_r95(){$this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number;    }
2423 #line 2419 "smarty_internal_templateparser.php"
2424 #line 388 "smarty_internal_templateparser.y"
2425     function yy_r96(){ $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.' ? $_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'\')->value : '.$this->yystack[$this->yyidx + 0]->minor;  $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + -2]->minor', null, true, false)->nocache;    }
2426 #line 2422 "smarty_internal_templateparser.php"
2427 #line 389 "smarty_internal_templateparser.y"
2428     function yy_r97(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;    }
2429 #line 2425 "smarty_internal_templateparser.php"
2430 #line 396 "smarty_internal_templateparser.y"
2431     function yy_r100(){ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;     }
2432 #line 2428 "smarty_internal_templateparser.php"
2433 #line 402 "smarty_internal_templateparser.y"
2434     function yy_r105(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;     }
2435 #line 2431 "smarty_internal_templateparser.php"
2436 #line 403 "smarty_internal_templateparser.y"
2437     function yy_r106(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';     }
2438 #line 2434 "smarty_internal_templateparser.php"
2439 #line 404 "smarty_internal_templateparser.y"
2440     function yy_r107(){ $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;     }
2441 #line 2437 "smarty_internal_templateparser.php"
2442 #line 406 "smarty_internal_templateparser.y"
2443     function yy_r108(){ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
2444                                 $this->_retvalue = 'true';
2445                                } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
2446                                 $this->_retvalue = 'false';
2447                                } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
2448                                 $this->_retvalue = 'null';
2449                                } else
2450                                $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'";     }
2451 #line 2447 "smarty_internal_templateparser.php"
2452 #line 417 "smarty_internal_templateparser.y"
2453     function yy_r110(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")";     }
2454 #line 2450 "smarty_internal_templateparser.php"
2455 #line 423 "smarty_internal_templateparser.y"
2456     function yy_r113(){if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + -2]->minor, $this->compiler)) {
2457                                                                                                                                                                                    if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
2458                                                                   $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor;
2459                                                                                                                                                                                    } else {
2460                                                                   $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor;
2461                                                                  } 
2462                                                                 } else {
2463                                                                  $this->compiler->trigger_template_error ("static class '".$this->yystack[$this->yyidx + -2]->minor."' is undefined or not allowed by security setting");
2464                                                                 }
2465                                                                    }
2466 #line 2462 "smarty_internal_templateparser.php"
2467 #line 433 "smarty_internal_templateparser.y"
2468     function yy_r114(){ if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') { $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).'::'.$this->yystack[$this->yyidx + 0]->minor;} else {
2469                                                          $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].'::'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor['var'],"'"), null, true, false)->nocache;}    }
2470 #line 2466 "smarty_internal_templateparser.php"
2471 #line 436 "smarty_internal_templateparser.y"
2472     function yy_r115(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '$_tmp'.$this->prefix_number;     }
2473 #line 2469 "smarty_internal_templateparser.php"
2474 #line 445 "smarty_internal_templateparser.y"
2475     function yy_r116(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
2476                                                                                                                                                                 $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
2477                                                                                                                                                                 $this->_retvalue = $smarty_var;
2478                                       } else {
2479                                         // used for array reset,next,prev,end,current 
2480                                         $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
2481                                         $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
2482                                         if (isset($this->compiler->local_var[$this->yystack[$this->yyidx + 0]->minor['var']])) {
2483                                           $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + 0]->minor['var'] .']->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
2484                                         } else {
2485                                           $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
2486                                         }
2487                                         $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache;
2488                                      }
2489                                         }
2490 #line 2486 "smarty_internal_templateparser.php"
2491 #line 461 "smarty_internal_templateparser.y"
2492     function yy_r117(){if (isset($this->compiler->local_var[$this->yystack[$this->yyidx + -2]->minor])) {
2493                                                   $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
2494                                                  } else {
2495                                                   $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor;
2496                                                  }
2497                                                   $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache;    }
2498 #line 2494 "smarty_internal_templateparser.php"
2499 #line 470 "smarty_internal_templateparser.y"
2500     function yy_r119(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')';    }
2501 #line 2497 "smarty_internal_templateparser.php"
2502 #line 471 "smarty_internal_templateparser.y"
2503     function yy_r120(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')';    }
2504 #line 2500 "smarty_internal_templateparser.php"
2505 #line 474 "smarty_internal_templateparser.y"
2506     function yy_r121(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);    }
2507 #line 2503 "smarty_internal_templateparser.php"
2508 #line 480 "smarty_internal_templateparser.y"
2509     function yy_r122(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
2510 #line 2506 "smarty_internal_templateparser.php"
2511 #line 482 "smarty_internal_templateparser.y"
2512     function yy_r123(){return;    }
2513 #line 2509 "smarty_internal_templateparser.php"
2514 #line 486 "smarty_internal_templateparser.y"
2515     function yy_r124(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor .')->value]'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + 0]->minor', null, true, false)->nocache;    }
2516 #line 2512 "smarty_internal_templateparser.php"
2517 #line 487 "smarty_internal_templateparser.y"
2518     function yy_r125(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor.']'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache;    }
2519 #line 2515 "smarty_internal_templateparser.php"
2520 #line 488 "smarty_internal_templateparser.y"
2521     function yy_r126(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']";    }
2522 #line 2518 "smarty_internal_templateparser.php"
2523 #line 489 "smarty_internal_templateparser.y"
2524     function yy_r127(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]";    }
2525 #line 2521 "smarty_internal_templateparser.php"
2526 #line 490 "smarty_internal_templateparser.y"
2527     function yy_r128(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]";    }
2528 #line 2524 "smarty_internal_templateparser.php"
2529 #line 492 "smarty_internal_templateparser.y"
2530     function yy_r129(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';    }
2531 #line 2527 "smarty_internal_templateparser.php"
2532 #line 493 "smarty_internal_templateparser.y"
2533     function yy_r130(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';    }
2534 #line 2530 "smarty_internal_templateparser.php"
2535 #line 497 "smarty_internal_templateparser.y"
2536     function yy_r132(){$this->_retvalue = '[]';    }
2537 #line 2533 "smarty_internal_templateparser.php"
2538 #line 505 "smarty_internal_templateparser.y"
2539     function yy_r134(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;    }
2540 #line 2536 "smarty_internal_templateparser.php"
2541 #line 507 "smarty_internal_templateparser.y"
2542     function yy_r135(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';    }
2543 #line 2539 "smarty_internal_templateparser.php"
2544 #line 509 "smarty_internal_templateparser.y"
2545     function yy_r136(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';    }
2546 #line 2542 "smarty_internal_templateparser.php"
2547 #line 514 "smarty_internal_templateparser.y"
2548     function yy_r137(){ 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 {
2549                                                          $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor['var'],"'"), null, true, false)->nocache;}    }
2550 #line 2546 "smarty_internal_templateparser.php"
2551 #line 517 "smarty_internal_templateparser.y"
2552     function yy_r138(){$this->_retvalue  = $this->yystack[$this->yyidx + 0]->minor;     }
2553 #line 2549 "smarty_internal_templateparser.php"
2554 #line 519 "smarty_internal_templateparser.y"
2555     function yy_r139(){$this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;     }
2556 #line 2552 "smarty_internal_templateparser.php"
2557 #line 521 "smarty_internal_templateparser.y"
2558     function yy_r140(){if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '_') {
2559                                                       $this->compiler->trigger_template_error (self::Err1);
2560                                                                                                                                                                                                            }
2561                                                      $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
2562                                                          }
2563 #line 2559 "smarty_internal_templateparser.php"
2564 #line 526 "smarty_internal_templateparser.y"
2565     function yy_r141(){if ($this->security) {
2566                                                                  $this->compiler->trigger_template_error (self::Err2);
2567                                                                                                                                                                                                                                                          }
2568                                                                $this->_retvalue = '->{$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor .')->value'.$this->yystack[$this->yyidx + 0]->minor.'}'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor,"'"), null, true, false)->nocache;
2569                                                                    }
2570 #line 2566 "smarty_internal_templateparser.php"
2571 #line 531 "smarty_internal_templateparser.y"
2572     function yy_r142(){if ($this->security) {
2573                                                                  $this->compiler->trigger_template_error (self::Err2);
2574                                                                                                                                                                                                                                                            }
2575                                                                                                                                                                                                  $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
2576                                                                                                                                                                                                     }
2577 #line 2573 "smarty_internal_templateparser.php"
2578 #line 536 "smarty_internal_templateparser.y"
2579     function yy_r143(){if ($this->security) {
2580                                                                          $this->compiler->trigger_template_error (self::Err2);
2581                                                                                                                                                                                                                                                                  }
2582                                                                        $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
2583                                                                           }
2584 #line 2580 "smarty_internal_templateparser.php"
2585 #line 542 "smarty_internal_templateparser.y"
2586     function yy_r144(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;    }
2587 #line 2583 "smarty_internal_templateparser.php"
2588 #line 548 "smarty_internal_templateparser.y"
2589     function yy_r145(){if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {
2590                                                                                                                                                                                     if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor)) {
2591                                                                                                                                                                                         $func_name = strtolower($this->yystack[$this->yyidx + -3]->minor);
2592                                                                                                                                                                                         if ($func_name == 'isset') {
2593                                                                                                                                                                                           if (count($this->yystack[$this->yyidx + -1]->minor) == 0) {
2594                                                                                                                                                                                            $this->compiler->trigger_template_error ('Illegal number of paramer in "isset()"');
2595                                                                                                                                                                                           }
2596                                                                                                                                                                                           $isset_par=str_replace("')->value","',null,true,false)->value",implode(',',$this->yystack[$this->yyidx + -1]->minor));
2597                                                                                                                                                                                           $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $isset_par .")";
2598                                                                                                                                                                                               } elseif (in_array($func_name,array('empty','reset','current','end','prev','next'))){
2599                                                                                                                                                                                           if (count($this->yystack[$this->yyidx + -1]->minor) != 1) {
2600                                                                                                                                                                                            $this->compiler->trigger_template_error ('Illegal number of paramer in "empty()"');
2601                                                                                                                                                                                           }
2602                                                                                                                                                                                           $this->_retvalue = $func_name.'('.$this->yystack[$this->yyidx + -1]->minor[0].')';
2603                                                                                                                                                                                         } else {
2604                                                                                                                                                                                           $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
2605                                                                                                                                                                                         }
2606                                                                                                                                                                                     } else {
2607                                                        $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");
2608                                                       }
2609                                                      }
2610                                                         }
2611 #line 2607 "smarty_internal_templateparser.php"
2612 #line 574 "smarty_internal_templateparser.y"
2613     function yy_r146(){if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') {
2614                                                       $this->compiler->trigger_template_error (self::Err1);
2615                                                                                                                                                                                                          }
2616                                                    $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
2617                                                       }
2618 #line 2614 "smarty_internal_templateparser.php"
2619 #line 579 "smarty_internal_templateparser.y"
2620     function yy_r147(){if ($this->security) {
2621                                                               $this->compiler->trigger_template_error (self::Err2);
2622                                                                                                                                                                                                                                          }
2623                                                            $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = '$_tmp'.$this->prefix_number.'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
2624                                                               }
2625 #line 2621 "smarty_internal_templateparser.php"
2626 #line 587 "smarty_internal_templateparser.y"
2627     function yy_r148(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));    }
2628 #line 2624 "smarty_internal_templateparser.php"
2629 #line 596 "smarty_internal_templateparser.y"
2630     function yy_r151(){$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)));    }
2631 #line 2627 "smarty_internal_templateparser.php"
2632 #line 597 "smarty_internal_templateparser.y"
2633     function yy_r152(){$this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));    }
2634 #line 2630 "smarty_internal_templateparser.php"
2635 #line 600 "smarty_internal_templateparser.y"
2636     function yy_r154(){ $this->_retvalue =  array($this->yystack[$this->yyidx + 0]->minor);    }
2637 #line 2633 "smarty_internal_templateparser.php"
2638 #line 605 "smarty_internal_templateparser.y"
2639     function yy_r155(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);    }
2640 #line 2636 "smarty_internal_templateparser.php"
2641 #line 607 "smarty_internal_templateparser.y"
2642     function yy_r156(){$this->_retvalue = array();    }
2643 #line 2639 "smarty_internal_templateparser.php"
2644 #line 609 "smarty_internal_templateparser.y"
2645     function yy_r157(){$this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);    }
2646 #line 2642 "smarty_internal_templateparser.php"
2647 #line 619 "smarty_internal_templateparser.y"
2648     function yy_r162(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
2649 #line 2645 "smarty_internal_templateparser.php"
2650 #line 621 "smarty_internal_templateparser.y"
2651     function yy_r163(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
2652 #line 2648 "smarty_internal_templateparser.php"
2653 #line 630 "smarty_internal_templateparser.y"
2654     function yy_r164(){$this->_retvalue = '==';    }
2655 #line 2651 "smarty_internal_templateparser.php"
2656 #line 631 "smarty_internal_templateparser.y"
2657     function yy_r165(){$this->_retvalue = '!=';    }
2658 #line 2654 "smarty_internal_templateparser.php"
2659 #line 632 "smarty_internal_templateparser.y"
2660     function yy_r166(){$this->_retvalue = '>';    }
2661 #line 2657 "smarty_internal_templateparser.php"
2662 #line 633 "smarty_internal_templateparser.y"
2663     function yy_r167(){$this->_retvalue = '<';    }
2664 #line 2660 "smarty_internal_templateparser.php"
2665 #line 634 "smarty_internal_templateparser.y"
2666     function yy_r168(){$this->_retvalue = '>=';    }
2667 #line 2663 "smarty_internal_templateparser.php"
2668 #line 635 "smarty_internal_templateparser.y"
2669     function yy_r169(){$this->_retvalue = '<=';    }
2670 #line 2666 "smarty_internal_templateparser.php"
2671 #line 636 "smarty_internal_templateparser.y"
2672     function yy_r170(){$this->_retvalue = '===';    }
2673 #line 2669 "smarty_internal_templateparser.php"
2674 #line 637 "smarty_internal_templateparser.y"
2675     function yy_r171(){$this->_retvalue = '!==';    }
2676 #line 2672 "smarty_internal_templateparser.php"
2677 #line 638 "smarty_internal_templateparser.y"
2678     function yy_r172(){$this->_retvalue = '%';    }
2679 #line 2675 "smarty_internal_templateparser.php"
2680 #line 640 "smarty_internal_templateparser.y"
2681     function yy_r173(){$this->_retvalue = '&&';    }
2682 #line 2678 "smarty_internal_templateparser.php"
2683 #line 641 "smarty_internal_templateparser.y"
2684     function yy_r174(){$this->_retvalue = '||';    }
2685 #line 2681 "smarty_internal_templateparser.php"
2686 #line 642 "smarty_internal_templateparser.y"
2687     function yy_r175(){$this->_retvalue = ' XOR ';    }
2688 #line 2684 "smarty_internal_templateparser.php"
2689 #line 647 "smarty_internal_templateparser.y"
2690     function yy_r176(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';    }
2691 #line 2687 "smarty_internal_templateparser.php"
2692 #line 649 "smarty_internal_templateparser.y"
2693     function yy_r178(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;     }
2694 #line 2690 "smarty_internal_templateparser.php"
2695 #line 650 "smarty_internal_templateparser.y"
2696     function yy_r179(){ return;     }
2697 #line 2693 "smarty_internal_templateparser.php"
2698 #line 651 "smarty_internal_templateparser.y"
2699     function yy_r180(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;    }
2700 #line 2696 "smarty_internal_templateparser.php"
2701 #line 652 "smarty_internal_templateparser.y"
2702     function yy_r181(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;    }
2703 #line 2699 "smarty_internal_templateparser.php"
2704 #line 659 "smarty_internal_templateparser.y"
2705     function yy_r183(){ $this->_retvalue = "''";     }
2706 #line 2702 "smarty_internal_templateparser.php"
2707 #line 660 "smarty_internal_templateparser.y"
2708     function yy_r184(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php();     }
2709 #line 2705 "smarty_internal_templateparser.php"
2710 #line 662 "smarty_internal_templateparser.y"
2711     function yy_r185(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;     }
2712 #line 2708 "smarty_internal_templateparser.php"
2713 #line 663 "smarty_internal_templateparser.y"
2714     function yy_r186(){ $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);     }
2715 #line 2711 "smarty_internal_templateparser.php"
2716 #line 665 "smarty_internal_templateparser.y"
2717     function yy_r187(){ $this->_retvalue = new _smarty_code($this, $this->yystack[$this->yyidx + -1]->minor);     }
2718 #line 2714 "smarty_internal_templateparser.php"
2719 #line 667 "smarty_internal_templateparser.y"
2720     function yy_r189(){if (isset($this->compiler->local_var["'".substr($this->yystack[$this->yyidx + 0]->minor,1)."'"])) {
2721                                                        $this->_retvalue = new _smarty_code($this, '$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
2722                                                       } else {
2723                                                        $this->_retvalue = new _smarty_code($this, '$_smarty_tpl->getVariable(\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\')->value');
2724                                                       }
2725                                                       $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor,"'"), null, true, false)->nocache;
2726       }
2727 #line 2723 "smarty_internal_templateparser.php"
2728 #line 675 "smarty_internal_templateparser.y"
2729     function yy_r191(){ $this->_retvalue = new _smarty_code($this, '('.$this->yystack[$this->yyidx + -1]->minor.')');     }
2730 #line 2726 "smarty_internal_templateparser.php"
2731 #line 676 "smarty_internal_templateparser.y"
2732     function yy_r192(){
2733    $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
2734       }
2735 #line 2731 "smarty_internal_templateparser.php"
2736 #line 679 "smarty_internal_templateparser.y"
2737     function yy_r193(){ $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);     }
2738 #line 2734 "smarty_internal_templateparser.php"
2739 #line 686 "smarty_internal_templateparser.y"
2740     function yy_r195(){$this->_retvalue = '';    }
2741 #line 2737 "smarty_internal_templateparser.php"
2743     private $_retvalue;
2745     function yy_reduce($yyruleno)
2746     {
2747         $yymsp = $this->yystack[$this->yyidx];
2748         if (self::$yyTraceFILE && $yyruleno >= 0 
2749               && $yyruleno < count(self::$yyRuleName)) {
2750             fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n",
2751                 self::$yyTracePrompt, $yyruleno,
2752                 self::$yyRuleName[$yyruleno]);
2753         }
2755         $this->_retvalue = $yy_lefthand_side = null;
2756         if (array_key_exists($yyruleno, self::$yyReduceMap)) {
2757             // call the action
2758             $this->_retvalue = null;
2759             $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
2760             $yy_lefthand_side = $this->_retvalue;
2761         }
2762         $yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
2763         $yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
2764         $this->yyidx -= $yysize;
2765         for($i = $yysize; $i; $i--) {
2766             // pop all of the right-hand side parameters
2767             array_pop($this->yystack);
2768         }
2769         $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
2770         if ($yyact < self::YYNSTATE) {
2771             if (!self::$yyTraceFILE && $yysize) {
2772                 $this->yyidx++;
2773                 $x = new TP_yyStackEntry;
2774                 $x->stateno = $yyact;
2775                 $x->major = $yygoto;
2776                 $x->minor = $yy_lefthand_side;
2777                 $this->yystack[$this->yyidx] = $x;
2778             } else {
2779                 $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
2780             }
2781         } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
2782             $this->yy_accept();
2783         }
2784     }
2786     function yy_parse_failed()
2787     {
2788         if (self::$yyTraceFILE) {
2789             fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt);
2790         }
2791         while ($this->yyidx >= 0) {
2792             $this->yy_pop_parser_stack();
2793         }
2794     }
2796     function yy_syntax_error($yymajor, $TOKEN)
2797     {
2798 #line 77 "smarty_internal_templateparser.y"
2800     $this->internalError = true;
2801     $this->yymajor = $yymajor;
2802     $this->compiler->trigger_template_error();
2803 #line 2800 "smarty_internal_templateparser.php"
2804     }
2806     function yy_accept()
2807     {
2808         if (self::$yyTraceFILE) {
2809             fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt);
2810         }
2811         while ($this->yyidx >= 0) {
2812             $stack = $this->yy_pop_parser_stack();
2813         }
2814 #line 69 "smarty_internal_templateparser.y"
2816     $this->successful = !$this->internalError;
2817     $this->internalError = false;
2818     $this->retvalue = $this->_retvalue;
2819     //echo $this->retvalue."\n\n";
2820 #line 2818 "smarty_internal_templateparser.php"
2821     }
2823     function doParse($yymajor, $yytokenvalue)
2824     {
2825         $yyerrorhit = 0;   /* True if yymajor has invoked an error */
2826         
2827         if ($this->yyidx === null || $this->yyidx < 0) {
2828             $this->yyidx = 0;
2829             $this->yyerrcnt = -1;
2830             $x = new TP_yyStackEntry;
2831             $x->stateno = 0;
2832             $x->major = 0;
2833             $this->yystack = array();
2834             array_push($this->yystack, $x);
2835         }
2836         $yyendofinput = ($yymajor==0);
2837         
2838         if (self::$yyTraceFILE) {
2839             fprintf(self::$yyTraceFILE, "%sInput %s\n",
2840                 self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
2841         }
2842         
2843         do {
2844             $yyact = $this->yy_find_shift_action($yymajor);
2845             if ($yymajor < self::YYERRORSYMBOL &&
2846                   !$this->yy_is_expected_token($yymajor)) {
2847                 // force a syntax error
2848                 $yyact = self::YY_ERROR_ACTION;
2849             }
2850             if ($yyact < self::YYNSTATE) {
2851                 $this->yy_shift($yyact, $yymajor, $yytokenvalue);
2852                 $this->yyerrcnt--;
2853                 if ($yyendofinput && $this->yyidx >= 0) {
2854                     $yymajor = 0;
2855                 } else {
2856                     $yymajor = self::YYNOCODE;
2857                 }
2858             } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
2859                 $this->yy_reduce($yyact - self::YYNSTATE);
2860             } elseif ($yyact == self::YY_ERROR_ACTION) {
2861                 if (self::$yyTraceFILE) {
2862                     fprintf(self::$yyTraceFILE, "%sSyntax Error!\n",
2863                         self::$yyTracePrompt);
2864                 }
2865                 if (self::YYERRORSYMBOL) {
2866                     if ($this->yyerrcnt < 0) {
2867                         $this->yy_syntax_error($yymajor, $yytokenvalue);
2868                     }
2869                     $yymx = $this->yystack[$this->yyidx]->major;
2870                     if ($yymx == self::YYERRORSYMBOL || $yyerrorhit ){
2871                         if (self::$yyTraceFILE) {
2872                             fprintf(self::$yyTraceFILE, "%sDiscard input token %s\n",
2873                                 self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
2874                         }
2875                         $this->yy_destructor($yymajor, $yytokenvalue);
2876                         $yymajor = self::YYNOCODE;
2877                     } else {
2878                         while ($this->yyidx >= 0 &&
2879                                  $yymx != self::YYERRORSYMBOL &&
2880         ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
2881                               ){
2882                             $this->yy_pop_parser_stack();
2883                         }
2884                         if ($this->yyidx < 0 || $yymajor==0) {
2885                             $this->yy_destructor($yymajor, $yytokenvalue);
2886                             $this->yy_parse_failed();
2887                             $yymajor = self::YYNOCODE;
2888                         } elseif ($yymx != self::YYERRORSYMBOL) {
2889                             $u2 = 0;
2890                             $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
2891                         }
2892                     }
2893                     $this->yyerrcnt = 3;
2894                     $yyerrorhit = 1;
2895                 } else {
2896                     if ($this->yyerrcnt <= 0) {
2897                         $this->yy_syntax_error($yymajor, $yytokenvalue);
2898                     }
2899                     $this->yyerrcnt = 3;
2900                     $this->yy_destructor($yymajor, $yytokenvalue);
2901                     if ($yyendofinput) {
2902                         $this->yy_parse_failed();
2903                     }
2904                     $yymajor = self::YYNOCODE;
2905                 }
2906             } else {
2907                 $this->yy_accept();
2908                 $yymajor = self::YYNOCODE;
2909             }            
2910         } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
2911     }
2913 ?>