Changeset 6008


Ignore:
Timestamp:
02/05/12 19:15:05 (4 months ago)
Author:
vain
Message:
  • Updating Smarty to v3.1.7 [vendors][current]
Location:
vendors/smarty/current
Files:
39 edited

Legend:

Unmodified
Added
Removed
  • vendors/smarty/current/Smarty.class.php

    r5823 r6008  
    11<?php 
    22/** 
    3 * Project:     Smarty: the PHP compiling template engine 
    4 * File:        Smarty.class.php 
    5 * SVN:         $Id$ 
    6 * 
    7 * This library is free software; you can redistribute it and/or 
    8 * modify it under the terms of the GNU Lesser General Public 
    9 * License as published by the Free Software Foundation; either 
    10 * version 2.1 of the License, or (at your option) any later version. 
    11 * 
    12 * This library is distributed in the hope that it will be useful, 
    13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
    15 * Lesser General Public License for more details. 
    16 * 
    17 * You should have received a copy of the GNU Lesser General Public 
    18 * License along with this library; if not, write to the Free Software 
    19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
    20 * 
    21 * For questions, help, comments, discussion, etc., please join the 
    22 * Smarty mailing list. Send a blank e-mail to 
    23 * smarty-discussion-subscribe@googlegroups.com 
    24 * 
    25 * @link http://www.smarty.net/ 
    26 * @copyright 2008 New Digital Group, Inc. 
    27 * @author Monte Ohrt <monte at ohrt dot com> 
    28 * @author Uwe Tews 
    29 * @author Rodney Rehm 
    30 * @package Smarty 
    31 * @version 3.1.6 
    32 */ 
     3 * Project:     Smarty: the PHP compiling template engine 
     4 * File:        Smarty.class.php 
     5 * SVN:         $Id$ 
     6 * 
     7 * This library is free software; you can redistribute it and/or 
     8 * modify it under the terms of the GNU Lesser General Public 
     9 * License as published by the Free Software Foundation; either 
     10 * version 2.1 of the License, or (at your option) any later version. 
     11 * 
     12 * This library is distributed in the hope that it will be useful, 
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
     15 * Lesser General Public License for more details. 
     16 * 
     17 * You should have received a copy of the GNU Lesser General Public 
     18 * License along with this library; if not, write to the Free Software 
     19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
     20 * 
     21 * For questions, help, comments, discussion, etc., please join the 
     22 * Smarty mailing list. Send a blank e-mail to 
     23 * smarty-discussion-subscribe@googlegroups.com 
     24 * 
     25 * @link http://www.smarty.net/ 
     26 * @copyright 2008 New Digital Group, Inc. 
     27 * @author Monte Ohrt <monte at ohrt dot com> 
     28 * @author Uwe Tews 
     29 * @author Rodney Rehm 
     30 * @package Smarty 
     31 * @version 3.1.7 
     32 */ 
    3333 
    3434/** 
    35 * define shorthand directory separator constant 
    36 */ 
     35 * define shorthand directory separator constant 
     36 */ 
    3737if (!defined('DS')) { 
    3838    define('DS', DIRECTORY_SEPARATOR); 
     
    4040 
    4141/** 
    42 * set SMARTY_DIR to absolute path to Smarty library files. 
    43 * Sets SMARTY_DIR only if user application has not already defined it. 
    44 */ 
     42 * set SMARTY_DIR to absolute path to Smarty library files. 
     43 * Sets SMARTY_DIR only if user application has not already defined it. 
     44 */ 
    4545if (!defined('SMARTY_DIR')) { 
    4646    define('SMARTY_DIR', dirname(__FILE__) . DS); 
     
    4848 
    4949/** 
    50 * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins. 
    51 * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it. 
    52 */ 
     50 * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins. 
     51 * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it. 
     52 */ 
    5353if (!defined('SMARTY_SYSPLUGINS_DIR')) { 
    5454    define('SMARTY_SYSPLUGINS_DIR', SMARTY_DIR . 'sysplugins' . DS); 
     
    6262if (!defined('SMARTY_RESOURCE_CHAR_SET')) { 
    6363    // UTF-8 can only be done properly when mbstring is available! 
     64    /** 
     65     * @deprecated in favor of Smarty::$_CHARSET 
     66     */ 
    6467    define('SMARTY_RESOURCE_CHAR_SET', SMARTY_MBSTRING ? 'UTF-8' : 'ISO-8859-1'); 
    6568} 
    6669if (!defined('SMARTY_RESOURCE_DATE_FORMAT')) { 
     70    /** 
     71     * @deprecated in favor of Smarty::$_DATE_FORMAT 
     72     */ 
    6773    define('SMARTY_RESOURCE_DATE_FORMAT', '%b %e, %Y'); 
    6874} 
    6975 
    7076/** 
    71 * register the class autoloader 
    72 */ 
     77 * register the class autoloader 
     78 */ 
    7379if (!defined('SMARTY_SPL_AUTOLOAD')) { 
    7480    define('SMARTY_SPL_AUTOLOAD', 0); 
     
    8591 
    8692/** 
    87 * Load always needed external class files 
    88 */ 
     93 * Load always needed external class files 
     94 */ 
    8995include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_data.php'; 
    9096include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_templatebase.php'; 
     
    96102 
    97103/** 
    98 * This is the main Smarty class 
    99 * @package Smarty 
    100 */ 
     104 * This is the main Smarty class 
     105 * @package Smarty 
     106 */ 
    101107class Smarty extends Smarty_Internal_TemplateBase { 
    102108 
    103109    /**#@+ 
    104     * constant definitions 
    105     */ 
    106  
    107     /** 
    108     * smarty version 
    109     */ 
    110     const SMARTY_VERSION = 'Smarty-3.1.6'; 
    111  
    112     /** 
    113     * define variable scopes 
    114     */ 
     110     * constant definitions 
     111     */ 
     112 
     113    /** 
     114     * smarty version 
     115     */ 
     116    const SMARTY_VERSION = 'Smarty-3.1.7'; 
     117 
     118    /** 
     119     * define variable scopes 
     120     */ 
    115121    const SCOPE_LOCAL = 0; 
    116122    const SCOPE_PARENT = 1; 
     
    118124    const SCOPE_GLOBAL = 3; 
    119125    /** 
    120     * define caching modes 
    121     */ 
     126     * define caching modes 
     127     */ 
    122128    const CACHING_OFF = 0; 
    123129    const CACHING_LIFETIME_CURRENT = 1; 
    124130    const CACHING_LIFETIME_SAVED = 2; 
    125131    /** 
    126     * define compile check modes 
    127     */ 
     132     * define compile check modes 
     133     */ 
    128134    const COMPILECHECK_OFF = 0; 
    129135    const COMPILECHECK_ON = 1; 
    130136    const COMPILECHECK_CACHEMISS = 2; 
    131137    /** 
    132     * modes for handling of "<?php ... ?>" tags in templates. 
    133     */ 
     138     * modes for handling of "<?php ... ?>" tags in templates. 
     139     */ 
    134140    const PHP_PASSTHRU = 0; //-> print tags as plain text 
    135141    const PHP_QUOTE = 1; //-> escape tags as entities 
     
    137143    const PHP_ALLOW = 3; //-> escape tags as entities 
    138144    /** 
    139     * filter types 
    140     */ 
     145     * filter types 
     146     */ 
    141147    const FILTER_POST = 'post'; 
    142148    const FILTER_PRE = 'pre'; 
     
    144150    const FILTER_VARIABLE = 'variable'; 
    145151    /** 
    146     * plugin types 
    147     */ 
     152     * plugin types 
     153     */ 
    148154    const PLUGIN_FUNCTION = 'function'; 
    149155    const PLUGIN_BLOCK = 'block'; 
     
    155161 
    156162    /** 
    157     * assigned global tpl vars 
    158     */ 
     163     * assigned global tpl vars 
     164     */ 
    159165    public static $global_tpl_vars = array(); 
    160166 
     
    167173     */ 
    168174    public static $_muted_directories = array(); 
    169  
     175    /** 
     176     * Flag denoting if Multibyte String functions are available 
     177     */ 
     178    public static $_MBSTRING = SMARTY_MBSTRING; 
     179    /** 
     180     * The character set to adhere to (e.g. "UTF-8") 
     181     */ 
     182    public static $_CHARSET = SMARTY_RESOURCE_CHAR_SET; 
     183    /** 
     184     * The date format to be used internally 
     185     * (accepts date() and strftime()) 
     186     */ 
     187    public static $_DATE_FORMAT = SMARTY_RESOURCE_DATE_FORMAT; 
     188    /** 
     189     * Flag denoting if PCRE should run in UTF-8 mode 
     190     */ 
     191    public static $_UTF8_MODIFIER = 'u'; 
     192     
     193     
    170194    /**#@+ 
    171     * variables 
    172     */ 
    173  
    174     /** 
    175     * auto literal on delimiters with whitspace 
    176     * @var boolean 
    177     */ 
     195     * variables 
     196     */ 
     197 
     198    /** 
     199     * auto literal on delimiters with whitspace 
     200     * @var boolean 
     201     */ 
    178202    public $auto_literal = true; 
    179203    /** 
    180     * display error on not assigned variables 
    181     * @var boolean 
    182     */ 
     204     * display error on not assigned variables 
     205     * @var boolean 
     206     */ 
    183207    public $error_unassigned = false; 
    184208    /** 
    185     * look up relative filepaths in include_path 
    186     * @var boolean 
    187     */ 
     209     * look up relative filepaths in include_path 
     210     * @var boolean 
     211     */ 
    188212    public $use_include_path = false; 
    189213    /** 
    190     * template directory 
    191     * @var array 
    192     */ 
     214     * template directory 
     215     * @var array 
     216     */ 
    193217    private $template_dir = array(); 
    194218    /** 
    195     * joined template directory string used in cache keys 
    196     * @var string 
    197     */ 
     219     * joined template directory string used in cache keys 
     220     * @var string 
     221     */ 
    198222    public $joined_template_dir = null; 
    199223    /** 
    200     * joined config directory string used in cache keys 
    201     * @var string 
    202     */ 
     224     * joined config directory string used in cache keys 
     225     * @var string 
     226     */ 
    203227    public $joined_config_dir = null; 
    204228    /** 
    205     * default template handler 
    206     * @var callable 
    207     */ 
     229     * default template handler 
     230     * @var callable 
     231     */ 
    208232    public $default_template_handler_func = null; 
    209233    /** 
    210     * default config handler 
    211     * @var callable 
    212     */ 
     234     * default config handler 
     235     * @var callable 
     236     */ 
    213237    public $default_config_handler_func = null; 
    214238    /** 
    215     * default plugin handler 
    216     * @var callable 
    217     */ 
     239     * default plugin handler 
     240     * @var callable 
     241     */ 
    218242    public $default_plugin_handler_func = null; 
    219243    /** 
    220     * compile directory 
    221     * @var string 
    222     */ 
     244     * compile directory 
     245     * @var string 
     246     */ 
    223247    private $compile_dir = null; 
    224248    /** 
    225     * plugins directory 
    226     * @var array 
    227     */ 
     249     * plugins directory 
     250     * @var array 
     251     */ 
    228252    private $plugins_dir = array(); 
    229253    /** 
    230     * cache directory 
    231     * @var string 
    232     */ 
     254     * cache directory 
     255     * @var string 
     256     */ 
    233257    private $cache_dir = null; 
    234258    /** 
    235     * config directory 
    236     * @var array 
    237     */ 
     259     * config directory 
     260     * @var array 
     261     */ 
    238262    private $config_dir = array(); 
    239263    /** 
    240     * force template compiling? 
    241     * @var boolean 
    242     */ 
     264     * force template compiling? 
     265     * @var boolean 
     266     */ 
    243267    public $force_compile = false; 
    244268    /** 
    245     * check template for modifications? 
    246     * @var boolean 
    247     */ 
     269     * check template for modifications? 
     270     * @var boolean 
     271     */ 
    248272    public $compile_check = true; 
    249273    /** 
    250     * use sub dirs for compiled/cached files? 
    251     * @var boolean 
    252     */ 
     274     * use sub dirs for compiled/cached files? 
     275     * @var boolean 
     276     */ 
    253277    public $use_sub_dirs = false; 
    254278    /** 
     
    258282    public $allow_ambiguous_resources = false; 
    259283    /** 
    260     * caching enabled 
    261     * @var boolean 
    262     */ 
     284     * caching enabled 
     285     * @var boolean 
     286     */ 
    263287    public $caching = false; 
    264288    /** 
    265     * merge compiled includes 
    266     * @var boolean 
    267     */ 
     289     * merge compiled includes 
     290     * @var boolean 
     291     */ 
    268292    public $merge_compiled_includes = false; 
    269293    /** 
    270     * cache lifetime in seconds 
    271     * @var integer 
    272     */ 
     294     * cache lifetime in seconds 
     295     * @var integer 
     296     */ 
    273297    public $cache_lifetime = 3600; 
    274298    /** 
    275     * force cache file creation 
    276     * @var boolean 
    277     */ 
     299     * force cache file creation 
     300     * @var boolean 
     301     */ 
    278302    public $force_cache = false; 
    279303    /** 
     
    292316    public $compile_id = null; 
    293317    /** 
    294     * template left-delimiter 
    295     * @var string 
    296     */ 
     318     * template left-delimiter 
     319     * @var string 
     320     */ 
    297321    public $left_delimiter = "{"; 
    298322    /** 
    299     * template right-delimiter 
    300     * @var string 
    301     */ 
     323     * template right-delimiter 
     324     * @var string 
     325     */ 
    302326    public $right_delimiter = "}"; 
    303327    /**#@+ 
    304     * security 
    305     */ 
    306     /** 
    307     * class name 
    308     * 
    309     * This should be instance of Smarty_Security. 
    310     * 
    311     * @var string 
    312     * @see Smarty_Security 
    313     */ 
     328     * security 
     329     */ 
     330    /** 
     331     * class name 
     332     * 
     333     * This should be instance of Smarty_Security. 
     334     * 
     335     * @var string 
     336     * @see Smarty_Security 
     337     */ 
    314338    public $security_class = 'Smarty_Security'; 
    315339    /** 
    316     * implementation of security class 
    317     * 
    318     * @var Smarty_Security 
    319     */ 
     340     * implementation of security class 
     341     * 
     342     * @var Smarty_Security 
     343     */ 
    320344    public $security_policy = null; 
    321345    /** 
    322     * controls handling of PHP-blocks 
    323     * 
    324     * @var integer 
    325     */ 
     346     * controls handling of PHP-blocks 
     347     * 
     348     * @var integer 
     349     */ 
    326350    public $php_handling = self::PHP_PASSTHRU; 
    327351    /** 
    328     * controls if the php template file resource is allowed 
    329     * 
    330     * @var bool 
    331     */ 
     352     * controls if the php template file resource is allowed 
     353     * 
     354     * @var bool 
     355     */ 
    332356    public $allow_php_templates = false; 
    333357    /** 
    334     * Should compiled-templates be prevented from being called directly? 
    335     * 
    336     * {@internal 
    337     * Currently used by Smarty_Internal_Template only. 
    338     * }} 
    339     * 
    340     * @var boolean 
    341     */ 
     358     * Should compiled-templates be prevented from being called directly? 
     359     * 
     360     * {@internal 
     361     * Currently used by Smarty_Internal_Template only. 
     362     * }} 
     363     * 
     364     * @var boolean 
     365     */ 
    342366    public $direct_access_security = true; 
    343367    /**#@-*/ 
    344368    /** 
    345     * debug mode 
    346     * 
    347     * Setting this to true enables the debug-console. 
    348     * 
    349     * @var boolean 
    350     */ 
     369     * debug mode 
     370     * 
     371     * Setting this to true enables the debug-console. 
     372     * 
     373     * @var boolean 
     374     */ 
    351375    public $debugging = false; 
    352376    /** 
     
    356380     *  <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li> 
    357381     * </ul> 
    358     * @var string 
    359     */ 
     382     * @var string 
     383     */ 
    360384    public $debugging_ctrl = 'NONE'; 
    361385    /** 
    362     * Name of debugging URL-param. 
    363     * 
    364     * Only used when $debugging_ctrl is set to 'URL'. 
    365     * The name of the URL-parameter that activates debugging. 
    366     * 
    367     * @var type 
    368     */ 
     386     * Name of debugging URL-param. 
     387     * 
     388     * Only used when $debugging_ctrl is set to 'URL'. 
     389     * The name of the URL-parameter that activates debugging. 
     390     * 
     391     * @var type 
     392     */ 
    369393    public $smarty_debug_id = 'SMARTY_DEBUG'; 
    370394    /** 
    371     * Path of debug template. 
    372     * @var string 
    373     */ 
     395     * Path of debug template. 
     396     * @var string 
     397     */ 
    374398    public $debug_tpl = null; 
    375399    /** 
    376     * When set, smarty uses this value as error_reporting-level. 
    377     * @var int 
    378     */ 
     400     * When set, smarty uses this value as error_reporting-level. 
     401     * @var int 
     402     */ 
    379403    public $error_reporting = null; 
    380404    /** 
    381     * Internal flag for getTags() 
    382     * @var boolean 
    383     */ 
     405     * Internal flag for getTags() 
     406     * @var boolean 
     407     */ 
    384408    public $get_used_tags = false; 
    385409 
    386410    /**#@+ 
    387     * config var settings 
    388     */ 
    389  
    390     /** 
    391     * Controls whether variables with the same name overwrite each other. 
    392     * @var boolean 
    393     */ 
     411     * config var settings 
     412     */ 
     413 
     414    /** 
     415     * Controls whether variables with the same name overwrite each other. 
     416     * @var boolean 
     417     */ 
    394418    public $config_overwrite = true; 
    395419    /** 
    396     * Controls whether config values of on/true/yes and off/false/no get converted to boolean. 
    397     * @var boolean 
    398     */ 
     420     * Controls whether config values of on/true/yes and off/false/no get converted to boolean. 
     421     * @var boolean 
     422     */ 
    399423    public $config_booleanize = true; 
    400424    /** 
    401     * Controls whether hidden config sections/vars are read from the file. 
    402     * @var boolean 
    403     */ 
     425     * Controls whether hidden config sections/vars are read from the file. 
     426     * @var boolean 
     427     */ 
    404428    public $config_read_hidden = false; 
    405429 
     
    407431 
    408432    /**#@+ 
    409     * resource locking 
    410     */ 
    411  
    412     /** 
    413     * locking concurrent compiles 
    414     * @var boolean 
    415     */ 
     433     * resource locking 
     434     */ 
     435 
     436    /** 
     437     * locking concurrent compiles 
     438     * @var boolean 
     439     */ 
    416440    public $compile_locking = true; 
    417441    /** 
     
    429453 
    430454    /** 
    431     * global template functions 
    432     * @var array 
    433     */ 
     455     * global template functions 
     456     * @var array 
     457     */ 
    434458    public $template_functions = array(); 
    435459    /** 
    436     * resource type used if none given 
    437     * 
    438     * Must be an valid key of $registered_resources. 
    439     * @var string 
    440     */ 
     460     * resource type used if none given 
     461     * 
     462     * Must be an valid key of $registered_resources. 
     463     * @var string 
     464     */ 
    441465    public $default_resource_type = 'file'; 
    442466    /** 
    443     * caching type 
    444     * 
    445     * Must be an element of $cache_resource_types. 
    446     * 
    447     * @var string 
    448     */ 
     467     * caching type 
     468     * 
     469     * Must be an element of $cache_resource_types. 
     470     * 
     471     * @var string 
     472     */ 
    449473    public $caching_type = 'file'; 
    450474    /** 
    451     * internal config properties 
    452     * @var array 
    453     */ 
     475     * internal config properties 
     476     * @var array 
     477     */ 
    454478    public $properties = array(); 
    455479    /** 
    456     * config type 
    457     * @var string 
    458     */ 
     480     * config type 
     481     * @var string 
     482     */ 
    459483    public $default_config_type = 'file'; 
    460484    /** 
    461     * cached template objects 
    462     * @var array 
    463     */ 
     485     * cached template objects 
     486     * @var array 
     487     */ 
    464488    public $template_objects = array(); 
    465489    /** 
    466     * check If-Modified-Since headers 
    467     * @var boolean 
    468     */ 
     490     * check If-Modified-Since headers 
     491     * @var boolean 
     492     */ 
    469493    public $cache_modified_check = false; 
    470494    /** 
    471     * registered plugins 
    472     * @var array 
    473     */ 
     495     * registered plugins 
     496     * @var array 
     497     */ 
    474498    public $registered_plugins = array(); 
    475499    /** 
    476     * plugin search order 
    477     * @var array 
    478     */ 
     500     * plugin search order 
     501     * @var array 
     502     */ 
    479503    public $plugin_search_order = array('function', 'block', 'compiler', 'class'); 
    480504    /** 
    481     * registered objects 
    482     * @var array 
    483     */ 
     505     * registered objects 
     506     * @var array 
     507     */ 
    484508    public $registered_objects = array(); 
    485509    /** 
    486     * registered classes 
    487     * @var array 
    488     */ 
     510     * registered classes 
     511     * @var array 
     512     */ 
    489513    public $registered_classes = array(); 
    490514    /** 
    491     * registered filters 
    492     * @var array 
    493     */ 
     515     * registered filters 
     516     * @var array 
     517     */ 
    494518    public $registered_filters = array(); 
    495519    /** 
    496     * registered resources 
    497     * @var array 
    498     */ 
     520     * registered resources 
     521     * @var array 
     522     */ 
    499523    public $registered_resources = array(); 
    500524    /** 
    501     * resource handler cache 
    502     * @var array 
    503     */ 
     525     * resource handler cache 
     526     * @var array 
     527     */ 
    504528    public $_resource_handlers = array(); 
    505529    /** 
    506     * registered cache resources 
    507     * @var array 
    508     */ 
     530     * registered cache resources 
     531     * @var array 
     532     */ 
    509533    public $registered_cache_resources = array(); 
    510534    /** 
    511     * cache resource handler cache 
    512     * @var array 
    513     */ 
     535     * cache resource handler cache 
     536     * @var array 
     537     */ 
    514538    public $_cacheresource_handlers = array(); 
    515539    /** 
    516     * autoload filter 
    517     * @var array 
    518     */ 
     540     * autoload filter 
     541     * @var array 
     542     */ 
    519543    public $autoload_filters = array(); 
    520544    /** 
    521     * default modifier 
    522     * @var array 
    523     */ 
     545     * default modifier 
     546     * @var array 
     547     */ 
    524548    public $default_modifiers = array(); 
    525549    /** 
    526     * autoescape variable output 
    527     * @var boolean 
    528     */ 
     550     * autoescape variable output 
     551     * @var boolean 
     552     */ 
    529553    public $escape_html = false; 
    530554    /** 
    531     * global internal smarty vars 
    532     * @var array 
    533     */ 
     555     * global internal smarty vars 
     556     * @var array 
     557     */ 
    534558    public static $_smarty_vars = array(); 
    535559    /** 
    536     * start time for execution time calculation 
    537     * @var int 
    538     */ 
     560     * start time for execution time calculation 
     561     * @var int 
     562     */ 
    539563    public $start_time = 0; 
    540564    /** 
    541     * default file permissions 
    542     * @var int 
    543     */ 
     565     * default file permissions 
     566     * @var int 
     567     */ 
    544568    public $_file_perms = 0644; 
    545569    /** 
    546     * default dir permissions 
    547     * @var int 
    548     */ 
     570     * default dir permissions 
     571     * @var int 
     572     */ 
    549573    public $_dir_perms = 0771; 
    550574    /** 
    551     * block tag hierarchy 
    552     * @var array 
    553     */ 
     575     * block tag hierarchy 
     576     * @var array 
     577     */ 
    554578    public $_tag_stack = array(); 
    555579    /** 
    556     * self pointer to Smarty object 
    557     * @var Smarty 
    558     */ 
     580     * self pointer to Smarty object 
     581     * @var Smarty 
     582     */ 
    559583    public $smarty; 
    560584    /** 
    561     * required by the compiler for BC 
    562     * @var string 
    563     */ 
     585     * required by the compiler for BC 
     586     * @var string 
     587     */ 
    564588    public $_current_file = null; 
    565589    /** 
    566     * internal flag to enable parser debugging 
    567     * @var bool 
    568     */ 
     590     * internal flag to enable parser debugging 
     591     * @var bool 
     592     */ 
    569593    public $_parserdebug = false; 
    570594    /** 
    571     * Saved parameter of merged templates during compilation 
    572     * 
    573     * @var array 
    574     */ 
     595     * Saved parameter of merged templates during compilation 
     596     * 
     597     * @var array 
     598     */ 
    575599    public $merged_templates_func = array(); 
    576600    /**#@-*/ 
    577601 
    578602    /** 
    579     * Initialize new Smarty object 
    580     * 
    581     */ 
     603     * Initialize new Smarty object 
     604     * 
     605     */ 
    582606    public function __construct() 
    583607    { 
     
    585609        $this->smarty = $this; 
    586610        if (is_callable('mb_internal_encoding')) { 
    587             mb_internal_encoding(SMARTY_RESOURCE_CHAR_SET); 
     611            mb_internal_encoding(Smarty::$_CHARSET); 
    588612        } 
    589613        $this->start_time = microtime(true); 
     
    603627 
    604628    /** 
    605     * Class destructor 
    606     */ 
     629     * Class destructor 
     630     */ 
    607631    public function __destruct() 
    608632    { 
     
    611635 
    612636    /** 
    613     * <<magic>> set selfpointer on cloned object 
    614     */ 
     637     * <<magic>> set selfpointer on cloned object 
     638     */ 
    615639    public function __clone() 
    616640    { 
     
    620644 
    621645    /** 
    622     * <<magic>> Generic getter. 
    623     * 
    624     * Calls the appropriate getter function. 
    625     * Issues an E_USER_NOTICE if no valid getter is found. 
    626     * 
    627     * @param string $name property name 
    628     * @return mixed 
    629     */ 
     646     * <<magic>> Generic getter. 
     647     * 
     648     * Calls the appropriate getter function. 
     649     * Issues an E_USER_NOTICE if no valid getter is found. 
     650     * 
     651     * @param string $name property name 
     652     * @return mixed 
     653     */ 
    630654    public function __get($name) 
    631655    { 
     
    646670 
    647671    /** 
    648     * <<magic>> Generic setter. 
    649     * 
    650     * Calls the appropriate setter function. 
    651     * Issues an E_USER_NOTICE if no valid setter is found. 
    652     * 
    653     * @param string $name  property name 
    654     * @param mixed  $value parameter passed to setter 
    655     */ 
     672     * <<magic>> Generic setter. 
     673     * 
     674     * Calls the appropriate setter function. 
     675     * Issues an E_USER_NOTICE if no valid setter is found. 
     676     * 
     677     * @param string $name  property name 
     678     * @param mixed  $value parameter passed to setter 
     679     */ 
    656680    public function __set($name, $value) 
    657681    { 
     
    672696 
    673697    /** 
    674     * Check if a template resource exists 
    675     * 
    676     * @param string $resource_name template name 
    677     * @return boolean status 
    678     */ 
     698     * Check if a template resource exists 
     699     * 
     700     * @param string $resource_name template name 
     701     * @return boolean status 
     702     */ 
    679703    public function templateExists($resource_name) 
    680704    { 
     
    689713 
    690714    /** 
    691     * Returns a single or all global  variables 
    692     * 
    693     * @param object $smarty 
    694     * @param string $varname variable name or null 
    695     * @return string variable value or or array of variables 
    696     */ 
     715     * Returns a single or all global  variables 
     716     * 
     717     * @param object $smarty 
     718     * @param string $varname variable name or null 
     719     * @return string variable value or or array of variables 
     720     */ 
    697721    public function getGlobal($varname = null) 
    698722    { 
     
    713737 
    714738    /** 
    715     * Empty cache folder 
    716     * 
    717     * @param integer $exp_time expiration time 
    718     * @param string  $type     resource type 
    719     * @return integer number of cache files deleted 
    720     */ 
     739     * Empty cache folder 
     740     * 
     741     * @param integer $exp_time expiration time 
     742     * @param string  $type     resource type 
     743     * @return integer number of cache files deleted 
     744     */ 
    721745    function clearAllCache($exp_time = null, $type = null) 
    722746    { 
     
    728752 
    729753    /** 
    730     * Empty cache for a specific template 
    731     * 
    732     * @param string  $template_name template name 
    733     * @param string  $cache_id      cache id 
    734     * @param string  $compile_id    compile id 
    735     * @param integer $exp_time      expiration time 
    736     * @param string  $type          resource type 
    737     * @return integer number of cache files deleted 
    738     */ 
     754     * Empty cache for a specific template 
     755     * 
     756     * @param string  $template_name template name 
     757     * @param string  $cache_id      cache id 
     758     * @param string  $compile_id    compile id 
     759     * @param integer $exp_time      expiration time 
     760     * @param string  $type          resource type 
     761     * @return integer number of cache files deleted 
     762     */ 
    739763    public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null) 
    740764    { 
     
    746770 
    747771    /** 
    748     * Loads security class and enables security 
    749     * 
    750     * @param string|Smarty_Security $security_class if a string is used, it must be class-name 
    751     * @return Smarty current Smarty instance for chaining 
    752     * @throws SmartyException when an invalid class name is provided 
    753     */ 
     772     * Loads security class and enables security 
     773     * 
     774     * @param string|Smarty_Security $security_class if a string is used, it must be class-name 
     775     * @return Smarty current Smarty instance for chaining 
     776     * @throws SmartyException when an invalid class name is provided 
     777     */ 
    754778    public function enableSecurity($security_class = null) 
    755779    { 
     
    775799 
    776800    /** 
    777     * Disable security 
    778     * @return Smarty current Smarty instance for chaining 
    779     */ 
     801     * Disable security 
     802     * @return Smarty current Smarty instance for chaining 
     803     */ 
    780804    public function disableSecurity() 
    781805    { 
     
    786810 
    787811    /** 
    788     * Set template directory 
    789     * 
    790     * @param string|array $template_dir directory(s) of template sources 
    791     * @return Smarty current Smarty instance for chaining 
    792     */ 
     812     * Set template directory 
     813     * 
     814     * @param string|array $template_dir directory(s) of template sources 
     815     * @return Smarty current Smarty instance for chaining 
     816     */ 
    793817    public function setTemplateDir($template_dir) 
    794818    { 
     
    803827 
    804828    /** 
    805     * Add template directory(s) 
    806     * 
    807     * @param string|array $template_dir directory(s) of template sources 
    808     * @param string       $key          of the array element to assign the template dir to 
    809     * @return Smarty current Smarty instance for chaining 
    810     * @throws SmartyException when the given template directory is not valid 
    811     */ 
     829     * Add template directory(s) 
     830     * 
     831     * @param string|array $template_dir directory(s) of template sources 
     832     * @param string       $key          of the array element to assign the template dir to 
     833     * @return Smarty current Smarty instance for chaining 
     834     * @throws SmartyException when the given template directory is not valid 
     835     */ 
    812836    public function addTemplateDir($template_dir, $key=null) 
    813837    { 
     
    837861 
    838862    /** 
    839     * Get template directories 
    840     * 
    841     * @param mixed index of directory to get, null to get all 
    842     * @return array|string list of template directories, or directory of $index 
    843     */ 
     863     * Get template directories 
     864     * 
     865     * @param mixed index of directory to get, null to get all 
     866     * @return array|string list of template directories, or directory of $index 
     867     */ 
    844868    public function getTemplateDir($index=null) 
    845869    { 
     
    852876 
    853877    /** 
    854     * Set config directory 
    855     * 
    856     * @param string|array $template_dir directory(s) of configuration sources 
    857     * @return Smarty current Smarty instance for chaining 
    858     */ 
     878     * Set config directory 
     879     * 
     880     * @param string|array $template_dir directory(s) of configuration sources 
     881     * @return Smarty current Smarty instance for chaining 
     882     */ 
    859883    public function setConfigDir($config_dir) 
    860884    { 
     
    869893 
    870894    /** 
    871     * Add config directory(s) 
    872     * 
    873     * @param string|array $config_dir directory(s) of config sources 
    874     * @param string key of the array element to assign the config dir to 
    875     * @return Smarty current Smarty instance for chaining 
    876     */ 
     895     * Add config directory(s) 
     896     * 
     897     * @param string|array $config_dir directory(s) of config sources 
     898     * @param string key of the array element to assign the config dir to 
     899     * @return Smarty current Smarty instance for chaining 
     900     */ 
    877901    public function addConfigDir($config_dir, $key=null) 
    878902    { 
     
    903927 
    904928    /** 
    905     * Get config directory 
    906     * 
    907     * @param mixed index of directory to get, null to get all 
    908     * @return array|string configuration directory 
    909     */ 
     929     * Get config directory 
     930     * 
     931     * @param mixed index of directory to get, null to get all 
     932     * @return array|string configuration directory 
     933     */ 
    910934    public function getConfigDir($index=null) 
    911935    { 
     
    918942 
    919943    /** 
    920     * Set plugins directory 
    921     * 
    922     * @param string|array $plugins_dir directory(s) of plugins 
    923     * @return Smarty current Smarty instance for chaining 
    924     */ 
     944     * Set plugins directory 
     945     * 
     946     * @param string|array $plugins_dir directory(s) of plugins 
     947     * @return Smarty current Smarty instance for chaining 
     948     */ 
    925949    public function setPluginsDir($plugins_dir) 
    926950    { 
     
    934958 
    935959    /** 
    936     * Adds directory of plugin files 
    937     * 
    938     * @param object $smarty 
    939     * @param string $ |array $ plugins folder 
    940     * @return Smarty current Smarty instance for chaining 
    941     */ 
     960     * Adds directory of plugin files 
     961     * 
     962     * @param object $smarty 
     963     * @param string $ |array $ plugins folder 
     964     * @return Smarty current Smarty instance for chaining 
     965     */ 
    942966    public function addPluginsDir($plugins_dir) 
    943967    { 
     
    965989 
    966990    /** 
    967     * Get plugin directories 
    968     * 
    969     * @return array list of plugin directories 
    970     */ 
     991     * Get plugin directories 
     992     * 
     993     * @return array list of plugin directories 
     994     */ 
    971995    public function getPluginsDir() 
    972996    { 
     
    975999 
    9761000    /** 
    977     * Set compile directory 
    978     * 
    979     * @param string $compile_dir directory to store compiled templates in 
    980     * @return Smarty current Smarty instance for chaining 
    981     */ 
     1001     * Set compile directory 
     1002     * 
     1003     * @param string $compile_dir directory to store compiled templates in 
     1004     * @return Smarty current Smarty instance for chaining 
     1005     */ 
    9821006    public function setCompileDir($compile_dir) 
    9831007    { 
     
    9901014 
    9911015    /** 
    992     * Get compiled directory 
    993     * 
    994     * @return string path to compiled templates 
    995     */ 
     1016     * Get compiled directory 
     1017     * 
     1018     * @return string path to compiled templates 
     1019     */ 
    9961020    public function getCompileDir() 
    9971021    { 
     
    10001024 
    10011025    /** 
    1002     * Set cache directory 
    1003     * 
    1004     * @param string $cache_dir directory to store cached templates in 
    1005     * @return Smarty current Smarty instance for chaining 
    1006     */ 
     1026     * Set cache directory 
     1027     * 
     1028     * @param string $cache_dir directory to store cached templates in 
     1029     * @return Smarty current Smarty instance for chaining 
     1030     */ 
    10071031    public function setCacheDir($cache_dir) 
    10081032    { 
     
    10151039 
    10161040    /** 
    1017     * Get cache directory 
    1018     * 
    1019     * @return string path of cache directory 
    1020     */ 
     1041     * Get cache directory 
     1042     * 
     1043     * @return string path of cache directory 
     1044     */ 
    10211045    public function getCacheDir() 
    10221046    { 
     
    10251049 
    10261050    /** 
    1027     * Set default modifiers 
    1028     * 
    1029     * @param array|string $modifiers modifier or list of modifiers to set 
    1030     * @return Smarty current Smarty instance for chaining 
    1031     */ 
     1051     * Set default modifiers 
     1052     * 
     1053     * @param array|string $modifiers modifier or list of modifiers to set 
     1054     * @return Smarty current Smarty instance for chaining 
     1055     */ 
    10321056    public function setDefaultModifiers($modifiers) 
    10331057    { 
     
    10371061 
    10381062    /** 
    1039     * Add default modifiers 
    1040     * 
    1041     * @param array|string $modifiers modifier or list of modifiers to add 
    1042     * @return Smarty current Smarty instance for chaining 
    1043     */ 
     1063     * Add default modifiers 
     1064     * 
     1065     * @param array|string $modifiers modifier or list of modifiers to add 
     1066     * @return Smarty current Smarty instance for chaining 
     1067     */ 
    10441068    public function addDefaultModifiers($modifiers) 
    10451069    { 
     
    10541078 
    10551079    /** 
    1056     * Get default modifiers 
    1057     * 
    1058     * @return array list of default modifiers 
    1059     */ 
     1080     * Get default modifiers 
     1081     * 
     1082     * @return array list of default modifiers 
     1083     */ 
    10601084    public function getDefaultModifiers() 
    10611085    { 
     
    10651089 
    10661090    /** 
    1067     * Set autoload filters 
    1068     * 
    1069     * @param array $filters filters to load automatically 
    1070     * @param string $type "pre", "output", 
 specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types 
    1071     * @return Smarty current Smarty instance for chaining 
    1072     */ 
     1091     * Set autoload filters 
     1092     * 
     1093     * @param array $filters filters to load automatically 
     1094     * @param string $type "pre", "output", 
 specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types 
     1095     * @return Smarty current Smarty instance for chaining 
     1096     */ 
    10731097    public function setAutoloadFilters($filters, $type=null) 
    10741098    { 
     
    10831107 
    10841108    /** 
    1085     * Add autoload filters 
    1086     * 
    1087     * @param array $filters filters to load automatically 
    1088     * @param string $type "pre", "output", 
 specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types 
    1089     * @return Smarty current Smarty instance for chaining 
    1090     */ 
     1109     * Add autoload filters 
     1110     * 
     1111     * @param array $filters filters to load automatically 
     1112     * @param string $type "pre", "output", 
 specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types 
     1113     * @return Smarty current Smarty instance for chaining 
     1114     */ 
    10911115    public function addAutoloadFilters($filters, $type=null) 
    10921116    { 
     
    11111135 
    11121136    /** 
    1113     * Get autoload filters 
    1114     * 
    1115     * @param string $type type of filter to get autoloads for. Defaults to all autoload filters 
    1116     * @return array array( 'type1' => array( 'filter1', 'filter2', 
 ) ) or array( 'filter1', 'filter2', 
) if $type was specified 
    1117     */ 
     1137     * Get autoload filters 
     1138     * 
     1139     * @param string $type type of filter to get autoloads for. Defaults to all autoload filters 
     1140     * @return array array( 'type1' => array( 'filter1', 'filter2', 
 ) ) or array( 'filter1', 'filter2', 
) if $type was specified 
     1141     */ 
    11181142    public function getAutoloadFilters($type=null) 
    11191143    { 
     
    11261150 
    11271151    /** 
    1128     * return name of debugging template 
    1129     * 
    1130     * @return string 
    1131     */ 
     1152     * return name of debugging template 
     1153     * 
     1154     * @return string 
     1155     */ 
    11321156    public function getDebugTemplate() 
    11331157    { 
     
    11361160 
    11371161    /** 
    1138     * set the debug template 
    1139     * 
    1140     * @param string $tpl_name 
    1141     * @return Smarty current Smarty instance for chaining 
    1142     * @throws SmartyException if file is not readable 
    1143     */ 
     1162     * set the debug template 
     1163     * 
     1164     * @param string $tpl_name 
     1165     * @return Smarty current Smarty instance for chaining 
     1166     * @throws SmartyException if file is not readable 
     1167     */ 
    11441168    public function setDebugTemplate($tpl_name) 
    11451169    { 
     
    11531177 
    11541178    /** 
    1155     * creates a template object 
    1156     * 
    1157     * @param string $template the resource handle of the template file 
    1158     * @param mixed $cache_id cache id to be used with this template 
    1159     * @param mixed $compile_id compile id to be used with this template 
    1160     * @param object $parent next higher level of Smarty variables 
    1161     * @param boolean $do_clone flag is Smarty object shall be cloned 
    1162     * @return object template object 
    1163     */ 
     1179     * creates a template object 
     1180     * 
     1181     * @param string $template the resource handle of the template file 
     1182     * @param mixed $cache_id cache id to be used with this template 
     1183     * @param mixed $compile_id compile id to be used with this template 
     1184     * @param object $parent next higher level of Smarty variables 
     1185     * @param boolean $do_clone flag is Smarty object shall be cloned 
     1186     * @return object template object 
     1187     */ 
    11641188    public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true) 
    11651189    { 
     
    12201244 
    12211245    /** 
    1222     * Takes unknown classes and loads plugin files for them 
    1223     * class name format: Smarty_PluginType_PluginName 
    1224     * plugin filename format: plugintype.pluginname.php 
    1225     * 
    1226     * @param string $plugin_name    class plugin name to load 
    1227     * @param bool   $check          check if already loaded 
    1228     * @return string |boolean filepath of loaded file or false 
    1229     */ 
     1246     * Takes unknown classes and loads plugin files for them 
     1247     * class name format: Smarty_PluginType_PluginName 
     1248     * plugin filename format: plugintype.pluginname.php 
     1249     * 
     1250     * @param string $plugin_name    class plugin name to load 
     1251     * @param bool   $check          check if already loaded 
     1252     * @return string |boolean filepath of loaded file or false 
     1253     */ 
    12301254    public function loadPlugin($plugin_name, $check = true) 
    12311255    { 
     
    12801304 
    12811305    /** 
    1282     * Compile all template files 
    1283     * 
    1284     * @param string $extension file extension 
    1285     * @param bool $force_compile force all to recompile 
    1286     * @param int $time_limit 
    1287     * @param int $max_errors 
    1288     * @return integer number of template files recompiled 
    1289     */ 
     1306     * Compile all template files 
     1307     * 
     1308     * @param string $extension file extension 
     1309     * @param bool $force_compile force all to recompile 
     1310     * @param int $time_limit 
     1311     * @param int $max_errors 
     1312     * @return integer number of template files recompiled 
     1313     */ 
    12901314    public function compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) 
    12911315    { 
     
    12941318 
    12951319    /** 
    1296     * Compile all config files 
    1297     * 
    1298     * @param string $extension file extension 
    1299     * @param bool $force_compile force all to recompile 
    1300     * @param int $time_limit 
    1301     * @param int $max_errors 
    1302     * @return integer number of template files recompiled 
    1303     */ 
     1320     * Compile all config files 
     1321     * 
     1322     * @param string $extension file extension 
     1323     * @param bool $force_compile force all to recompile 
     1324     * @param int $time_limit 
     1325     * @param int $max_errors 
     1326     * @return integer number of template files recompiled 
     1327     */ 
    13041328    public function compileAllConfig($extention = '.conf', $force_compile = false, $time_limit = 0, $max_errors = null) 
    13051329    { 
     
    13081332 
    13091333    /** 
    1310     * Delete compiled template file 
    1311     * 
    1312     * @param string $resource_name template name 
    1313     * @param string $compile_id compile id 
    1314     * @param integer $exp_time expiration time 
    1315     * @return integer number of template files deleted 
    1316     */ 
     1334     * Delete compiled template file 
     1335     * 
     1336     * @param string $resource_name template name 
     1337     * @param string $compile_id compile id 
     1338     * @param integer $exp_time expiration time 
     1339     * @return integer number of template files deleted 
     1340     */ 
    13171341    public function clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) 
    13181342    { 
     
    13221346 
    13231347    /** 
    1324     * Return array of tag/attributes of all tags used by an template 
    1325     * 
    1326     * @param object $templae template object 
    1327     * @return array of tag/attributes 
    1328     */ 
     1348     * Return array of tag/attributes of all tags used by an template 
     1349     * 
     1350     * @param object $templae template object 
     1351     * @return array of tag/attributes 
     1352     */ 
    13291353    public function getTags(Smarty_Internal_Template $template) 
    13301354    { 
     
    14331457} 
    14341458 
     1459// let PCRE (preg_*) treat strings as ISO-8859-1 if we're not dealing with UTF-8 
     1460if (Smarty::$_CHARSET !== 'UTF-8') { 
     1461    Smarty::$_UTF8_MODIFIER = ''; 
     1462} 
     1463 
    14351464/** 
    1436 * Smarty exception class 
    1437 * @package Smarty 
    1438 */ 
     1465 * Smarty exception class 
     1466 * @package Smarty 
     1467 */ 
    14391468class SmartyException extends Exception { 
    14401469} 
    14411470 
    14421471/** 
    1443 * Smarty compiler exception class 
    1444 * @package Smarty 
    1445 */ 
     1472 * Smarty compiler exception class 
     1473 * @package Smarty 
     1474 */ 
    14461475class SmartyCompilerException extends SmartyException  { 
    14471476} 
    14481477 
    14491478/** 
    1450 * Autoloader 
    1451 */ 
     1479 * Autoloader 
     1480 */ 
    14521481function smartyAutoload($class) 
    14531482{ 
  • vendors/smarty/current/plugins/block.textformat.php

    r5765 r6008  
    8585        } 
    8686        // convert mult. spaces & special chars to single space 
    87         $_paragraph = preg_replace(array('!\s+!u', '!(^\s+)|(\s+$)!u'), array(' ', ''), $_paragraph); 
     87        $_paragraph = preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER, '!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER), array(' ', ''), $_paragraph); 
    8888        // indent first line 
    8989        if ($indent_first > 0) { 
     
    9191        } 
    9292        // wordwrap sentences 
    93         if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     93        if (Smarty::$_MBSTRING) { 
    9494            require_once(SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php'); 
    9595            $_paragraph = smarty_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut); 
  • vendors/smarty/current/plugins/function.fetch.php

    r5765 r6008  
    2727        return; 
    2828    } 
     29     
     30    // strip file protocol 
     31    if (stripos($params['file'], 'file://') === 0) { 
     32        $params['file'] = substr($params['file'], 7); 
     33    } 
     34     
     35    $protocol = strpos($params['file'], '://'); 
     36    if ($protocol !== false) { 
     37        $protocol = strtolower(substr($params['file'], 0, $protocol)); 
     38    } 
     39     
     40    if (isset($template->smarty->security_policy)) { 
     41        if ($protocol) { 
     42            // remote resource (or php stream, 
) 
     43            if(!$template->smarty->security_policy->isTrustedUri($params['file'])) { 
     44                return; 
     45            } 
     46        } else { 
     47            // local file 
     48            if(!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) { 
     49                return; 
     50            } 
     51        } 
     52    } 
    2953 
    3054    $content = ''; 
    31     if (isset($template->smarty->security_policy) && !preg_match('!^(http|ftp)://!i', $params['file'])) { 
    32         if(!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) { 
    33             return; 
    34         } 
    35  
    36         // fetch the file 
    37         if($fp = @fopen($params['file'],'r')) { 
    38             while(!feof($fp)) { 
    39                 $content .= fgets ($fp,4096); 
    40             } 
    41             fclose($fp); 
     55    if ($protocol == 'http') { 
     56        // http fetch 
     57        if($uri_parts = parse_url($params['file'])) { 
     58            // set defaults 
     59            $host = $server_name = $uri_parts['host']; 
     60            $timeout = 30; 
     61            $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; 
     62            $agent = "Smarty Template Engine ". Smarty::SMARTY_VERSION; 
     63            $referer = ""; 
     64            $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/'; 
     65            $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : ''; 
     66            $_is_proxy = false; 
     67            if(empty($uri_parts['port'])) { 
     68                $port = 80; 
     69            } else { 
     70                $port = $uri_parts['port']; 
     71            } 
     72            if(!empty($uri_parts['user'])) { 
     73                $user = $uri_parts['user']; 
     74            } 
     75            if(!empty($uri_parts['pass'])) { 
     76                $pass = $uri_parts['pass']; 
     77            } 
     78            // loop through parameters, setup headers 
     79            foreach($params as $param_key => $param_value) { 
     80                switch($param_key) { 
     81                    case "file": 
     82                    case "assign": 
     83                    case "assign_headers": 
     84                        break; 
     85                    case "user": 
     86                        if(!empty($param_value)) { 
     87                            $user = $param_value; 
     88                        } 
     89                        break; 
     90                    case "pass": 
     91                        if(!empty($param_value)) { 
     92                            $pass = $param_value; 
     93                        } 
     94                        break; 
     95                    case "accept": 
     96                        if(!empty($param_value)) { 
     97                            $accept = $param_value; 
     98                        } 
     99                        break; 
     100                    case "header": 
     101                        if(!empty($param_value)) { 
     102                            if(!preg_match('![\w\d-]+: .+!',$param_value)) { 
     103                                trigger_error("[plugin] invalid header format '".$param_value."'",E_USER_NOTICE); 
     104                                return; 
     105                            } else { 
     106                                $extra_headers[] = $param_value; 
     107                            } 
     108                        } 
     109                        break; 
     110                    case "proxy_host": 
     111                        if(!empty($param_value)) { 
     112                            $proxy_host = $param_value; 
     113                        } 
     114                        break; 
     115                    case "proxy_port": 
     116                        if(!preg_match('!\D!', $param_value)) { 
     117                            $proxy_port = (int) $param_value; 
     118                        } else { 
     119                            trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE); 
     120                            return; 
     121                        } 
     122                        break; 
     123                    case "agent": 
     124                        if(!empty($param_value)) { 
     125                            $agent = $param_value; 
     126                        } 
     127                        break; 
     128                    case "referer": 
     129                        if(!empty($param_value)) { 
     130                            $referer = $param_value; 
     131                        } 
     132                        break; 
     133                    case "timeout": 
     134                        if(!preg_match('!\D!', $param_value)) { 
     135                            $timeout = (int) $param_value; 
     136                        } else { 
     137                            trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE); 
     138                            return; 
     139                        } 
     140                        break; 
     141                    default: 
     142                        trigger_error("[plugin] unrecognized attribute '".$param_key."'",E_USER_NOTICE); 
     143                        return; 
     144                } 
     145            } 
     146            if(!empty($proxy_host) && !empty($proxy_port)) { 
     147                $_is_proxy = true; 
     148                $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout); 
     149            } else { 
     150                $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout); 
     151            } 
     152 
     153            if(!$fp) { 
     154                trigger_error("[plugin] unable to fetch: $errstr ($errno)",E_USER_NOTICE); 
     155                return; 
     156            } else { 
     157                if($_is_proxy) { 
     158                    fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n"); 
     159                } else { 
     160                    fputs($fp, "GET $uri HTTP/1.0\r\n"); 
     161                } 
     162                if(!empty($host)) { 
     163                    fputs($fp, "Host: $host\r\n"); 
     164                } 
     165                if(!empty($accept)) { 
     166                    fputs($fp, "Accept: $accept\r\n"); 
     167                } 
     168                if(!empty($agent)) { 
     169                    fputs($fp, "User-Agent: $agent\r\n"); 
     170                } 
     171                if(!empty($referer)) { 
     172                    fputs($fp, "Referer: $referer\r\n"); 
     173                } 
     174                if(isset($extra_headers) && is_array($extra_headers)) { 
     175                    foreach($extra_headers as $curr_header) { 
     176                        fputs($fp, $curr_header."\r\n"); 
     177                    } 
     178                } 
     179                if(!empty($user) && !empty($pass)) { 
     180                    fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n"); 
     181                } 
     182 
     183                fputs($fp, "\r\n"); 
     184                while(!feof($fp)) { 
     185                    $content .= fgets($fp,4096); 
     186                } 
     187                fclose($fp); 
     188                $csplit = preg_split("!\r\n\r\n!",$content,2); 
     189 
     190                $content = $csplit[1]; 
     191 
     192                if(!empty($params['assign_headers'])) { 
     193                    $template->assign($params['assign_headers'],preg_split("!\r\n!",$csplit[0])); 
     194                } 
     195            } 
    42196        } else { 
    43             trigger_error('[plugin] fetch cannot read file \'' . $params['file'] . '\'',E_USER_NOTICE); 
     197            trigger_error("[plugin fetch] unable to parse URL, check syntax",E_USER_NOTICE); 
    44198            return; 
    45199        } 
    46200    } else { 
    47         // not a local file 
    48         if(preg_match('!^http://!i',$params['file'])) { 
    49             // http fetch 
    50             if($uri_parts = parse_url($params['file'])) { 
    51                 // set defaults 
    52                 $host = $server_name = $uri_parts['host']; 
    53                 $timeout = 30; 
    54                 $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; 
    55                 $agent = "Smarty Template Engine ". Smarty::SMARTY_VERSION; 
    56                 $referer = ""; 
    57                 $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/'; 
    58                 $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : ''; 
    59                 $_is_proxy = false; 
    60                 if(empty($uri_parts['port'])) { 
    61                     $port = 80; 
    62                 } else { 
    63                     $port = $uri_parts['port']; 
    64                 } 
    65                 if(!empty($uri_parts['user'])) { 
    66                     $user = $uri_parts['user']; 
    67                 } 
    68                 if(!empty($uri_parts['pass'])) { 
    69                     $pass = $uri_parts['pass']; 
    70                 } 
    71                 // loop through parameters, setup headers 
    72                 foreach($params as $param_key => $param_value) { 
    73                     switch($param_key) { 
    74                         case "file": 
    75                         case "assign": 
    76                         case "assign_headers": 
    77                             break; 
    78                         case "user": 
    79                             if(!empty($param_value)) { 
    80                                 $user = $param_value; 
    81                             } 
    82                             break; 
    83                         case "pass": 
    84                             if(!empty($param_value)) { 
    85                                 $pass = $param_value; 
    86                             } 
    87                             break; 
    88                         case "accept": 
    89                             if(!empty($param_value)) { 
    90                                 $accept = $param_value; 
    91                             } 
    92                             break; 
    93                         case "header": 
    94                             if(!empty($param_value)) { 
    95                                 if(!preg_match('![\w\d-]+: .+!',$param_value)) { 
    96                                     trigger_error("[plugin] invalid header format '".$param_value."'",E_USER_NOTICE); 
    97                                     return; 
    98                                 } else { 
    99                                     $extra_headers[] = $param_value; 
    100                                 } 
    101                             } 
    102                             break; 
    103                         case "proxy_host": 
    104                             if(!empty($param_value)) { 
    105                                 $proxy_host = $param_value; 
    106                             } 
    107                             break; 
    108                         case "proxy_port": 
    109                             if(!preg_match('!\D!', $param_value)) { 
    110                                 $proxy_port = (int) $param_value; 
    111                             } else { 
    112                                 trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE); 
    113                                 return; 
    114                             } 
    115                             break; 
    116                         case "agent": 
    117                             if(!empty($param_value)) { 
    118                                 $agent = $param_value; 
    119                             } 
    120                             break; 
    121                         case "referer": 
    122                             if(!empty($param_value)) { 
    123                                 $referer = $param_value; 
    124                             } 
    125                             break; 
    126                         case "timeout": 
    127                             if(!preg_match('!\D!', $param_value)) { 
    128                                 $timeout = (int) $param_value; 
    129                             } else { 
    130                                 trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE); 
    131                                 return; 
    132                             } 
    133                             break; 
    134                         default: 
    135                             trigger_error("[plugin] unrecognized attribute '".$param_key."'",E_USER_NOTICE); 
    136                             return; 
    137                     } 
    138                 } 
    139                 if(!empty($proxy_host) && !empty($proxy_port)) { 
    140                     $_is_proxy = true; 
    141                     $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout); 
    142                 } else { 
    143                     $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout); 
    144                 } 
    145  
    146                 if(!$fp) { 
    147                     trigger_error("[plugin] unable to fetch: $errstr ($errno)",E_USER_NOTICE); 
    148                     return; 
    149                 } else { 
    150                     if($_is_proxy) { 
    151                         fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n"); 
    152                     } else { 
    153                         fputs($fp, "GET $uri HTTP/1.0\r\n"); 
    154                     } 
    155                     if(!empty($host)) { 
    156                         fputs($fp, "Host: $host\r\n"); 
    157                     } 
    158                     if(!empty($accept)) { 
    159                         fputs($fp, "Accept: $accept\r\n"); 
    160                     } 
    161                     if(!empty($agent)) { 
    162                         fputs($fp, "User-Agent: $agent\r\n"); 
    163                     } 
    164                     if(!empty($referer)) { 
    165                         fputs($fp, "Referer: $referer\r\n"); 
    166                     } 
    167                     if(isset($extra_headers) && is_array($extra_headers)) { 
    168                         foreach($extra_headers as $curr_header) { 
    169                             fputs($fp, $curr_header."\r\n"); 
    170                         } 
    171                     } 
    172                     if(!empty($user) && !empty($pass)) { 
    173                         fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n"); 
    174                     } 
    175  
    176                     fputs($fp, "\r\n"); 
    177                     while(!feof($fp)) { 
    178                         $content .= fgets($fp,4096); 
    179                     } 
    180                     fclose($fp); 
    181                     $csplit = preg_split("!\r\n\r\n!",$content,2); 
    182  
    183                     $content = $csplit[1]; 
    184  
    185                     if(!empty($params['assign_headers'])) { 
    186                         $template->assign($params['assign_headers'],preg_split("!\r\n!",$csplit[0])); 
    187                     } 
    188                 } 
    189             } else { 
    190                 trigger_error("[plugin fetch] unable to parse URL, check syntax",E_USER_NOTICE); 
    191                 return; 
    192             } 
    193         } else { 
    194             // ftp fetch 
    195             if($fp = @fopen($params['file'],'r')) { 
    196                 while(!feof($fp)) { 
    197                     $content .= fgets ($fp,4096); 
    198                 } 
    199                 fclose($fp); 
    200             } else { 
    201                 trigger_error('[plugin] fetch cannot read file \'' . $params['file'] .'\'',E_USER_NOTICE); 
    202                 return; 
    203             } 
     201        $content = @file_get_contents($params['file']); 
     202        if ($content === false) { 
     203            throw new SmartyException("{fetch} cannot read resource '" . $params['file'] ."'"); 
    204204        } 
    205  
    206     } 
    207  
     205    } 
    208206 
    209207    if (!empty($params['assign'])) { 
    210         $template->assign($params['assign'],$content); 
     208        $template->assign($params['assign'], $content); 
    211209    } else { 
    212210        return $content; 
  • vendors/smarty/current/plugins/function.html_checkboxes.php

    r5823 r6008  
    178178    if ($labels) { 
    179179        if ($label_ids) { 
    180             $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!u', '_', $name . '_' . $value)); 
     180            $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', $name . '_' . $value)); 
    181181            $_output .= '<label for="' . $_id . '">'; 
    182182        } else { 
  • vendors/smarty/current/plugins/function.html_image.php

    r5765 r6008  
    4747    $suffix = ''; 
    4848    $path_prefix = ''; 
    49     $server_vars = $_SERVER; 
    50     $basedir = isset($server_vars['DOCUMENT_ROOT']) ? $server_vars['DOCUMENT_ROOT'] : ''; 
     49    $basedir = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : ''; 
    5150    foreach($params as $_key => $_val) { 
    5251        switch ($_key) { 
     
    8988    }  
    9089 
    91     if (substr($file, 0, 1) == '/') { 
     90    if ($file[0] == '/') { 
    9291        $_image_path = $basedir . $file; 
    9392    } else { 
    9493        $_image_path = $file; 
    95     }  
     94    } 
     95     
     96    // strip file protocol 
     97    if (stripos($params['file'], 'file://') === 0) { 
     98        $params['file'] = substr($params['file'], 7); 
     99    } 
     100     
     101    $protocol = strpos($params['file'], '://'); 
     102    if ($protocol !== false) { 
     103        $protocol = strtolower(substr($params['file'], 0, $protocol)); 
     104    } 
     105     
     106    if (isset($template->smarty->security_policy)) { 
     107        if ($protocol) { 
     108            // remote resource (or php stream, 
) 
     109            if(!$template->smarty->security_policy->isTrustedUri($params['file'])) { 
     110                return; 
     111            } 
     112        } else { 
     113            // local file 
     114            if(!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) { 
     115                return; 
     116            } 
     117        } 
     118    } 
    96119 
    97120    if (!isset($params['width']) || !isset($params['height'])) { 
     121        // FIXME: (rodneyrehm) getimagesize() loads the complete file off a remote resource, use custom [jpg,png,gif]header reader! 
    98122        if (!$_image_data = @getimagesize($_image_path)) { 
    99123            if (!file_exists($_image_path)) { 
     
    107131                return; 
    108132            }  
    109         }  
    110         if (isset($template->smarty->security_policy)) { 
    111             if (!$template->smarty->security_policy->isTrustedResourceDir($_image_path)) { 
    112                 return; 
    113             }  
    114         }  
     133        } 
    115134 
    116135        if (!isset($params['width'])) { 
     
    123142 
    124143    if (isset($params['dpi'])) { 
    125         if (strstr($server_vars['HTTP_USER_AGENT'], 'Mac')) { 
     144        if (strstr($_SERVER['HTTP_USER_AGENT'], 'Mac')) { 
     145            // FIXME: (rodneyrehm) wrong dpi assumption 
     146            // don't know who thought this up
 even if it was true in 1998, it's definitely wrong in 2011. 
    126147            $dpi_default = 72; 
    127148        } else { 
  • vendors/smarty/current/plugins/function.html_radios.php

    r5823 r6008  
    166166    if ($labels) { 
    167167        if ($label_ids) { 
    168             $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!u', '_', $name . '_' . $value)); 
     168            $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', $name . '_' . $value)); 
    169169            $_output .= '<label for="' . $_id . '">'; 
    170170        } else { 
  • vendors/smarty/current/plugins/function.mailto.php

    r5765 r6008  
    131131        $address_encode = ''; 
    132132        for ($x = 0, $_length = strlen($address); $x < $_length; $x++) { 
    133             if (preg_match('!\w!u', $address[$x])) { 
     133            if (preg_match('!\w!' . Smarty::$_UTF8_MODIFIER, $address[$x])) { 
    134134                $address_encode .= '%' . bin2hex($address[$x]); 
    135135            } else { 
  • vendors/smarty/current/plugins/modifier.capitalize.php

    r5765 r6008  
    2525function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = false) 
    2626{ 
    27     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     27    if (Smarty::$_MBSTRING) { 
    2828        if ($lc_rest) { 
    2929            // uppercase (including hyphenated words) 
    30             $upper_string = mb_convert_case( $string, MB_CASE_TITLE, SMARTY_RESOURCE_CHAR_SET ); 
     30            $upper_string = mb_convert_case( $string, MB_CASE_TITLE, Smarty::$_CHARSET ); 
    3131        } else { 
    3232            // uppercase word breaks 
    33             $upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!ueS", "stripslashes('\\1').mb_convert_case(stripslashes('\\2'),MB_CASE_UPPER, SMARTY_RESOURCE_CHAR_SET)", $string); 
     33            $upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!eS" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').mb_convert_case(stripslashes('\\2'),MB_CASE_UPPER, '" . addslashes(Smarty::$_CHARSET) . "')", $string); 
    3434        } 
    3535        // check uc_digits case 
    3636        if (!$uc_digits) { 
    37             if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!u", $string, $matches, PREG_OFFSET_CAPTURE)) { 
     37            if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches, PREG_OFFSET_CAPTURE)) { 
    3838                foreach($matches[1] as $match) { 
    39                     $upper_string = substr_replace($upper_string, mb_strtolower($match[0], SMARTY_RESOURCE_CHAR_SET), $match[1], strlen($match[0])); 
     39                    $upper_string = substr_replace($upper_string, mb_strtolower($match[0], Smarty::$_CHARSET), $match[1], strlen($match[0])); 
    4040                } 
    4141            }  
    4242        } 
    43         $upper_string = preg_replace("!((^|\s)['\"])(\w)!ue", "stripslashes('\\1').mb_convert_case(stripslashes('\\3'),MB_CASE_UPPER, SMARTY_RESOURCE_CHAR_SET)", $upper_string); 
     43        $upper_string = preg_replace("!((^|\s)['\"])(\w)!e" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').mb_convert_case(stripslashes('\\3'),MB_CASE_UPPER, '" . addslashes(Smarty::$_CHARSET) . "')", $upper_string); 
    4444        return $upper_string; 
    4545    } 
     
    5050    } 
    5151    // uppercase (including hyphenated words) 
    52     $upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!ueS", "stripslashes('\\1').ucfirst(stripslashes('\\2'))", $string);  
     52    $upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!eS" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').ucfirst(stripslashes('\\2'))", $string);  
    5353    // check uc_digits case 
    5454    if (!$uc_digits) { 
    55         if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!u", $string, $matches, PREG_OFFSET_CAPTURE)) { 
     55        if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches, PREG_OFFSET_CAPTURE)) { 
    5656            foreach($matches[1] as $match) { 
    5757                $upper_string = substr_replace($upper_string, strtolower($match[0]), $match[1], strlen($match[0])); 
     
    5959        }  
    6060    } 
    61     $upper_string = preg_replace("!((^|\s)['\"])(\w)!ue", "stripslashes('\\1').strtoupper(stripslashes('\\3'))", $upper_string); 
     61    $upper_string = preg_replace("!((^|\s)['\"])(\w)!e" . Smarty::$_UTF8_MODIFIER, "stripslashes('\\1').strtoupper(stripslashes('\\3'))", $upper_string); 
    6262    return $upper_string; 
    6363}  
  • vendors/smarty/current/plugins/modifier.date_format.php

    r5765 r6008  
    2727 * @uses smarty_make_timestamp() 
    2828 */ 
    29 function smarty_modifier_date_format($string, $format = SMARTY_RESOURCE_DATE_FORMAT, $default_date = '',$formatter='auto') 
     29function smarty_modifier_date_format($string, $format=null, $default_date='', $formatter='auto') 
    3030{ 
     31    if ($format === null) { 
     32        $format = Smarty::$_DATE_FORMAT; 
     33    } 
    3134    /** 
    3235    * Include the {@link shared.make_timestamp.php} plugin 
  • vendors/smarty/current/plugins/modifier.debug_print_var.php

    r5765 r6008  
    7171        case 'string' : 
    7272            $results = strtr($var, $_replace); 
    73             if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    74                 if (mb_strlen($var, SMARTY_RESOURCE_CHAR_SET) > $length) { 
    75                     $results = mb_substr($var, 0, $length - 3, SMARTY_RESOURCE_CHAR_SET) . '...'; 
     73            if (Smarty::$_MBSTRING) { 
     74                if (mb_strlen($var, Smarty::$_CHARSET) > $length) { 
     75                    $results = mb_substr($var, 0, $length - 3, Smarty::$_CHARSET) . '...'; 
    7676                } 
    7777            } else { 
     
    8787        default : 
    8888            $results = strtr((string) $var, $_replace); 
    89             if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    90                 if (mb_strlen($results, SMARTY_RESOURCE_CHAR_SET) > $length) { 
    91                     $results = mb_substr($results, 0, $length - 3, SMARTY_RESOURCE_CHAR_SET) . '...'; 
     89            if (Smarty::$_MBSTRING) { 
     90                if (mb_strlen($results, Smarty::$_CHARSET) > $length) { 
     91                    $results = mb_substr($results, 0, $length - 3, Smarty::$_CHARSET) . '...'; 
    9292                } 
    9393            } else { 
  • vendors/smarty/current/plugins/modifier.escape.php

    r5765 r6008  
    2525{ 
    2626    if (!$char_set) { 
    27         $char_set = SMARTY_RESOURCE_CHAR_SET; 
     27        $char_set = Smarty::$_CHARSET; 
    2828    } 
    2929 
     
    3333 
    3434        case 'htmlall': 
    35             if (SMARTY_MBSTRING /* ^phpunit */ && empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     35            if (Smarty::$_MBSTRING) { 
    3636                // mb_convert_encoding ignores htmlspecialchars() 
    3737                $string = htmlspecialchars($string, ENT_QUOTES, $char_set, $double_encode); 
     
    6565        case 'hexentity': 
    6666            $return = ''; 
    67             if (SMARTY_MBSTRING /* ^phpunit */ && empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     67            if (Smarty::$_MBSTRING) { 
    6868                require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php'); 
    6969                $return = ''; 
    70                 foreach (smarty_mb_to_unicode($string, SMARTY_RESOURCE_CHAR_SET) as $unicode) { 
     70                foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) { 
    7171                    $return .= '&#x' . strtoupper(dechex($unicode)) . ';'; 
    7272                } 
     
    8282        case 'decentity': 
    8383            $return = ''; 
    84             if (SMARTY_MBSTRING /* ^phpunit */ && empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     84            if (Smarty::$_MBSTRING) { 
    8585                require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php'); 
    8686                $return = ''; 
    87                 foreach (smarty_mb_to_unicode($string, SMARTY_RESOURCE_CHAR_SET) as $unicode) { 
     87                foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) { 
    8888                    $return .= '&#' . $unicode . ';'; 
    8989                } 
     
    102102 
    103103        case 'mail': 
    104             if (SMARTY_MBSTRING /* ^phpunit */ && empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     104            if (Smarty::$_MBSTRING) { 
    105105                require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'); 
    106106                return smarty_mb_str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string); 
     
    112112            // escape non-standard chars, such as ms document quotes 
    113113            $return = ''; 
    114             if (SMARTY_MBSTRING /* ^phpunit */ && empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     114            if (Smarty::$_MBSTRING) { 
    115115                require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php'); 
    116                 foreach (smarty_mb_to_unicode($string, SMARTY_RESOURCE_CHAR_SET) as $unicode) { 
     116                foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) { 
    117117                    if ($unicode >= 126) { 
    118118                        $return .= '&#' . $unicode . ';'; 
  • vendors/smarty/current/plugins/modifier.replace.php

    r5765 r6008  
    2323function smarty_modifier_replace($string, $search, $replace) 
    2424{ 
    25     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     25    if (Smarty::$_MBSTRING) { 
    2626        require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'); 
    2727        return smarty_mb_str_replace($search, $replace, $string); 
  • vendors/smarty/current/plugins/modifier.spacify.php

    r5765 r6008  
    2222{ 
    2323    // well
 what about charsets besides latin and UTF-8? 
    24     return implode($spacify_char, preg_split('//u', $string, -1, PREG_SPLIT_NO_EMPTY)); 
     24    return implode($spacify_char, preg_split('//' . Smarty::$_UTF8_MODIFIER, $string, -1, PREG_SPLIT_NO_EMPTY)); 
    2525}  
    2626 
  • vendors/smarty/current/plugins/modifier.truncate.php

    r5765 r6008  
    2929        return ''; 
    3030 
    31     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    32         if (mb_strlen($string, SMARTY_RESOURCE_CHAR_SET) > $length) { 
    33             $length -= min($length, mb_strlen($etc, SMARTY_RESOURCE_CHAR_SET)); 
     31    if (Smarty::$_MBSTRING) { 
     32        if (mb_strlen($string, Smarty::$_CHARSET) > $length) { 
     33            $length -= min($length, mb_strlen($etc, Smarty::$_CHARSET)); 
    3434            if (!$break_words && !$middle) { 
    35                 $string = preg_replace('/\s+?(\S+)?$/u', '', mb_substr($string, 0, $length + 1, SMARTY_RESOURCE_CHAR_SET)); 
     35                $string = preg_replace('/\s+?(\S+)?$/' . Smarty::$_UTF8_MODIFIER, '', mb_substr($string, 0, $length + 1, Smarty::$_CHARSET)); 
    3636            }  
    3737            if (!$middle) { 
    38                 return mb_substr($string, 0, $length, SMARTY_RESOURCE_CHAR_SET) . $etc; 
     38                return mb_substr($string, 0, $length, Smarty::$_CHARSET) . $etc; 
    3939            } 
    40             return mb_substr($string, 0, $length / 2, SMARTY_RESOURCE_CHAR_SET) . $etc . mb_substr($string, - $length / 2, $length, SMARTY_RESOURCE_CHAR_SET); 
     40            return mb_substr($string, 0, $length / 2, Smarty::$_CHARSET) . $etc . mb_substr($string, - $length / 2, $length, Smarty::$_CHARSET); 
    4141        } 
    4242        return $string; 
  • vendors/smarty/current/plugins/modifiercompiler.count_characters.php

    r5765 r6008  
    2222{ 
    2323    if (!isset($params[1]) || $params[1] != 'true') { 
    24         return 'preg_match_all(\'/[^\s]/u\',' . $params[0] . ', $tmp)'; 
     24        return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[0] . ', $tmp)'; 
    2525    } 
    26     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    27         return 'mb_strlen(' . $params[0] . ', SMARTY_RESOURCE_CHAR_SET)'; 
     26    if (Smarty::$_MBSTRING) { 
     27        return 'mb_strlen(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')'; 
    2828    } 
    2929    // no MBString fallback 
  • vendors/smarty/current/plugins/modifiercompiler.count_sentences.php

    r5765 r6008  
    2323{ 
    2424    // find periods, question marks, exclamation marks with a word before but not after. 
    25     return 'preg_match_all("#\w[\.\?\!](\W|$)#uS", ' . $params[0] . ', $tmp)'; 
     25    return 'preg_match_all("#\w[\.\?\!](\W|$)#S' . Smarty::$_UTF8_MODIFIER . '", ' . $params[0] . ', $tmp)'; 
    2626} 
    2727 
  • vendors/smarty/current/plugins/modifiercompiler.count_words.php

    r5765 r6008  
    2121function smarty_modifiercompiler_count_words($params, $compiler) 
    2222{ 
    23     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    24         // return 'preg_match_all(\'#[\w\pL]+#u\', ' . $params[0] . ', $tmp)'; 
     23    if (Smarty::$_MBSTRING) { 
     24        // return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)'; 
    2525        // expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592 
    26         return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/u\', ' . $params[0] . ', $tmp)'; 
     26        return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)'; 
    2727    } 
    2828    // no MBString fallback 
  • vendors/smarty/current/plugins/modifiercompiler.escape.php

    r5765 r6008  
    2828    try { 
    2929        $esc_type = smarty_literal_compiler_param($params, 1, 'html'); 
    30         $char_set = smarty_literal_compiler_param($params, 2, SMARTY_RESOURCE_CHAR_SET); 
     30        $char_set = smarty_literal_compiler_param($params, 2, Smarty::$_CHARSET); 
    3131        $double_encode = smarty_literal_compiler_param($params, 3, true); 
    3232 
    3333        if (!$char_set) { 
    34             $char_set = SMARTY_RESOURCE_CHAR_SET; 
     34            $char_set = Smarty::$_CHARSET; 
    3535        } 
    3636 
     
    4343 
    4444            case 'htmlall': 
    45                 if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     45                if (Smarty::$_MBSTRING) { 
    4646                    return 'mb_convert_encoding(htmlspecialchars(' 
    4747                        . $params[0] .', ENT_QUOTES, ' 
  • vendors/smarty/current/plugins/modifiercompiler.from_charset.php

    r5765 r6008  
    2020function smarty_modifiercompiler_from_charset($params, $compiler) 
    2121{ 
    22     if (!SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     22    if (!Smarty::$_MBSTRING) { 
    2323        // FIXME: (rodneyrehm) shouldn't this throw an error? 
    2424        return $params[0]; 
     
    2929    } 
    3030 
    31     return 'mb_convert_encoding(' . $params[0] . ', SMARTY_RESOURCE_CHAR_SET, ' . $params[1] . ')'; 
     31    return 'mb_convert_encoding(' . $params[0] . ', "' . addslashes(Smarty::$_CHARSET) . '", ' . $params[1] . ')'; 
    3232} 
    3333 
  • vendors/smarty/current/plugins/modifiercompiler.lower.php

    r5765 r6008  
    2222function smarty_modifiercompiler_lower($params, $compiler) 
    2323{ 
    24     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    25         return 'mb_strtolower(' . $params[0] . ',SMARTY_RESOURCE_CHAR_SET)' ; 
     24    if (Smarty::$_MBSTRING) { 
     25        return 'mb_strtolower(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')' ; 
    2626    } 
    2727    // no MBString fallback 
  • vendors/smarty/current/plugins/modifiercompiler.strip.php

    r5765 r6008  
    2828        $params[1] = "' '"; 
    2929    } 
    30     return "preg_replace('!\s+!u', {$params[1]},{$params[0]})"; 
     30    return "preg_replace('!\s+!" . Smarty::$_UTF8_MODIFIER . "', {$params[1]},{$params[0]})"; 
    3131} 
    3232 
  • vendors/smarty/current/plugins/modifiercompiler.to_charset.php

    r5765 r6008  
    2020function smarty_modifiercompiler_to_charset($params, $compiler) 
    2121{ 
    22     if (!SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     22    if (!Smarty::$_MBSTRING) { 
    2323        // FIXME: (rodneyrehm) shouldn't this throw an error? 
    2424        return $params[0]; 
     
    2929    } 
    3030 
    31     return 'mb_convert_encoding(' . $params[0] . ', ' . $params[1] . ', SMARTY_RESOURCE_CHAR_SET)'; 
     31    return 'mb_convert_encoding(' . $params[0] . ', ' . $params[1] . ', "' . addslashes(Smarty::$_CHARSET) . '")'; 
    3232} 
    3333 
  • vendors/smarty/current/plugins/modifiercompiler.unescape.php

    r5765 r6008  
    2424    } 
    2525    if (!isset($params[2])) { 
    26         $params[2] = "SMARTY_RESOURCE_CHAR_SET"; 
     26        $params[2] = '\'' . addslashes(Smarty::$_CHARSET) . '\''; 
    2727    } else { 
    2828        $params[2] = "'" . $params[2] . "'"; 
     
    3333            return 'mb_convert_encoding(' . $params[0] . ', ' . $params[2] . ', \'HTML-ENTITIES\')'; 
    3434        case 'htmlall': 
    35             if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     35            if (Smarty::$_MBSTRING) { 
    3636                return 'mb_convert_encoding(' . $params[0] . ', ' . $params[2] . ', \'HTML-ENTITIES\')'; 
    3737            } 
  • vendors/smarty/current/plugins/modifiercompiler.upper.php

    r5765 r6008  
    2121function smarty_modifiercompiler_upper($params, $compiler) 
    2222{ 
    23     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
    24         return 'mb_strtoupper(' . $params[0] . ',SMARTY_RESOURCE_CHAR_SET)' ; 
     23    if (Smarty::$_MBSTRING) { 
     24        return 'mb_strtoupper(' . $params[0] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')' ; 
    2525    } 
    2626    // no MBString fallback 
  • vendors/smarty/current/plugins/modifiercompiler.wordwrap.php

    r5765 r6008  
    3131    }  
    3232    $function = 'wordwrap'; 
    33     if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { 
     33    if (Smarty::$_MBSTRING) { 
    3434        if ($compiler->tag_nocache | $compiler->nocache) { 
    3535            $compiler->template->required_plugins['nocache']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR .'shared.mb_wordwrap.php'; 
  • vendors/smarty/current/plugins/shared.escape_special_chars.php

    r5765 r6008  
    2222    { 
    2323        if (!is_array($string)) { 
    24             $string = htmlspecialchars($string, ENT_COMPAT, SMARTY_RESOURCE_CHAR_SET, false); 
     24            $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false); 
    2525        } 
    2626        return $string; 
  • vendors/smarty/current/plugins/shared.mb_wordwrap.php

    r5765 r6008  
    2323    { 
    2424        // break words into tokens using white space as a delimiter 
    25         $tokens = preg_split('!(\s)!uS', $str, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE); 
     25        $tokens = preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE); 
    2626        $length = 0; 
    2727        $t = ''; 
     
    2929 
    3030        foreach ($tokens as $_token) { 
    31             $token_length = mb_strlen($_token, SMARTY_RESOURCE_CHAR_SET); 
     31            $token_length = mb_strlen($_token, Smarty::$_CHARSET); 
    3232            $_tokens = array($_token); 
    3333            if ($token_length > $width) { 
    3434                // remove last space 
    35                 $t = mb_substr($t, 0, -1, SMARTY_RESOURCE_CHAR_SET); 
     35                $t = mb_substr($t, 0, -1, Smarty::$_CHARSET); 
    3636                $_previous = false; 
    3737                $length = 0; 
    3838 
    3939                if ($cut) { 
    40                     $_tokens = preg_split('!(.{' . $width . '})!uS', $_token, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE); 
     40                    $_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER, $_token, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE); 
    4141                    // broken words go on a new line 
    4242                    $t .= $break; 
     
    4545 
    4646            foreach ($_tokens as $token) { 
    47                 $_space = !!preg_match('!^\s$!uS', $token); 
    48                 $token_length = mb_strlen($token, SMARTY_RESOURCE_CHAR_SET); 
     47                $_space = !!preg_match('!^\s$!S' . Smarty::$_UTF8_MODIFIER, $token); 
     48                $token_length = mb_strlen($token, Smarty::$_CHARSET); 
    4949                $length += $token_length; 
    5050 
     
    5252                    // remove space before inserted break 
    5353                    if ($_previous && $token_length < $width) { 
    54                         $t = mb_substr($t, 0, -1, SMARTY_RESOURCE_CHAR_SET); 
     54                        $t = mb_substr($t, 0, -1, Smarty::$_CHARSET); 
    5555                    } 
    5656 
  • vendors/smarty/current/plugins/variablefilter.htmlspecialchars.php

    r5765 r6008  
    1616function smarty_variablefilter_htmlspecialchars($source, $smarty) 
    1717{ 
    18     return htmlspecialchars($source, ENT_QUOTES, SMARTY_RESOURCE_CHAR_SET); 
     18    return htmlspecialchars($source, ENT_QUOTES, Smarty::$_CHARSET); 
    1919} 
    2020 
  • vendors/smarty/current/sysplugins/smarty_internal_compile_block.php

    r5765 r6008  
    11<?php 
    22/** 
    3  * Smarty Internal Plugin Compile Block 
    4  * 
    5  * Compiles the {block}{/block} tags 
    6  * 
    7  * @package Smarty 
    8  * @subpackage Compiler 
    9  * @author Uwe Tews 
    10  */ 
     3* Smarty Internal Plugin Compile Block 
     4* 
     5* Compiles the {block}{/block} tags 
     6* 
     7* @package Smarty 
     8* @subpackage Compiler 
     9* @author Uwe Tews 
     10*/ 
    1111 
    1212/** 
    13  * Smarty Internal Plugin Compile Block Class 
    14  * 
    15  * @package Smarty 
    16  * @subpackage Compiler 
    17  */ 
     13* Smarty Internal Plugin Compile Block Class 
     14* 
     15* @package Smarty 
     16* @subpackage Compiler 
     17*/ 
    1818class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase { 
    1919 
    2020    /** 
    21      * Attribute definition: Overwrites base class. 
    22      * 
    23      * @var array 
    24      * @see Smarty_Internal_CompileBase 
    25      */ 
     21    * Attribute definition: Overwrites base class. 
     22    * 
     23    * @var array 
     24    * @see Smarty_Internal_CompileBase 
     25    */ 
    2626    public $required_attributes = array('name'); 
    2727    /** 
    28      * Attribute definition: Overwrites base class. 
    29      * 
    30      * @var array 
    31      * @see Smarty_Internal_CompileBase 
    32      */ 
     28    * Attribute definition: Overwrites base class. 
     29    * 
     30    * @var array 
     31    * @see Smarty_Internal_CompileBase 
     32    */ 
    3333    public $shorttag_order = array('name', 'hide'); 
    3434    /** 
    35      * Attribute definition: Overwrites base class. 
    36      * 
    37      * @var array 
    38      * @see Smarty_Internal_CompileBase 
    39      */ 
     35    * Attribute definition: Overwrites base class. 
     36    * 
     37    * @var array 
     38    * @see Smarty_Internal_CompileBase 
     39    */ 
    4040    public $optional_attributes = array('hide'); 
    4141 
    4242    /** 
    43      * Compiles code for the {block} tag 
    44      * 
    45      * @param array  $args     array with attributes from parser 
    46      * @param object $compiler compiler object 
    47      * @return boolean true 
    48      */ 
     43    * Compiles code for the {block} tag 
     44    * 
     45    * @param array  $args     array with attributes from parser 
     46    * @param object $compiler compiler object 
     47    * @return boolean true 
     48    */ 
    4949    public function compile($args, $compiler) 
    5050    { 
    5151        // check and get attributes 
    5252        $_attr = $this->getAttributes($compiler, $args); 
    53         $save = array($_attr, $compiler->parser->current_buffer, $compiler->nocache, $compiler->smarty->merge_compiled_includes); 
     53        $save = array($_attr, $compiler->parser->current_buffer, $compiler->nocache, $compiler->smarty->merge_compiled_includes, $compiler->merged_templates, $compiler->smarty->merged_templates_func, $compiler->template->properties, $compiler->template->has_nocache_code); 
    5454        $this->openTag($compiler, 'block', $save); 
    5555        if ($_attr['nocache'] == true) { 
     
    6767 
    6868    /** 
    69      * Save or replace child block source by block name during parsing 
    70      * 
    71      * @param string $block_content     block source content 
    72      * @param string $block_tag         opening block tag 
    73      * @param object $template          template object 
    74      * @param string $filepath          filepath of template source 
    75      */ 
     69    * Save or replace child block source by block name during parsing 
     70    * 
     71    * @param string $block_content     block source content 
     72    * @param string $block_tag         opening block tag 
     73    * @param object $template          template object 
     74    * @param string $filepath          filepath of template source 
     75    */ 
    7676    public static function saveBlockData($block_content, $block_tag, $template, $filepath) 
    7777    { 
    7878        $_rdl = preg_quote($template->smarty->right_delimiter); 
    7979        $_ldl = preg_quote($template->smarty->left_delimiter); 
    80  
    81         if (0 == preg_match("!({$_ldl}block\s+)(name=)?(\w+|'.*'|\".*\")(\s*?)?((append|prepend|nocache)?(\s*)?(hide)?)?(\s*{$_rdl})!", $block_tag, $_match)) { 
     80        if ($template->smarty->auto_literal) { 
     81            $al = '\s*'; 
     82        } else { 
     83            $al = ''; 
     84        } 
     85        if (0 == preg_match("!({$_ldl}{$al}block\s+)(name=)?(\w+|'.*'|\".*\")(\s*?)?((append|prepend|nocache)?(\s*)?(hide)?)?(\s*{$_rdl})!", $block_tag, $_match)) { 
    8286            $error_text = 'Syntax Error in template "' . $template->source->filepath . '"   "' . htmlspecialchars($block_tag) . '" illegal options'; 
    8387            throw new SmartyCompilerException($error_text); 
     
    8589            $_name = trim($_match[3], '\'"'); 
    8690            if ($_match[8] != 'hide' || isset($template->block_data[$_name])) {        // replace {$smarty.block.child} 
    87                 if (strpos($block_content, $template->smarty->left_delimiter . '$smarty.block.child' . $template->smarty->right_delimiter) !== false) { 
     91                // do we have {$smart.block.child} in nested {block} tags? 
     92                if (0 != preg_match_all("!({$_ldl}{$al}block\s+)(name=)?(\w+|'.*'|\".*\")([\s\S]*?{$_rdl})([\s\S]*?)({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})([\s\S]*?{$_ldl}{$al}/block{$_rdl})!", $block_content, $_match2)) { 
     93                    foreach($_match2[3] as $name) { 
     94                        // get it's replacement 
     95                        $_name2 = trim($name, '\'"'); 
     96                        if (isset($template->block_data[$_name2])) { 
     97                            $replacement = $template->block_data[$_name2]['source']; 
     98                        } else { 
     99                            $replacement = ''; 
     100                        } 
     101                        // replace {$smarty.block.child} tag 
     102                        $search = array("%({$_ldl}{$al}block[\s\S]*?{$name}[\s\S]*?{$_rdl})([\s\S]*?)({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})([\s\S]*?{$_ldl}{$al}/block{$_rdl})%","/§§§child§§§/"); 
     103                        $replace = array('\2§§§child§§§', $replacement); 
     104                        $block_content = preg_replace($search, $replace , $block_content); 
     105                    } 
     106                } 
     107                // do we have not nested {$smart.block.child} 
     108                if (0 != preg_match("/({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})/", $block_content, $_match2)) { 
     109                    // get child replacement for this block 
    88110                    if (isset($template->block_data[$_name])) { 
    89                         $block_content = str_replace($template->smarty->left_delimiter . '$smarty.block.child' . $template->smarty->right_delimiter, 
    90                         $template->block_data[$_name]['source'], $block_content); 
     111                        $replacement = $template->block_data[$_name]['source']; 
    91112                        unset($template->block_data[$_name]); 
    92113                    } else { 
    93                         $block_content = str_replace($template->smarty->left_delimiter . '$smarty.block.child' . $template->smarty->right_delimiter, 
    94                         '', $block_content); 
     114                        $replacement = ''; 
    95115                    } 
     116                    $block_content = preg_replace("/({$_ldl}{$al}\\\$smarty\.block\.child{$_rdl})/", $replacement, $block_content); 
    96117                } 
    97118                if (isset($template->block_data[$_name])) { 
     
    120141 
    121142    /** 
    122      * Compile saved child block source 
    123      * 
    124      * @param object $compiler  compiler object 
    125      * @param string $_name     optional name of child block 
    126      * @return string   compiled code of schild block 
    127      */ 
     143    * Compile saved child block source 
     144    * 
     145    * @param object $compiler  compiler object 
     146    * @param string $_name     optional name of child block 
     147    * @return string   compiled code of schild block 
     148    */ 
    128149    public static function compileChildBlock($compiler, $_name = null) 
    129150    { 
     
    192213 
    193214/** 
    194  * Smarty Internal Plugin Compile BlockClose Class 
    195  * 
    196  * @package Smarty 
    197  * @subpackage Compiler 
     215* Smarty Internal Plugin Compile BlockClose Class 
     216* 
     217* @package Smarty 
     218* @subpackage Compiler 
    198219*/ 
    199220class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase { 
    200221 
    201222    /** 
    202      * Compiles code for the {/block} tag 
    203      * 
    204      * @param array  $args     array with attributes from parser 
    205      * @param object $compiler compiler object 
    206      * @return string compiled code 
    207      */ 
     223    * Compiles code for the {/block} tag 
     224    * 
     225    * @param array  $args     array with attributes from parser 
     226    * @param object $compiler compiler object 
     227    * @return string compiled code 
     228    */ 
    208229    public function compile($args, $compiler) 
    209230    { 
     
    214235        $_name = trim($saved_data[0]['name'], "\"'"); 
    215236        if (isset($compiler->template->block_data[$_name]) && !isset($compiler->template->block_data[$_name]['compiled'])) { 
     237            // restore to status before {block} tag as new subtemplate code of parent {block} is not needed 
     238            $compiler->merged_templates = $saved_data[4]; 
     239            $compiler->smarty->merged_templates_func = $saved_data[5]; 
     240            $compiler->template->properties = $saved_data[6]; 
     241            $compiler->template->has_nocache_code = $saved_data[7]; 
    216242            $_output = Smarty_Internal_Compile_Block::compileChildBlock($compiler, $_name); 
    217243        } else { 
  • vendors/smarty/current/sysplugins/smarty_internal_compile_capture.php

    r5765 r6008  
    4949        $append = isset($_attr['append']) ? $_attr['append'] : 'null'; 
    5050 
    51         $compiler->_capture_stack[] = array($buffer, $assign, $append, $compiler->nocache); 
     51        $compiler->_capture_stack[0][] = array($buffer, $assign, $append, $compiler->nocache); 
    5252        // maybe nocache because of nocache variables 
    5353        $compiler->nocache = $compiler->nocache | $compiler->tag_nocache; 
    54         $_output = "<?php \$_smarty_tpl->_capture_stack[] = array($buffer, $assign, $append); ob_start(); ?>"; 
     54        $_output = "<?php \$_smarty_tpl->_capture_stack[0][] = array($buffer, $assign, $append); ob_start(); ?>"; 
    5555 
    5656        return $_output; 
     
    8383        } 
    8484 
    85         list($buffer, $assign, $append, $compiler->nocache) = array_pop($compiler->_capture_stack); 
     85        list($buffer, $assign, $append, $compiler->nocache) = array_pop($compiler->_capture_stack[0]); 
    8686 
    87         $_output = "<?php list(\$_capture_buffer, \$_capture_assign, \$_capture_append) = array_pop(\$_smarty_tpl->_capture_stack);\n"; 
     87        $_output = "<?php list(\$_capture_buffer, \$_capture_assign, \$_capture_append) = array_pop(\$_smarty_tpl->_capture_stack[0]);\n"; 
    8888        $_output .= "if (!empty(\$_capture_buffer)) {\n"; 
    8989        $_output .= " if (isset(\$_capture_assign)) \$_smarty_tpl->assign(\$_capture_assign, ob_get_contents());\n"; 
  • vendors/smarty/current/sysplugins/smarty_internal_compile_private_print_expression.php

    r5765 r6008  
    8484                // autoescape html 
    8585                if ($compiler->template->smarty->escape_html) { 
    86                     $output = "htmlspecialchars({$output}, ENT_QUOTES, SMARTY_RESOURCE_CHAR_SET)"; 
     86                    $output = "htmlspecialchars({$output}, ENT_QUOTES, '" . addslashes(Smarty::$_CHARSET) . "')"; 
    8787                } 
    8888                // loop over registerd filters 
  • vendors/smarty/current/sysplugins/smarty_internal_configfilelexer.php

    r5823 r6008  
    8282              6 => 0, 
    8383              7 => 0, 
     84              8 => 0, 
    8485            ); 
    8586        if ($this->counter >= strlen($this->data)) { 
    8687            return false; // end of input 
    8788        } 
    88         $yy_global_pattern = "/\G(#|;)|\G(\\[)|\G(\\])|\G(=)|\G([ \t\r]+)|\G(\n)|\G([0-9]*[a-zA-Z_]\\w*)/iS"; 
     89        $yy_global_pattern = "/\G(#|;)|\G(\\[)|\G(\\])|\G(=)|\G([ \t\r]+)|\G(\n)|\G([0-9]*[a-zA-Z_]\\w*)|\G([\S\s])/iS"; 
    8990 
    9091        do { 
     
    173174 
    174175    $this->token = Smarty_Internal_Configfileparser::TPC_ID; 
     176    } 
     177    function yy_r1_8($yy_subpatterns) 
     178    { 
     179 
     180    $this->token = Smarty_Internal_Configfileparser::TPC_OTHER; 
    175181    } 
    176182 
     
    529535              1 => 0, 
    530536              2 => 0, 
    531               3 => 2, 
    532537            ); 
    533538        if ($this->counter >= strlen($this->data)) { 
    534539            return false; // end of input 
    535540        } 
    536         $yy_global_pattern = "/\G(\"\"\"(?=[ \t\r]*[\n#;]))|\G([ \t\r]*\n)|\G(([\S\s]*?)(?=([ \t\r]*\n|\"\"\")))/iS"; 
     541        $yy_global_pattern = "/\G(\"\"\"(?=[ \t\r]*[\n#;]))|\G([\S\s])/iS"; 
    537542 
    538543        do { 
     
    594599    { 
    595600 
    596     $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_CONTENT; 
    597     } 
    598     function yy_r6_3($yy_subpatterns) 
    599     { 
    600  
    601     $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_CONTENT; 
     601  $to = strlen($this->data); 
     602  preg_match("/\"\"\"[ \t\r]*[\n#;]/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); 
     603  if (isset($match[0][1])) { 
     604    $to = $match[0][1]; 
     605  } 
     606  $this->value = substr($this->data,$this->counter,$to-$this->counter); 
     607  $this->token = Smarty_Internal_Configfileparser::TPC_TRIPPLE_TEXT; 
    602608    } 
    603609 
  • vendors/smarty/current/sysplugins/smarty_internal_configfileparser.php

    r5823 r6008  
    192192    const TPC_DOUBLE_QUOTED_STRING           = 11; 
    193193    const TPC_TRIPPLE_QUOTES                 = 12; 
    194     const TPC_TRIPPLE_QUOTES_END             = 13; 
    195     const TPC_NAKED_STRING                   = 14; 
    196     const TPC_TRIPPLE_CONTENT                = 15; 
    197     const TPC_NEWLINE                        = 16; 
    198     const TPC_COMMENTSTART                   = 17; 
    199     const YY_NO_ACTION = 61; 
    200     const YY_ACCEPT_ACTION = 60; 
    201     const YY_ERROR_ACTION = 59; 
    202  
    203     const YY_SZ_ACTTAB = 39; 
     194    const TPC_TRIPPLE_TEXT                   = 13; 
     195    const TPC_TRIPPLE_QUOTES_END             = 14; 
     196    const TPC_NAKED_STRING                   = 15; 
     197    const TPC_OTHER                          = 16; 
     198    const TPC_NEWLINE                        = 17; 
     199    const TPC_COMMENTSTART                   = 18; 
     200    const YY_NO_ACTION = 60; 
     201    const YY_ACCEPT_ACTION = 59; 
     202    const YY_ERROR_ACTION = 58; 
     203 
     204    const YY_SZ_ACTTAB = 38; 
    204205static public $yy_action = array( 
    205  /*     0 */    29,   30,   34,   33,   24,    7,   19,   21,   60,    9, 
    206  /*    10 */    16,    1,   20,   14,   15,    6,   23,   20,   14,   32, 
    207  /*    20 */    17,   31,   18,   27,   26,    2,    3,    5,   25,   22, 
    208  /*    30 */    35,    4,   13,   11,   10,   12,   53,   28,    8, 
     206 /*     0 */    29,   30,   34,   33,   24,   13,   19,   25,   35,   21, 
     207 /*    10 */    59,    8,    3,    1,   20,   12,   14,   31,   20,   12, 
     208 /*    20 */    15,   17,   23,   18,   27,   26,    4,    5,    6,   32, 
     209 /*    30 */     2,   11,   28,   22,   16,    9,    7,   10, 
    209210    ); 
    210211    static public $yy_lookahead = array( 
    211  /*     0 */     7,    8,    9,   10,   11,   12,    5,   14,   19,   20, 
    212  /*    10 */     2,   22,   16,   17,   14,    3,   16,   16,   17,   13, 
    213  /*    20 */     2,   15,    4,   24,   25,   22,   22,    3,   26,   16, 
    214  /*    30 */    15,    6,   27,   24,   24,    1,   28,   23,   21, 
     212 /*     0 */     7,    8,    9,   10,   11,   12,    5,   27,   15,   16, 
     213 /*    10 */    20,   21,   23,   23,   17,   18,   13,   14,   17,   18, 
     214 /*    20 */    15,    2,   17,    4,   25,   26,    6,    3,    3,   14, 
     215 /*    30 */    23,    1,   24,   17,    2,   25,   22,   25, 
    215216); 
    216217    const YY_SHIFT_USE_DFLT = -8; 
    217218    const YY_SHIFT_MAX = 19; 
    218219    static public $yy_shift_ofst = array( 
    219  /*     0 */    -8,    1,    1,    1,   -7,   -4,   -4,   15,   34,   -8, 
    220  /*    10 */    -8,   -8,   18,    6,    0,   13,   24,   12,    8,   25, 
     220 /*     0 */    -8,    1,    1,    1,   -7,   -3,   -3,   30,   -8,   -8, 
     221 /*    10 */    -8,   19,    5,    3,   15,   16,   24,   25,   32,   20, 
    221222); 
    222     const YY_REDUCE_USE_DFLT = -12; 
    223     const YY_REDUCE_MAX = 11; 
     223    const YY_REDUCE_USE_DFLT = -21; 
     224    const YY_REDUCE_MAX = 10; 
    224225    static public $yy_reduce_ofst = array( 
    225  /*     0 */   -11,   -1,   -1,   -1,    2,   10,    9,    5,   14,   17, 
    226  /*    10 */     3,    4, 
     226 /*     0 */   -10,   -1,   -1,   -1,  -20,   10,   12,    8,   14,    7, 
     227 /*    10 */   -11, 
    227228); 
    228229    static public $yyExpectedTokens = array( 
    229230        /* 0 */ array(), 
    230         /* 1 */ array(5, 16, 17, ), 
    231         /* 2 */ array(5, 16, 17, ), 
    232         /* 3 */ array(5, 16, 17, ), 
    233         /* 4 */ array(7, 8, 9, 10, 11, 12, 14, ), 
    234         /* 5 */ array(16, 17, ), 
    235         /* 6 */ array(16, 17, ), 
    236         /* 7 */ array(15, ), 
    237         /* 8 */ array(1, ), 
     231        /* 1 */ array(5, 17, 18, ), 
     232        /* 2 */ array(5, 17, 18, ), 
     233        /* 3 */ array(5, 17, 18, ), 
     234        /* 4 */ array(7, 8, 9, 10, 11, 12, 15, 16, ), 
     235        /* 5 */ array(17, 18, ), 
     236        /* 6 */ array(17, 18, ), 
     237        /* 7 */ array(1, ), 
     238        /* 8 */ array(), 
    238239        /* 9 */ array(), 
    239240        /* 10 */ array(), 
    240         /* 11 */ array(), 
    241         /* 12 */ array(2, 4, ), 
    242         /* 13 */ array(13, 15, ), 
    243         /* 14 */ array(14, 16, ), 
    244         /* 15 */ array(16, ), 
     241        /* 11 */ array(2, 4, ), 
     242        /* 12 */ array(15, 17, ), 
     243        /* 13 */ array(13, 14, ), 
     244        /* 14 */ array(14, ), 
     245        /* 15 */ array(17, ), 
    245246        /* 16 */ array(3, ), 
    246247        /* 17 */ array(3, ), 
     
    265266); 
    266267    static public $yy_default = array( 
    267  /*     0 */    44,   37,   41,   40,   59,   59,   59,   55,   36,   39, 
    268  /*    10 */    44,   44,   59,   59,   59,   59,   59,   59,   59,   59, 
    269  /*    20 */    56,   52,   58,   57,   50,   45,   43,   42,   38,   46, 
    270  /*    30 */    47,   53,   51,   49,   48,   54, 
     268 /*     0 */    44,   37,   41,   40,   58,   58,   58,   36,   39,   44, 
     269 /*    10 */    44,   58,   58,   58,   58,   58,   58,   58,   58,   58, 
     270 /*    20 */    55,   54,   57,   56,   50,   45,   43,   42,   38,   46, 
     271 /*    30 */    47,   52,   51,   49,   48,   53, 
    271272); 
    272273    const YYNOCODE = 29; 
    273274    const YYSTACKDEPTH = 100; 
    274275    const YYNSTATE = 36; 
    275     const YYNRULE = 23; 
    276     const YYERRORSYMBOL = 18; 
     276    const YYNRULE = 22; 
     277    const YYERRORSYMBOL = 19; 
    277278    const YYERRSYMDT = 'yy0'; 
    278279    const YYFALLBACK = 0; 
     
    306307  'DOT',           'ID',            'EQUAL',         'FLOAT', 
    307308  'INT',           'BOOL',          'SINGLE_QUOTED_STRING',  'DOUBLE_QUOTED_STRING', 
    308   'TRIPPLE_QUOTES',  'TRIPPLE_QUOTES_END',  'NAKED_STRING',  'TRIPPLE_CONTENT', 
    309   'NEWLINE',       'COMMENTSTART',  'error',         'start', 
    310   'global_vars',   'sections',      'var_list',      'section', 
    311   'newline',       'var',           'value',         'tripple_content', 
     309  'TRIPPLE_QUOTES',  'TRIPPLE_TEXT',  'TRIPPLE_QUOTES_END',  'NAKED_STRING', 
     310  'OTHER',         'NEWLINE',       'COMMENTSTART',  'error', 
     311  'start',         'global_vars',   'sections',      'var_list', 
     312  'section',       'newline',       'var',           'value', 
    312313    ); 
    313314 
     
    328329 /*  13 */ "value ::= SINGLE_QUOTED_STRING", 
    329330 /*  14 */ "value ::= DOUBLE_QUOTED_STRING", 
    330  /*  15 */ "value ::= TRIPPLE_QUOTES tripple_content TRIPPLE_QUOTES_END", 
    331  /*  16 */ "value ::= NAKED_STRING", 
    332  /*  17 */ "tripple_content ::= tripple_content TRIPPLE_CONTENT", 
    333  /*  18 */ "tripple_content ::= TRIPPLE_CONTENT", 
    334  /*  19 */ "tripple_content ::=", 
    335  /*  20 */ "newline ::= NEWLINE", 
    336  /*  21 */ "newline ::= COMMENTSTART NEWLINE", 
    337  /*  22 */ "newline ::= COMMENTSTART NAKED_STRING NEWLINE", 
     331 /*  15 */ "value ::= TRIPPLE_QUOTES TRIPPLE_TEXT TRIPPLE_QUOTES_END", 
     332 /*  16 */ "value ::= TRIPPLE_QUOTES TRIPPLE_QUOTES_END", 
     333 /*  17 */ "value ::= NAKED_STRING", 
     334 /*  18 */ "value ::= OTHER", 
     335 /*  19 */ "newline ::= NEWLINE", 
     336 /*  20 */ "newline ::= COMMENTSTART NEWLINE", 
     337 /*  21 */ "newline ::= COMMENTSTART NAKED_STRING NEWLINE", 
    338338    ); 
    339339 
     
    616616 
    617617    static public $yyRuleInfo = array( 
    618   array( 'lhs' => 19, 'rhs' => 2 ), 
    619   array( 'lhs' => 20, 'rhs' => 1 ), 
    620   array( 'lhs' => 21, 'rhs' => 2 ), 
    621   array( 'lhs' => 21, 'rhs' => 0 ), 
    622   array( 'lhs' => 23, 'rhs' => 5 ), 
    623   array( 'lhs' => 23, 'rhs' => 6 ), 
    624   array( 'lhs' => 22, 'rhs' => 2 ), 
     618  array( 'lhs' => 20, 'rhs' => 2 ), 
     619  array( 'lhs' => 21, 'rhs' => 1 ), 
    625620  array( 'lhs' => 22, 'rhs' => 2 ), 
    626621  array( 'lhs' => 22, 'rhs' => 0 ), 
    627   array( 'lhs' => 25, 'rhs' => 3 ), 
    628   array( 'lhs' => 26, 'rhs' => 1 ), 
    629   array( 'lhs' => 26, 'rhs' => 1 ), 
    630   array( 'lhs' => 26, 'rhs' => 1 ), 
    631   array( 'lhs' => 26, 'rhs' => 1 ), 
    632   array( 'lhs' => 26, 'rhs' => 1 ), 
     622  array( 'lhs' => 24, 'rhs' => 5 ), 
     623  array( 'lhs' => 24, 'rhs' => 6 ), 
     624  array( 'lhs' => 23, 'rhs' => 2 ), 
     625  array( 'lhs' => 23, 'rhs' => 2 ), 
     626  array( 'lhs' => 23, 'rhs' => 0 ), 
    633627  array( 'lhs' => 26, 'rhs' => 3 ), 
    634   array( 'lhs' => 26, 'rhs' => 1 ), 
     628  array( 'lhs' => 27, 'rhs' => 1 ), 
     629  array( 'lhs' => 27, 'rhs' => 1 ), 
     630  array( 'lhs' => 27, 'rhs' => 1 ), 
     631  array( 'lhs' => 27, 'rhs' => 1 ), 
     632  array( 'lhs' => 27, 'rhs' => 1 ), 
     633  array( 'lhs' => 27, 'rhs' => 3 ), 
    635634  array( 'lhs' => 27, 'rhs' => 2 ), 
    636635  array( 'lhs' => 27, 'rhs' => 1 ), 
    637   array( 'lhs' => 27, 'rhs' => 0 ), 
    638   array( 'lhs' => 24, 'rhs' => 1 ), 
    639   array( 'lhs' => 24, 'rhs' => 2 ), 
    640   array( 'lhs' => 24, 'rhs' => 3 ), 
     636  array( 'lhs' => 27, 'rhs' => 1 ), 
     637  array( 'lhs' => 25, 'rhs' => 1 ), 
     638  array( 'lhs' => 25, 'rhs' => 2 ), 
     639  array( 'lhs' => 25, 'rhs' => 3 ), 
    641640    ); 
    642641 
     
    645644        2 => 0, 
    646645        3 => 0, 
     646        19 => 0, 
    647647        20 => 0, 
    648648        21 => 0, 
    649         22 => 0, 
    650649        1 => 1, 
    651650        4 => 4, 
     
    662661        15 => 15, 
    663662        16 => 16, 
    664         18 => 16, 
    665663        17 => 17, 
    666         19 => 19, 
     664        18 => 17, 
    667665    ); 
    668666#line 131 "smarty_internal_configfileparser.y" 
     
    670668    $this->_retvalue = null; 
    671669    } 
    672 #line 668 "smarty_internal_configfileparser.php" 
     670#line 666 "smarty_internal_configfileparser.php" 
    673671#line 136 "smarty_internal_configfileparser.y" 
    674672    function yy_r1(){ 
    675673    $this->add_global_vars($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = null; 
    676674    } 
    677 #line 673 "smarty_internal_configfileparser.php" 
     675#line 671 "smarty_internal_configfileparser.php" 
    678676#line 149 "smarty_internal_configfileparser.y" 
    679677    function yy_r4(){ 
     
    681679    $this->_retvalue = null; 
    682680    } 
    683 #line 679 "smarty_internal_configfileparser.php" 
     681#line 677 "smarty_internal_configfileparser.php" 
    684682#line 154 "smarty_internal_configfileparser.y" 
    685683    function yy_r5(){ 
     
    689687    $this->_retvalue = null; 
    690688    } 
    691 #line 687 "smarty_internal_configfileparser.php" 
     689#line 685 "smarty_internal_configfileparser.php" 
    692690#line 162 "smarty_internal_configfileparser.y" 
    693691    function yy_r6(){ 
    694692    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; 
    695693    } 
    696 #line 692 "smarty_internal_configfileparser.php" 
     694#line 690 "smarty_internal_configfileparser.php" 
    697695#line 166 "smarty_internal_configfileparser.y" 
    698696    function yy_r7(){ 
    699697    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor, Array($this->yystack[$this->yyidx + 0]->minor)); 
    700698    } 
    701 #line 697 "smarty_internal_configfileparser.php" 
     699#line 695 "smarty_internal_configfileparser.php" 
    702700#line 170 "smarty_internal_configfileparser.y" 
    703701    function yy_r8(){ 
    704702    $this->_retvalue = Array(); 
    705703    } 
    706 #line 702 "smarty_internal_configfileparser.php" 
     704#line 700 "smarty_internal_configfileparser.php" 
    707705#line 176 "smarty_internal_configfileparser.y" 
    708706    function yy_r9(){ 
    709707    $this->_retvalue = Array("key" => $this->yystack[$this->yyidx + -2]->minor, "value" => $this->yystack[$this->yyidx + 0]->minor); 
    710708    } 
    711 #line 707 "smarty_internal_configfileparser.php" 
     709#line 705 "smarty_internal_configfileparser.php" 
    712710#line 181 "smarty_internal_configfileparser.y" 
    713711    function yy_r10(){ 
    714712    $this->_retvalue = (float) $this->yystack[$this->yyidx + 0]->minor; 
    715713    } 
    716 #line 712 "smarty_internal_configfileparser.php" 
     714#line 710 "smarty_internal_configfileparser.php" 
    717715#line 185 "smarty_internal_configfileparser.y" 
    718716    function yy_r11(){ 
    719717    $this->_retvalue = (int) $this->yystack[$this->yyidx + 0]->minor; 
    720718    } 
    721 #line 717 "smarty_internal_configfileparser.php" 
     719#line 715 "smarty_internal_configfileparser.php" 
    722720#line 189 "smarty_internal_configfileparser.y" 
    723721    function yy_r12(){ 
    724722    $this->_retvalue = $this->parse_bool($this->yystack[$this->yyidx + 0]->minor); 
    725723    } 
    726 #line 722 "smarty_internal_configfileparser.php" 
     724#line 720 "smarty_internal_configfileparser.php" 
    727725#line 193 "smarty_internal_configfileparser.y" 
    728726    function yy_r13(){ 
    729727    $this->_retvalue = self::parse_single_quoted_string($this->yystack[$this->yyidx + 0]->minor); 
    730728    } 
    731 #line 727 "smarty_internal_configfileparser.php" 
     729#line 725 "smarty_internal_configfileparser.php" 
    732730#line 197 "smarty_internal_configfileparser.y" 
    733731    function yy_r14(){ 
    734732    $this->_retvalue = self::parse_double_quoted_string($this->yystack[$this->yyidx + 0]->minor); 
    735733    } 
    736 #line 732 "smarty_internal_configfileparser.php" 
     734#line 730 "smarty_internal_configfileparser.php" 
    737735#line 201 "smarty_internal_configfileparser.y" 
    738736    function yy_r15(){ 
    739737    $this->_retvalue = self::parse_tripple_double_quoted_string($this->yystack[$this->yyidx + -1]->minor); 
    740738    } 
    741 #line 737 "smarty_internal_configfileparser.php" 
     739#line 735 "smarty_internal_configfileparser.php" 
    742740#line 205 "smarty_internal_configfileparser.y" 
    743741    function yy_r16(){ 
     742    $this->_retvalue = ''; 
     743    } 
     744#line 740 "smarty_internal_configfileparser.php" 
     745#line 209 "smarty_internal_configfileparser.y" 
     746    function yy_r17(){ 
    744747    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; 
    745748    } 
    746 #line 742 "smarty_internal_configfileparser.php" 
    747 #line 210 "smarty_internal_configfileparser.y" 
    748     function yy_r17(){ 
    749     $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor; 
    750     } 
    751 #line 747 "smarty_internal_configfileparser.php" 
    752 #line 216 "smarty_internal_configfileparser.y" 
    753     function yy_r19(){ 
    754     $this->_retvalue = ''; 
    755     } 
    756 #line 752 "smarty_internal_configfileparser.php" 
     749#line 745 "smarty_internal_configfileparser.php" 
    757750 
    758751    private $_retvalue; 
     
    816809    $this->yymajor = $yymajor; 
    817810    $this->compiler->trigger_config_file_error(); 
    818 #line 815 "smarty_internal_configfileparser.php" 
     811#line 808 "smarty_internal_configfileparser.php" 
    819812    } 
    820813 
     
    833826    $this->retvalue = $this->_retvalue; 
    834827    //echo $this->retvalue."\n\n"; 
    835 #line 833 "smarty_internal_configfileparser.php" 
     828#line 826 "smarty_internal_configfileparser.php" 
    836829    } 
    837830 
  • vendors/smarty/current/sysplugins/smarty_internal_template.php

    r5823 r6008  
    9898     * @var array 
    9999     */ 
    100     public $_capture_stack = array(); 
     100    public $_capture_stack = array(0 => array()); 
    101101 
    102102    /** 
  • vendors/smarty/current/sysplugins/smarty_internal_templatebase.php

    r5823 r6008  
    4444        // create template object if necessary 
    4545        $_template = ($template instanceof $this->template_class) 
    46             ? $template 
    47             : $this->smarty->createTemplate($template, $cache_id, $compile_id, $parent, false); 
     46        ? $template 
     47        : $this->smarty->createTemplate($template, $cache_id, $compile_id, $parent, false); 
    4848        // if called by Smarty object make sure we use current caching status 
    4949        if ($this instanceof Smarty) { 
     
    174174                            throw new SmartyException("Invalid compiled template for '{$_template->template_resource}'"); 
    175175                        } 
     176                        array_unshift($_template->_capture_stack,array()); 
     177                        // 
     178                        // render compiled template 
     179                        // 
    176180                        $_template->properties['unifunc']($_template); 
    177                         if (isset($_template->_capture_stack[0])) { 
     181                        // any unclosed {capture} tags ? 
     182                        if (isset($_template->_capture_stack[0][0])) { 
    178183                            $_template->capture_error(); 
    179184                        } 
     185                        array_shift($_template->_capture_stack); 
    180186                    } catch (Exception $e) { 
    181187                        ob_get_clean(); 
     
    269275            try { 
    270276                ob_start(); 
     277                array_unshift($_template->_capture_stack,array()); 
     278                // 
     279                // render cached template 
     280                // 
    271281                $_template->properties['unifunc']($_template); 
    272                 if (isset($_template->_capture_stack[0])) { 
     282                // any unclosed {capture} tags ? 
     283                if (isset($_template->_capture_stack[0][0])) { 
    273284                    $_template->capture_error(); 
    274285                } 
     286                array_shift($_template->_capture_stack); 
    275287                $_output = ob_get_clean(); 
    276288            } catch (Exception $e) { 
     
    298310                        case 'cgi-fcgi':    // php-cgi >= 5.3 
    299311                        case 'fpm-fcgi':    // php-fpm >= 5.3.3 
    300                             header('Status: 304 Not Modified'); 
    301                             break; 
     312                        header('Status: 304 Not Modified'); 
     313                        break; 
    302314 
    303315                        case 'cli': 
    304                             if (/* ^phpunit */!empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'])/* phpunit$ */) { 
    305                                 $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = '304 Not Modified'; 
    306                             } 
    307                             break; 
     316                        if (/* ^phpunit */!empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'])/* phpunit$ */) { 
     317                            $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = '304 Not Modified'; 
     318                        } 
     319                        break; 
    308320 
    309321                        default: 
    310                             header('HTTP/1.1 304 Not Modified'); 
    311                             break; 
     322                        header('HTTP/1.1 304 Not Modified'); 
     323                        break; 
    312324                    } 
    313325                } else { 
    314326                    switch (PHP_SAPI) { 
    315327                        case 'cli': 
    316                             if (/* ^phpunit */!empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'])/* phpunit$ */) { 
    317                                 $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = 'Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT'; 
    318                             } 
    319                             break; 
     328                        if (/* ^phpunit */!empty($_SERVER['SMARTY_PHPUNIT_DISABLE_HEADERS'])/* phpunit$ */) { 
     329                            $_SERVER['SMARTY_PHPUNIT_HEADERS'][] = 'Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT'; 
     330                        } 
     331                        break; 
    320332 
    321333                        default: 
    322                             header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT'); 
    323                             break; 
     334                        header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->cached->timestamp) . ' GMT'); 
     335                        break; 
    324336                    } 
    325337                    echo $_output; 
     
    406418     * @param boolean  $cacheable  if true (default) this fuction is cachable 
    407419     * @param array    $cache_attr caching attributes if any 
     420     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    408421     * @throws SmartyException when the plugin tag is invalid 
    409422     */ 
     
    417430            $this->smarty->registered_plugins[$type][$tag] = array($callback, (bool) $cacheable, (array) $cache_attr); 
    418431        } 
     432         
     433        return $this; 
    419434    } 
    420435 
     
    424439     * @param string $type of plugin 
    425440     * @param string $tag name of plugin 
     441     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    426442     */ 
    427443    public function unregisterPlugin($type, $tag) 
     
    430446            unset($this->smarty->registered_plugins[$type][$tag]); 
    431447        } 
     448         
     449        return $this; 
    432450    } 
    433451 
     
    437455     * @param string $type name of resource type 
    438456     * @param Smarty_Resource|array $callback or instance of Smarty_Resource, or array of callbacks to handle resource (deprecated) 
     457     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    439458     */ 
    440459    public function registerResource($type, $callback) 
    441460    { 
    442461        $this->smarty->registered_resources[$type] = $callback instanceof Smarty_Resource ? $callback : array($callback, false); 
     462        return $this; 
    443463    } 
    444464 
     
    447467     * 
    448468     * @param string $type name of resource type 
     469     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    449470     */ 
    450471    public function unregisterResource($type) 
     
    453474            unset($this->smarty->registered_resources[$type]); 
    454475        } 
     476         
     477        return $this; 
    455478    } 
    456479 
     
    460483     * @param string               $type     name of cache resource type 
    461484     * @param Smarty_CacheResource $callback instance of Smarty_CacheResource to handle output caching 
     485     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    462486     */ 
    463487    public function registerCacheResource($type, Smarty_CacheResource $callback) 
    464488    { 
    465489        $this->smarty->registered_cache_resources[$type] = $callback; 
     490        return $this; 
    466491    } 
    467492 
     
    470495     * 
    471496     * @param string $type name of cache resource type 
     497     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    472498     */ 
    473499    public function unregisterCacheResource($type) 
     
    476502            unset($this->smarty->registered_cache_resources[$type]); 
    477503        } 
     504         
     505        return $this; 
    478506    } 
    479507 
     
    487515     * @param array   $block_methods list of block-methods 
    488516     * @param array $block_functs list of methods that are block format 
     517     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    489518     * @throws SmartyException if any of the methods in $allowed or $block_methods are invalid 
    490519     */ 
     
    509538        // register the object 
    510539        $this->smarty->registered_objects[$object_name] = 
    511             array($object_impl, (array) $allowed, (boolean) $smarty_args, (array) $block_methods); 
     540        array($object_impl, (array) $allowed, (boolean) $smarty_args, (array) $block_methods); 
     541        return $this; 
    512542    } 
    513543 
     
    534564     * 
    535565     * @param string $name object name 
    536      * @throws SmartyException if no such object is found 
     566     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    537567     */ 
    538568    public function unregisterObject($name) 
    539569    { 
    540         unset($this->smarty->registered_objects[$name]); 
    541         return; 
     570        if (isset($this->smarty->registered_objects[$name])) { 
     571            unset($this->smarty->registered_objects[$name]); 
     572        } 
     573         
     574        return $this; 
    542575    } 
    543576 
     
    547580     * @param string $class name of template class 
    548581     * @param string $class_impl the referenced PHP class to register 
     582     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    549583     * @throws SmartyException if $class_impl does not refer to an existing class 
    550584     */ 
     
    557591        // register the class 
    558592        $this->smarty->registered_classes[$class_name] = $class_impl; 
     593        return $this; 
    559594    } 
    560595 
     
    563598     * 
    564599     * @param callable $callback class/method name 
     600     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    565601     * @throws SmartyException if $callback is not callable 
    566602     */ 
     
    572608            throw new SmartyException("Default plugin handler '$callback' not callable"); 
    573609        } 
     610         
     611        return $this; 
    574612    } 
    575613 
     
    578616     * 
    579617     * @param callable $callback class/method name 
     618     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    580619     * @throws SmartyException if $callback is not callable 
    581620     */ 
     
    587626            throw new SmartyException("Default template handler '$callback' not callable"); 
    588627        } 
     628         
     629        return $this; 
    589630    } 
    590631 
     
    593634     * 
    594635     * @param callable $callback class/method name 
     636     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    595637     * @throws SmartyException if $callback is not callable 
    596638     */ 
     
    602644            throw new SmartyException("Default config handler '$callback' not callable"); 
    603645        } 
     646         
     647        return $this; 
    604648    } 
    605649 
     
    609653     * @param string $type filter type 
    610654     * @param callback $callback 
     655     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    611656     */ 
    612657    public function registerFilter($type, $callback) 
    613658    { 
    614659        $this->smarty->registered_filters[$type][$this->_get_filter_name($callback)] = $callback; 
     660        return $this; 
    615661    } 
    616662 
     
    620666     * @param string $type filter type 
    621667     * @param callback $callback 
     668     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    622669     */ 
    623670    public function unregisterFilter($type, $callback) 
     
    627674            unset($this->smarty->registered_filters[$type][$name]); 
    628675        } 
     676         
     677        return $this; 
    629678    } 
    630679 
     
    633682     * 
    634683     * @param callback $function_name 
     684     * @return string internal filter name 
    635685     */ 
    636686    public function _get_filter_name($function_name) 
     
    638688        if (is_array($function_name)) { 
    639689            $_class_name = (is_object($function_name[0]) ? 
    640                             get_class($function_name[0]) : $function_name[0]); 
     690            get_class($function_name[0]) : $function_name[0]); 
    641691            return $_class_name . '_' . $function_name[1]; 
    642692        } else { 
     
    650700     * @param string $type filter type 
    651701     * @param string $name filter name 
    652      * @return bool 
     702     * @throws SmartyException if filter could not be loaded 
    653703     */ 
    654704    public function loadFilter($type, $name) 
     
    666716        } 
    667717        throw new SmartyException("{$type}filter \"{$name}\" not callable"); 
    668         return false; 
    669718    } 
    670719 
     
    674723     * @param string $type filter type 
    675724     * @param string $name filter name 
    676      * @return bool 
     725     * @return Smarty_Internal_Templatebase current Smarty_Internal_Templatebase (or Smarty or Smarty_Internal_Template) instance for chaining 
    677726     */ 
    678727    public function unloadFilter($type, $name) 
     
    681730        if (isset($this->smarty->registered_filters[$type][$_filter_name])) { 
    682731            unset ($this->smarty->registered_filters[$type][$_filter_name]); 
    683             return true; 
    684         } else { 
    685             return false; 
    686         } 
     732        } 
     733         
     734        return $this; 
    687735    } 
    688736 
     
    691739     * 
    692740     * @param string $match match string 
    693      * @return string  replacemant 
     741     * @return string replacemant 
    694742     */ 
    695743    private function replaceCamelcase($match) { 
     
    739787            if ($_is_this) { 
    740788                if ($first3 == 'get') 
    741                     return $this->$property_name; 
     789                return $this->$property_name; 
    742790                else 
    743                     return $this->$property_name = $args[0]; 
     791                return $this->$property_name = $args[0]; 
    744792            } else if ($_is_this === false) { 
    745793                if ($first3 == 'get') 
    746                     return $this->smarty->$property_name; 
     794                return $this->smarty->$property_name; 
    747795                else 
    748                     return $this->smarty->$property_name = $args[0]; 
     796                return $this->smarty->$property_name = $args[0]; 
    749797            } else { 
    750798                throw new SmartyException("property '$property_name' does not exist."); 
  • vendors/smarty/current/sysplugins/smarty_internal_templatelexer.php

    r5823 r6008  
    2121    public $taglineno; 
    2222    public $state = 1; 
    23     public $strip = false; 
    2423    private $heredoc_id_stack = Array(); 
    2524    public $smarty_token_names = array (                // Text for parser error messages 
     
    6362                                'QMARK'         => '"?"', 
    6463                                'ID'                    => 'identifier', 
    65                                 'OTHER'         => 'text', 
    66                                 'LINEBREAK'             => 'newline', 
     64                                'TEXT'          => 'text', 
    6765                                'FAKEPHPSTARTTAG'       => 'Fake PHP start tag', 
    6866                                'PHPSTARTTAG'   => 'PHP start tag', 
     
    132130              9 => 0, 
    133131              10 => 0, 
    134               11 => 0, 
    135               12 => 1, 
     132              11 => 1, 
     133              13 => 0, 
    136134              14 => 0, 
    137135              15 => 0, 
     
    144142              22 => 0, 
    145143              23 => 0, 
    146               24 => 2, 
    147               27 => 0, 
    148               28 => 0, 
    149144            ); 
    150145        if ($this->counter >= strlen($this->data)) { 
    151146            return false; // end of input 
    152147        } 
    153         $yy_global_pattern = "/\G(".$this->ldel."[$]smarty\\.block\\.child".$this->rdel.")|\G(\\{\\})|\G(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|\G([\t ]*[\r\n]+[\t ]*)|\G(".$this->ldel."strip".$this->rdel.")|\G(".$this->ldel."\\s{1,}strip\\s{1,}".$this->rdel.")|\G(".$this->ldel."\/strip".$this->rdel.")|\G(".$this->ldel."\\s{1,}\/strip\\s{1,}".$this->rdel.")|\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s*setfilter\\s+)|\G(".$this->ldel."\\s{1,})|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?|\\?>|<%|%>)))|\G([\S\s]+)|\G(.)/iS"; 
     148        $yy_global_pattern = "/\G(".$this->ldel."[$]smarty\\.block\\.child".$this->rdel.")|\G(\\{\\})|\G(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|\G(".$this->ldel."strip".$this->rdel.")|\G(".$this->ldel."\\s{1,}strip\\s{1,}".$this->rdel.")|\G(".$this->ldel."\/strip".$this->rdel.")|\G(".$this->ldel."\\s{1,}\/strip\\s{1,}".$this->rdel.")|\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s*setfilter\\s+)|\G(".$this->ldel."\\s{1,})|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G([\S\s])/iS"; 
    154149 
    155150        do { 
     
    209204    { 
    210205 
    211   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     206  $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    212207    } 
    213208    function yy_r1_3($yy_subpatterns) 
     
    219214    { 
    220215 
    221   if ($this->strip) { 
    222      return false; 
    223   } else { 
    224      $this->token = Smarty_Internal_Templateparser::TP_LINEBREAK; 
    225   } 
     216    $this->token = Smarty_Internal_Templateparser::TP_STRIPON; 
    226217    } 
    227218    function yy_r1_6($yy_subpatterns) 
    228219    { 
    229220 
    230   $this->strip = true; 
    231   return false; 
     221  if ($this->smarty->auto_literal) { 
     222    $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     223  } else { 
     224    $this->token = Smarty_Internal_Templateparser::TP_STRIPON; 
     225  } 
    232226    } 
    233227    function yy_r1_7($yy_subpatterns) 
    234228    { 
    235229 
     230    $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; 
     231    } 
     232    function yy_r1_8($yy_subpatterns) 
     233    { 
     234 
    236235  if ($this->smarty->auto_literal) { 
    237      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    238   } else { 
    239     $this->strip = true; 
    240     return false; 
    241   } 
    242     } 
    243     function yy_r1_8($yy_subpatterns) 
    244     { 
    245  
    246   $this->strip = false; 
    247   return false; 
     236     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     237  } else { 
     238    $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; 
     239  } 
    248240    } 
    249241    function yy_r1_9($yy_subpatterns) 
    250     { 
    251  
    252   if ($this->smarty->auto_literal) { 
    253      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    254   } else { 
    255     $this->strip = false; 
    256     return false; 
    257   } 
    258     } 
    259     function yy_r1_10($yy_subpatterns) 
    260242    { 
    261243 
     
    263245   $this->yypushstate(self::LITERAL); 
    264246    } 
     247    function yy_r1_10($yy_subpatterns) 
     248    { 
     249 
     250  if ($this->smarty->auto_literal) { 
     251     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     252  } else { 
     253     $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; 
     254     $this->yypushstate(self::SMARTY); 
     255     $this->taglineno = $this->line; 
     256  } 
     257    } 
    265258    function yy_r1_11($yy_subpatterns) 
    266259    { 
    267260 
     261  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
     262     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     263  } else { 
     264     $this->token = Smarty_Internal_Templateparser::TP_LDELIF; 
     265     $this->yypushstate(self::SMARTY); 
     266     $this->taglineno = $this->line; 
     267  } 
     268    } 
     269    function yy_r1_13($yy_subpatterns) 
     270    { 
     271 
     272  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
     273     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     274  } else { 
     275     $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; 
     276     $this->yypushstate(self::SMARTY); 
     277     $this->taglineno = $this->line; 
     278  } 
     279    } 
     280    function yy_r1_14($yy_subpatterns) 
     281    { 
     282 
     283  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
     284     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     285  } else { 
     286     $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; 
     287     $this->yypushstate(self::SMARTY); 
     288     $this->taglineno = $this->line; 
     289  } 
     290    } 
     291    function yy_r1_15($yy_subpatterns) 
     292    { 
     293 
     294  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
     295     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     296  } else { 
     297     $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER; 
     298     $this->yypushstate(self::SMARTY); 
     299     $this->taglineno = $this->line; 
     300  } 
     301    } 
     302    function yy_r1_16($yy_subpatterns) 
     303    { 
     304 
    268305  if ($this->smarty->auto_literal) { 
    269      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    270   } else { 
    271      $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; 
    272      $this->yypushstate(self::SMARTY); 
    273      $this->taglineno = $this->line; 
    274   } 
    275     } 
    276     function yy_r1_12($yy_subpatterns) 
    277     { 
    278  
    279   if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    280      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    281   } else { 
    282      $this->token = Smarty_Internal_Templateparser::TP_LDELIF; 
    283      $this->yypushstate(self::SMARTY); 
    284      $this->taglineno = $this->line; 
    285   } 
    286     } 
    287     function yy_r1_14($yy_subpatterns) 
    288     { 
    289  
    290   if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    291      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    292   } else { 
    293      $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; 
    294      $this->yypushstate(self::SMARTY); 
    295      $this->taglineno = $this->line; 
    296   } 
    297     } 
    298     function yy_r1_15($yy_subpatterns) 
    299     { 
    300  
    301   if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    302      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    303   } else { 
    304      $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; 
    305      $this->yypushstate(self::SMARTY); 
    306      $this->taglineno = $this->line; 
    307   } 
    308     } 
    309     function yy_r1_16($yy_subpatterns) 
    310     { 
    311  
    312   if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    313      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    314   } else { 
    315      $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER; 
     306     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
     307  } else { 
     308     $this->token = Smarty_Internal_Templateparser::TP_LDEL; 
    316309     $this->yypushstate(self::SMARTY); 
    317310     $this->taglineno = $this->line; 
     
    321314    { 
    322315 
    323   if ($this->smarty->auto_literal) { 
    324      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    325   } else { 
    326      $this->token = Smarty_Internal_Templateparser::TP_LDEL; 
    327      $this->yypushstate(self::SMARTY); 
    328      $this->taglineno = $this->line; 
    329   } 
     316  $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; 
     317     $this->yypushstate(self::SMARTY); 
     318     $this->taglineno = $this->line; 
    330319    } 
    331320    function yy_r1_18($yy_subpatterns) 
    332321    { 
    333322 
    334   $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; 
     323  $this->token = Smarty_Internal_Templateparser::TP_LDEL; 
    335324     $this->yypushstate(self::SMARTY); 
    336325     $this->taglineno = $this->line; 
    337326    } 
    338327    function yy_r1_19($yy_subpatterns) 
    339     { 
    340  
    341   $this->token = Smarty_Internal_Templateparser::TP_LDEL; 
    342      $this->yypushstate(self::SMARTY); 
    343      $this->taglineno = $this->line; 
    344     } 
    345     function yy_r1_20($yy_subpatterns) 
    346328    { 
    347329 
     
    355337  } 
    356338     } 
     339    function yy_r1_20($yy_subpatterns) 
     340    { 
     341 
     342  $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG; 
     343    } 
    357344    function yy_r1_21($yy_subpatterns) 
    358345    { 
    359346 
    360   $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG; 
     347  $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG; 
    361348    } 
    362349    function yy_r1_22($yy_subpatterns) 
    363350    { 
    364351 
    365   $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG; 
     352  $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG; 
    366353    } 
    367354    function yy_r1_23($yy_subpatterns) 
    368355    { 
    369356 
    370   $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG; 
    371     } 
    372     function yy_r1_24($yy_subpatterns) 
    373     { 
    374  
    375   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    376     } 
    377     function yy_r1_27($yy_subpatterns) 
    378     { 
    379  
    380   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    381     } 
    382     function yy_r1_28($yy_subpatterns) 
    383     { 
    384  
    385   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     357  $to = strlen($this->data); 
     358  preg_match("/{$this->ldel}|<\?|\?>|<%|%>/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); 
     359  if (isset($match[0][1])) { 
     360    $to = $match[0][1]; 
     361  } 
     362  $this->value = substr($this->data,$this->counter,$to-$this->counter); 
     363  $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    386364    } 
    387365 
     
    461439            return false; // end of input 
    462440        } 
    463         $yy_global_pattern = "/\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s{1,})|\G(\\s{1,}".$this->rdel.")|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(".$this->rdel.")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*===\\s*)|\G(\\s*!==\\s*)|\G(\\s*==\\s*|\\s+eq\\s+)|\G(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|\G(\\s*>=\\s*|\\s+(ge|gte)\\s+)|\G(\\s*<=\\s*|\\s+(le|lte)\\s+)|\G(\\s*>\\s*|\\s+gt\\s+)|\G(\\s*<\\s*|\\s+lt\\s+)|\G(\\s+mod\\s+)|\G(!\\s*|not\\s+)|\G(\\s*&&\\s*|\\s*and\\s+)|\G(\\s*\\|\\|\\s*|\\s*or\\s+)|\G(\\s*xor\\s+)|\G(\\s+is\\s+odd\\s+by\\s+)|\G(\\s+is\\s+not\\s+odd\\s+by\\s+)|\G(\\s+is\\s+odd)|\G(\\s+is\\s+not\\s+odd)|\G(\\s+is\\s+even\\s+by\\s+)|\G(\\s+is\\s+not\\s+even\\s+by\\s+)|\G(\\s+is\\s+even)|\G(\\s+is\\s+not\\s+even)|\G(\\s+is\\s+div\\s+by\\s+)|\G(\\s+is\\s+not\\s+div\\s+by\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*(\\*|\/|%)\\s*)|\G(\\$)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(@)|\G(#)|\G(\")|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(\\s+)|\G(.)/iS"; 
     441        $yy_global_pattern = "/\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s{1,})|\G(\\s{1,}".$this->rdel.")|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(".$this->rdel.")|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*===\\s*)|\G(\\s*!==\\s*)|\G(\\s*==\\s*|\\s+eq\\s+)|\G(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|\G(\\s*>=\\s*|\\s+(ge|gte)\\s+)|\G(\\s*<=\\s*|\\s+(le|lte)\\s+)|\G(\\s*>\\s*|\\s+gt\\s+)|\G(\\s*<\\s*|\\s+lt\\s+)|\G(\\s+mod\\s+)|\G(!\\s*|not\\s+)|\G(\\s*&&\\s*|\\s*and\\s+)|\G(\\s*\\|\\|\\s*|\\s*or\\s+)|\G(\\s*xor\\s+)|\G(\\s+is\\s+odd\\s+by\\s+)|\G(\\s+is\\s+not\\s+odd\\s+by\\s+)|\G(\\s+is\\s+odd)|\G(\\s+is\\s+not\\s+odd)|\G(\\s+is\\s+even\\s+by\\s+)|\G(\\s+is\\s+not\\s+even\\s+by\\s+)|\G(\\s+is\\s+even)|\G(\\s+is\\s+not\\s+even)|\G(\\s+is\\s+div\\s+by\\s+)|\G(\\s+is\\s+not\\s+div\\s+by\\s+)|\G(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|\G(\\s*\\(\\s*)|\G(\\s*\\))|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*->\\s*)|\G(\\s*=>\\s*)|\G(\\s*=\\s*)|\G(\\+\\+|--)|\G(\\s*(\\+|-)\\s*)|\G(\\s*(\\*|\/|%)\\s*)|\G(\\$)|\G(\\s*;)|\G(::)|\G(\\s*:\\s*)|\G(@)|\G(#)|\G(\")|\G(`)|\G(\\|)|\G(\\.)|\G(\\s*,\\s*)|\G(\\s*&\\s*)|\G(\\s*\\?\\s*)|\G(0[xX][0-9a-fA-F]+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G(\\s+)|\G([\S\s])/iS"; 
    464442 
    465443        do { 
     
    520498 
    521499  if ($this->smarty->auto_literal) { 
    522      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     500     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    523501  } else { 
    524502     $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; 
     
    531509 
    532510  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    533      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     511     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    534512  } else { 
    535513     $this->token = Smarty_Internal_Templateparser::TP_LDELIF; 
     
    542520 
    543521  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    544      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     522     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    545523  } else { 
    546524     $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; 
     
    553531 
    554532  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    555      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     533     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    556534  } else { 
    557535     $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; 
     
    564542 
    565543  if ($this->smarty->auto_literal) { 
    566      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     544     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    567545  } else { 
    568546     $this->token = Smarty_Internal_Templateparser::TP_LDEL; 
     
    882860    { 
    883861 
    884   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     862  $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    885863    } 
    886864 
     
    897875              6 => 0, 
    898876              7 => 0, 
    899               8 => 2, 
    900               11 => 0, 
    901877            ); 
    902878        if ($this->counter >= strlen($this->data)) { 
    903879            return false; // end of input 
    904880        } 
    905         $yy_global_pattern = "/\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|\G([\t ]*[\r\n]+[\t ]*)|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."\/?literal".$this->rdel."|<\\?|<%)))|\G(.)/iS"; 
     881        $yy_global_pattern = "/\G(".$this->ldel."\\s*literal\\s*".$this->rdel.")|\G(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|\G(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|\G(\\?>)|\G(<%)|\G(%>)|\G([\S\s])/iS"; 
    906882 
    907883        do { 
     
    968944    { 
    969945 
    970   $this->token = Smarty_Internal_Templateparser::TP_LITERAL; 
    971     } 
    972     function yy_r3_4($yy_subpatterns) 
    973     { 
    974  
    975946  if (in_array($this->value, Array('<?', '<?=', '<?php'))) { 
    976947    $this->token = Smarty_Internal_Templateparser::TP_PHPSTARTTAG; 
     
    980951   } 
    981952    } 
     953    function yy_r3_4($yy_subpatterns) 
     954    { 
     955 
     956  $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG; 
     957    } 
    982958    function yy_r3_5($yy_subpatterns) 
    983959    { 
    984960 
    985   $this->token = Smarty_Internal_Templateparser::TP_PHPENDTAG; 
     961  $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG; 
    986962    } 
    987963    function yy_r3_6($yy_subpatterns) 
    988964    { 
    989965 
    990   $this->token = Smarty_Internal_Templateparser::TP_ASPSTARTTAG; 
     966  $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG; 
    991967    } 
    992968    function yy_r3_7($yy_subpatterns) 
    993969    { 
    994970 
    995   $this->token = Smarty_Internal_Templateparser::TP_ASPENDTAG; 
    996     } 
    997     function yy_r3_8($yy_subpatterns) 
    998     { 
    999  
     971  $to = strlen($this->data); 
     972  preg_match("/{$this->ldel}\/?literal{$this->rdel}|<\?|<%|\?>|%>/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); 
     973  if (isset($match[0][1])) { 
     974    $to = $match[0][1]; 
     975  } else { 
     976    $this->compiler->trigger_template_error ("missing or misspelled literal closing tag"); 
     977  } 
     978 
     979  $this->value = substr($this->data,$this->counter,$to-$this->counter); 
    1000980  $this->token = Smarty_Internal_Templateparser::TP_LITERAL; 
    1001     } 
    1002     function yy_r3_11($yy_subpatterns) 
    1003     { 
    1004  
    1005   $this->compiler->trigger_template_error ("missing or misspelled literal closing tag"); 
    1006981    } 
    1007982 
     
    1023998              13 => 3, 
    1024999              17 => 0, 
    1025               18 => 0, 
    10261000            ); 
    10271001        if ($this->counter >= strlen($this->data)) { 
    10281002            return false; // end of input 
    10291003        } 
    1030         $yy_global_pattern = "/\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s{1,})|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|\G([\S\s]+)|\G(.)/iS"; 
     1004        $yy_global_pattern = "/\G(".$this->ldel."\\s{1,}\/)|\G(".$this->ldel."\\s*(if|elseif|else if|while)\\s+)|\G(".$this->ldel."\\s*for\\s+)|\G(".$this->ldel."\\s*foreach(?![^\s]))|\G(".$this->ldel."\\s{1,})|\G(".$this->ldel."\/)|\G(".$this->ldel.")|\G(\")|\G(`\\$)|\G(\\$[0-9]*[a-zA-Z_]\\w*)|\G(\\$)|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|\G([\S\s])/iS"; 
    10311005 
    10321006        do { 
     
    10821056 
    10831057  if ($this->smarty->auto_literal) { 
    1084      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1058     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    10851059  } else { 
    10861060     $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; 
     
    10931067 
    10941068  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    1095      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1069     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    10961070  } else { 
    10971071     $this->token = Smarty_Internal_Templateparser::TP_LDELIF; 
     
    11041078 
    11051079  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    1106      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1080     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    11071081  } else { 
    11081082     $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; 
     
    11151089 
    11161090  if ($this->smarty->auto_literal && trim(substr($this->value,$this->ldel_length,1)) == '') { 
    1117      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1091     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    11181092  } else { 
    11191093     $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; 
     
    11261100 
    11271101  if ($this->smarty->auto_literal) { 
    1128      $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1102     $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    11291103  } else { 
    11301104     $this->token = Smarty_Internal_Templateparser::TP_LDEL; 
     
    11691143    { 
    11701144 
    1171   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1145  $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    11721146    } 
    11731147    function yy_r4_13($yy_subpatterns) 
    11741148    { 
    11751149 
    1176   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1150  $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    11771151    } 
    11781152    function yy_r4_17($yy_subpatterns) 
    11791153    { 
    11801154 
    1181   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    1182     } 
    1183     function yy_r4_18($yy_subpatterns) 
    1184     { 
    1185  
    1186   $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
     1155  $to = strlen($this->data); 
     1156  $this->value = substr($this->data,$this->counter,$to-$this->counter); 
     1157  $this->token = Smarty_Internal_Templateparser::TP_TEXT; 
    11871158    } 
    11881159 
  • vendors/smarty/current/sysplugins/smarty_internal_templateparser.php

    r5765 r6008  
    9797    private $lex; 
    9898    private $internalError = false; 
     99    private $strip = false; 
    99100 
    100101    function __construct($lex, $compiler) { 
     
    136137        return '$_smarty_tpl->tpl_vars['. $variable .']->value'; 
    137138    } 
    138 #line 131 "smarty_internal_templateparser.php" 
     139#line 132 "smarty_internal_templateparser.php" 
    139140 
    140141    const TP_VERT                           =  1; 
     
    147148    const TP_FAKEPHPSTARTTAG                =  8; 
    148149    const TP_XMLTAG                         =  9; 
    149     const TP_OTHER                          = 10; 
    150     const TP_LINEBREAK                      = 11; 
    151     const TP_LITERALSTART                   = 12; 
    152     const TP_LITERALEND                     = 13; 
    153     const TP_LITERAL                        = 14; 
    154     const TP_LDEL                           = 15; 
    155     const TP_RDEL                           = 16; 
    156     const TP_DOLLAR                         = 17; 
    157     const TP_ID                             = 18; 
    158     const TP_EQUAL                          = 19; 
    159     const TP_PTR                            = 20; 
    160     const TP_LDELIF                         = 21; 
    161     const TP_LDELFOR                        = 22; 
    162     const TP_SEMICOLON                      = 23; 
    163     const TP_INCDEC                         = 24; 
    164     const TP_TO                             = 25; 
    165     const TP_STEP                           = 26; 
    166     const TP_LDELFOREACH                    = 27; 
    167     const TP_SPACE                          = 28; 
    168     const TP_AS                             = 29; 
    169     const TP_APTR                           = 30; 
    170     const TP_LDELSETFILTER                  = 31; 
    171     const TP_SMARTYBLOCKCHILD               = 32; 
    172     const TP_LDELSLASH                      = 33; 
    173     const TP_INTEGER                        = 34; 
    174     const TP_COMMA                          = 35; 
    175     const TP_OPENP                          = 36; 
    176     const TP_CLOSEP                         = 37; 
    177     const TP_MATH                           = 38; 
    178     const TP_UNIMATH                        = 39; 
    179     const TP_ANDSYM                         = 40; 
    180     const TP_ISIN                           = 41; 
    181     const TP_ISDIVBY                        = 42; 
    182     const TP_ISNOTDIVBY                     = 43; 
    183     const TP_ISEVEN                         = 44; 
    184     const TP_ISNOTEVEN                      = 45; 
    185     const TP_ISEVENBY                       = 46; 
    186     const TP_ISNOTEVENBY                    = 47; 
    187     const TP_ISODD                          = 48; 
    188     const TP_ISNOTODD                       = 49; 
    189     const TP_ISODDBY                        = 50; 
    190     const TP_ISNOTODDBY                     = 51; 
    191     const TP_INSTANCEOF                     = 52; 
    192     const TP_QMARK                          = 53; 
    193     const TP_NOT                            = 54; 
    194     const TP_TYPECAST                       = 55; 
    195     const TP_HEX                            = 56; 
    196     const TP_DOT                            = 57; 
    197     const TP_SINGLEQUOTESTRING              = 58; 
    198     const TP_DOUBLECOLON                    = 59; 
    199     const TP_AT                             = 60; 
    200     const TP_HATCH                          = 61; 
    201     const TP_OPENB                          = 62; 
    202     const TP_CLOSEB                         = 63; 
    203     const TP_EQUALS                         = 64; 
    204     const TP_NOTEQUALS                      = 65; 
    205     const TP_GREATERTHAN                    = 66; 
    206     const TP_LESSTHAN                       = 67; 
    207     const TP_GREATEREQUAL                   = 68; 
    208     const TP_LESSEQUAL                      = 69; 
    209     const TP_IDENTITY                       = 70; 
    210     const TP_NONEIDENTITY                   = 71; 
    211     const TP_MOD                            = 72; 
    212     const TP_LAND                           = 73; 
    213     const TP_LOR                            = 74; 
    214     const TP_LXOR                           = 75; 
    215     const TP_QUOTE                          = 76; 
    216     const TP_BACKTICK                       = 77; 
    217     const TP_DOLLARID                       = 78; 
    218     const YY_NO_ACTION = 590; 
    219     const YY_ACCEPT_ACTION = 589; 
    220     const YY_ERROR_ACTION = 588; 
    221  
    222     const YY_SZ_ACTTAB = 2393; 
     150    const TP_TEXT                           = 10; 
     151    const TP_STRIPON                        = 11; 
     152    const TP_STRIPOFF                       = 12; 
     153    const TP_LITERALSTART                   = 13; 
     154    const TP_LITERALEND                     = 14; 
     155    const TP_LITERAL                        = 15; 
     156    const TP_LDEL                           = 16; 
     157    const TP_RDEL                           = 17; 
     158    const TP_DOLLAR                         = 18; 
     159    const TP_ID                             = 19; 
     160    const TP_EQUAL                          = 20; 
     161    const TP_PTR                            = 21; 
     162    const TP_LDELIF                         = 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_SPACE                          = 29; 
     170    const TP_AS                             = 30; 
     171    const TP_APTR                           = 31; 
     172    const TP_LDELSETFILTER                  = 32; 
     173    const TP_SMARTYBLOCKCHILD               = 33; 
     174    const TP_LDELSLASH                      = 34; 
     175    const TP_INTEGER                        = 35; 
     176    const TP_COMMA                          = 36; 
     177    const TP_OPENP                          = 37; 
     178    const TP_CLOSEP                         = 38; 
     179    const TP_MATH                           = 39; 
     180    const TP_UNIMATH                        = 40; 
     181    const TP_ANDSYM                         = 41; 
     182    const TP_ISIN                           = 42; 
     183    const TP_ISDIVBY                        = 43; 
     184    const TP_ISNOTDIVBY                     = 44; 
     185    const TP_ISEVEN                         = 45; 
     186    const TP_ISNOTEVEN                      = 46; 
     187    const TP_ISEVENBY                       = 47; 
     188    const TP_ISNOTEVENBY                    = 48; 
     189    const TP_ISODD                          = 49; 
     190    const TP_ISNOTODD                       = 50; 
     191    const TP_ISODDBY                        = 51; 
     192    const TP_ISNOTODDBY                     = 52; 
     193    const TP_INSTANCEOF                     = 53; 
     194    const TP_QMARK                          = 54; 
     195    const TP_NOT                            = 55; 
     196    const TP_TYPECAST                       = 56; 
     197    const TP_HEX                            = 57; 
     198    const TP_DOT                            = 58; 
     199    const TP_SINGLEQUOTESTRING              = 59; 
     200    const TP_DOUBLECOLON                    = 60; 
     201    const TP_AT                             = 61; 
     202    const TP_HATCH                          = 62; 
     203    const TP_OPENB                          = 63; 
     204    const TP_CLOSEB                         = 64; 
     205    const TP_EQUALS                         = 65; 
     206    const TP_NOTEQUALS                      = 66; 
     207    const TP_GREATERTHAN                    = 67; 
     208    const TP_LESSTHAN                       = 68; 
     209    const TP_GREATEREQUAL                   = 69; 
     210    const TP_LESSEQUAL                      = 70; 
     211    const TP_IDENTITY                       = 71; 
     212    const TP_NONEIDENTITY                   = 72; 
     213    const TP_MOD                            = 73; 
     214    const TP_LAND                           = 74; 
     215    const TP_LOR                            = 75; 
     216    const TP_LXOR                           = 76; 
     217    const TP_QUOTE                          = 77; 
     218    const TP_BACKTICK                       = 78; 
     219    const TP_DOLLARID                       = 79; 
     220    const YY_NO_ACTION = 592; 
     221    const YY_ACCEPT_ACTION = 591; 
     222    const YY_ERROR_ACTION = 590; 
     223 
     224    const YY_SZ_ACTTAB = 2562; 
    223225static public $yy_action = array( 
    224  /*     0 */   211,  316,  317,  319,  318,  315,  314,  310,  309,  311, 
    225  /*    10 */   312,  313,  320,  189,  304,  161,   38,  589,   95,  265, 
    226  /*    20 */   317,  319,    7,  106,  289,   37,   26,   30,  146,  283, 
    227  /*    30 */    10,  285,  250,  286,  238,  280,  287,   49,   48,   46, 
    228  /*    40 */    45,   20,   29,  365,  366,   28,   32,  373,  374,   15, 
    229  /*    50 */    11,  328,  323,  322,  324,  327,  231,  211,    4,  189, 
    230  /*    60 */   329,  332,  211,  382,  383,  384,  385,  381,  380,  376, 
    231  /*    70 */   375,  377,  281,  378,  379,  211,  360,  450,  180,  251, 
    232  /*    80 */   117,  144,  196,   74,  135,  260,   17,  451,   26,   30, 
    233  /*    90 */   307,  283,  299,  361,   35,  158,  225,  368,  362,  451, 
    234  /*   100 */   343,   30,   30,  226,   44,  203,  285,    4,   47,  203, 
    235  /*   110 */   218,  259,   49,   48,   46,   45,   20,   29,  365,  366, 
    236  /*   120 */    28,   32,  373,  374,   15,   11,  351,  108,  176,  334, 
    237  /*   130 */   144,  193,  337,   23,  129,  134,  371,  289,  382,  383, 
    238  /*   140 */   384,  385,  381,  380,  376,  375,  377,  281,  378,  379, 
    239  /*   150 */   211,  360,  372,   26,  203,  142,  283,   31,   68,  122, 
    240  /*   160 */   242,   26,  109,  353,  283,  346,  454,  299,  361,   25, 
    241  /*   170 */   185,  225,  368,  362,   30,  343,  239,   30,  454,  289, 
    242  /*   180 */     4,   41,   26,  143,  165,  283,    4,   49,   48,   46, 
    243  /*   190 */    45,   20,   29,  365,  366,   28,   32,  373,  374,   15, 
    244  /*   200 */    11,  101,  160,  144,   26,  208,   34,  283,   31,  144, 
    245  /*   210 */     8,  289,    4,  382,  383,  384,  385,  381,  380,  376, 
    246  /*   220 */   375,  377,  281,  378,  379,  211,  360,  227,  203,  357, 
    247  /*   230 */   142,  197,   19,   73,  135,  144,  211,  302,    9,  158, 
    248  /*   240 */   340,   26,  299,  361,  283,  158,  225,  368,  362,  228, 
    249  /*   250 */   343,  294,   30,    6,  331,  235,  330,  221,  195,  337, 
    250  /*   260 */   126,  240,   49,   48,   46,   45,   20,   29,  365,  366, 
    251  /*   270 */    28,   32,  373,  374,   15,   11,  211,   16,  129,  244, 
    252  /*   280 */   249,  219,  208,  192,  337,  302,  228,    8,  382,  383, 
    253  /*   290 */   384,  385,  381,  380,  376,  375,  377,  281,  378,  379, 
    254  /*   300 */   163,  211,  107,  188,  105,   40,   40,  266,  277,  289, 
    255  /*   310 */   241,  232,  289,   49,   48,   46,   45,   20,   29,  365, 
    256  /*   320 */   366,   28,   32,  373,  374,   15,   11,  211,  168,  203, 
    257  /*   330 */    40,    2,  278,  167,  175,  244,  242,  289,  350,  382, 
    258  /*   340 */   383,  384,  385,  381,  380,  376,  375,  377,  281,  378, 
    259  /*   350 */   379,  191,   47,  184,  204,  234,  169,  198,  287,  386, 
    260  /*   360 */   203,  203,  289,  124,   49,   48,   46,   45,   20,   29, 
    261  /*   370 */   365,  366,   28,   32,  373,  374,   15,   11,  211,  204, 
    262  /*   380 */   182,   26,   26,   26,  283,  212,  224,  118,  131,  289, 
    263  /*   390 */   382,  383,  384,  385,  381,  380,  376,  375,  377,  281, 
    264  /*   400 */   378,  379,  370,  172,  244,  270,  204,  130,  211,  164, 
    265  /*   410 */    26,  287,  289,  229,  178,   49,   48,   46,   45,   20, 
    266  /*   420 */    29,  365,  366,   28,   32,  373,  374,   15,   11,  204, 
    267  /*   430 */   364,  298,    5,   26,  100,   30,  247,  148,  148,   99, 
    268  /*   440 */   159,  382,  383,  384,  385,  381,  380,  376,  375,  377, 
    269  /*   450 */   281,  378,  379,  211,  354,  370,  360,  174,   26,  369, 
    270  /*   460 */   142,  283,  360,   73,  135,  158,  157,  123,   24,  155, 
    271  /*   470 */   135,   30,  299,  361,  211,  190,  225,  368,  362,  272, 
    272  /*   480 */   343,  252,  225,  368,  362,  343,  343,  222,  223,  306, 
    273  /*   490 */    49,   48,   46,   45,   20,   29,  365,  366,   28,   32, 
    274  /*   500 */   373,  374,   15,   11,  129,   43,  236,    9,  269,  258, 
    275  /*   510 */   199,  133,   33,   14,  202,  103,  382,  383,  384,  385, 
    276  /*   520 */   381,  380,  376,  375,  377,  281,  378,  379,  211,  360, 
    277  /*   530 */   370,  170,  262,  142,  360,   36,   73,  135,  151,  141, 
    278  /*   540 */   289,  245,  135,  276,  211,  299,  361,  211,   44,  225, 
    279  /*   550 */   368,  362,  287,  343,  225,  368,  362,  119,  343,  295, 
    280  /*   560 */   216,  267,  282,  296,  211,   49,   48,   46,   45,   20, 
    281  /*   570 */    29,  365,  366,   28,   32,  373,  374,   15,   11,  284, 
    282  /*   580 */   181,  223,  333,  138,  302,  236,  297,    6,  127,  289, 
    283  /*   590 */   116,  382,  383,  384,  385,  381,  380,  376,  375,  377, 
    284  /*   600 */   281,  378,  379,  211,  360,  370,  177,   94,  142,  303, 
    285  /*   610 */   292,   54,  122,  139,  162,  289,  150,  261,  264,  293, 
    286  /*   620 */   299,  361,   30,  289,  225,  368,  362,  287,  343,   30, 
    287  /*   630 */   287,   30,  132,  300,  308,  287,  158,  211,   30,  334, 
    288  /*   640 */    49,   48,   46,   45,   20,   29,  365,  366,   28,   32, 
    289  /*   650 */   373,  374,   15,   11,  211,  204,  166,   12,  275,  287, 
    290  /*   660 */   273,  248,  342,   98,   97,  113,  382,  383,  384,  385, 
    291  /*   670 */   381,  380,  376,  375,  377,  281,  378,  379,  370,  370, 
    292  /*   680 */   370,  110,   18,  321,  324,  324,  324,  324,  324,  324, 
    293  /*   690 */   246,   49,   48,   46,   45,   20,   29,  365,  366,   28, 
    294  /*   700 */    32,  373,  374,   15,   11,  211,  324,  324,  324,  324, 
    295  /*   710 */   324,  324,  324,  324,  112,  136,  104,  382,  383,  384, 
    296  /*   720 */   385,  381,  380,  376,  375,  377,  281,  378,  379,  370, 
    297  /*   730 */   370,  370,  324,  324,  324,  324,  324,  324,  324,  324, 
    298  /*   740 */   324,  256,   49,   48,   46,   45,   20,   29,  365,  366, 
    299  /*   750 */    28,   32,  373,  374,   15,   11,  211,  324,  324,  324, 
    300  /*   760 */   324,  324,  324,  324,  324,  324,  324,  324,  382,  383, 
    301  /*   770 */   384,  385,  381,  380,  376,  375,  377,  281,  378,  379, 
    302  /*   780 */   351,  324,  324,   30,  324,  324,  324,  324,  324,  324, 
    303  /*   790 */   324,  324,  324,   49,   48,   46,   45,   20,   29,  365, 
    304  /*   800 */   366,   28,   32,  373,  374,   15,   11,  211,  324,  324, 
    305  /*   810 */   324,  324,  324,  324,  324,  324,  324,  355,  324,  382, 
    306  /*   820 */   383,  384,  385,  381,  380,  376,  375,  377,  281,  378, 
    307  /*   830 */   379,  324,  324,  324,  324,  324,  324,  324,  324,  324, 
    308  /*   840 */   324,  324,  324,  324,   49,   48,   46,   45,   20,   29, 
    309  /*   850 */   365,  366,   28,   32,  373,  374,   15,   11,  324,  324, 
    310  /*   860 */   324,  324,  324,  324,  324,  324,  324,  324,  324,  257, 
    311  /*   870 */   382,  383,  384,  385,  381,  380,  376,  375,  377,  281, 
    312  /*   880 */   378,  379,  211,  324,  324,  324,  194,  360,  211,  288, 
    313  /*   890 */   255,  145,  324,  352,  336,  135,  324,  200,   42,   22, 
    314  /*   900 */    27,   30,   30,  341,    7,  106,   30,  225,  368,  362, 
    315  /*   910 */   146,  343,  324,  203,  250,  286,  238,  324,  211,   49, 
    316  /*   920 */    48,   46,   45,   20,   29,  365,  366,   28,   32,  373, 
    317  /*   930 */   374,   15,   11,  305,  324,  324,  324,  324,  324,   47, 
    318  /*   940 */   324,  324,  324,  324,  324,  382,  383,  384,  385,  381, 
    319  /*   950 */   380,  376,  375,  377,  281,  378,  379,  211,  324,  359, 
    320  /*   960 */    39,  349,  360,  326,  348,  291,  156,  324,  352,  344, 
    321  /*   970 */   135,  324,  201,   42,  324,   30,   30,   30,  324,    7, 
    322  /*   980 */   106,   30,  225,  368,  362,  146,  343,  324,  324,  250, 
    323  /*   990 */   286,  238,  324,  324,   49,   48,   46,   45,   20,   29, 
    324  /*  1000 */   365,  366,   28,   32,  373,  374,   15,   11,  211,  324, 
    325  /*  1010 */   324,  324,  324,  324,  324,  324,  324,  324,  324,  324, 
    326  /*  1020 */   382,  383,  384,  385,  381,  380,  376,  375,  377,  281, 
    327  /*  1030 */   378,  379,  324,  324,  358,   39,  349,  324,  324,  324, 
    328  /*  1040 */   324,  324,  324,  324,  324,   49,   48,   46,   45,   20, 
    329  /*  1050 */    29,  365,  366,   28,   32,  373,  374,   15,   11,  324, 
    330  /*  1060 */   324,  324,  324,  324,  324,  324,  324,  324,  324,  324, 
    331  /*  1070 */   324,  382,  383,  384,  385,  381,  380,  376,  375,  377, 
    332  /*  1080 */   281,  378,  379,  324,   49,   48,   46,   45,   20,   29, 
    333  /*  1090 */   365,  366,   28,   32,  373,  374,   15,   11,  324,  324, 
    334  /*  1100 */   324,  324,  324,  324,  324,  324,  324,  324,  324,  324, 
    335  /*  1110 */   382,  383,  384,  385,  381,  380,  376,  375,  377,  281, 
    336  /*  1120 */   378,  379,  324,  324,  324,  324,   38,  324,  140,  207, 
    337  /*  1130 */   324,  360,    7,  106,  290,  147,  324,  356,  146,  135, 
    338  /*  1140 */   324,  324,  250,  286,  238,  230,   30,   13,  367,   30, 
    339  /*  1150 */    51,  225,  368,  362,  324,  343,  360,  324,  324,  324, 
    340  /*  1160 */   152,  324,  324,  324,  135,   50,   52,  301,  237,  363, 
    341  /*  1170 */   324,  360,  105,    1,  254,  154,  225,  368,  362,  135, 
    342  /*  1180 */   343,  324,   38,  324,  140,  214,  324,   96,    7,  106, 
    343  /*  1190 */   279,  225,  368,  362,  146,  343,  347,  345,  250,  286, 
    344  /*  1200 */   238,  230,   30,   13,  274,  324,   51,  338,   30,   30, 
    345  /*  1210 */   360,  324,  324,  324,  121,  324,   30,   53,  135,   30, 
    346  /*  1220 */   211,   50,   52,  301,  237,  363,  299,  361,  105,    1, 
    347  /*  1230 */   225,  368,  362,  211,  343,  453,  324,  268,   38,  324, 
    348  /*  1240 */   128,  214,  324,   96,    7,  106,  253,  453,  339,   30, 
    349  /*  1250 */   146,  335,  233,  324,  250,  286,  238,  230,   30,    3, 
    350  /*  1260 */    30,  324,   51,   30,  271,  324,  360,  324,    4,  324, 
    351  /*  1270 */   142,   47,  324,   84,  135,  324,   30,   50,   52,  301, 
    352  /*  1280 */   237,  363,  299,  361,  105,    1,  225,  368,  362,  324, 
    353  /*  1290 */   343,  144,  324,  324,   38,  324,  125,   92,  324,   96, 
    354  /*  1300 */     7,  106,  324,  324,  324,  324,  146,  324,  324,  324, 
    355  /*  1310 */   250,  286,  238,  230,  324,   13,  324,  324,   51,  324, 
    356  /*  1320 */   324,  324,  360,  324,  324,  324,  142,  324,  324,   89, 
    357  /*  1330 */   135,  324,  211,   50,   52,  301,  237,  363,  299,  361, 
    358  /*  1340 */   105,    1,  225,  368,  362,  324,  343,  456,  324,  324, 
    359  /*  1350 */    38,  324,  126,  214,  324,   96,    7,  106,  324,  456, 
    360  /*  1360 */   243,  324,  146,  324,  324,  324,  250,  286,  238,  230, 
    361  /*  1370 */   324,   21,  324,  324,   51,  324,  324,  324,  360,  324, 
    362  /*  1380 */   324,  324,  142,   47,  324,   87,  135,  324,  211,   50, 
    363  /*  1390 */    52,  301,  237,  363,  299,  361,  105,    1,  225,  368, 
    364  /*  1400 */   362,  324,  343,  456,  324,  324,   38,  324,  140,  210, 
    365  /*  1410 */   324,   96,    7,  106,  324,  456,  324,  324,  146,  324, 
    366  /*  1420 */   324,  324,  250,  286,  238,  230,  324,   13,  324,  324, 
    367  /*  1430 */    51,  324,  324,  324,  360,  324,  324,  324,  142,   47, 
    368  /*  1440 */   324,   63,  135,  324,  211,   50,   52,  301,  237,  363, 
    369  /*  1450 */   299,  361,  105,    1,  225,  368,  362,  324,  343,  325, 
    370  /*  1460 */   324,  324,   38,  324,  137,  214,  324,   96,    7,  106, 
    371  /*  1470 */   324,   30,  324,  324,  146,  324,  324,  324,  250,  286, 
    372  /*  1480 */   238,  230,  324,   13,  324,  324,   51,  324,  324,  324, 
    373  /*  1490 */   360,  324,  324,  324,  142,   47,  324,   80,  135,  324, 
    374  /*  1500 */   324,   50,   52,  301,  237,  363,  299,  361,  105,    1, 
    375  /*  1510 */   225,  368,  362,  324,  343,  324,  324,  324,   38,  324, 
    376  /*  1520 */   140,  206,  324,   96,    7,  106,  324,  324,  324,  324, 
    377  /*  1530 */   146,  324,  324,  324,  250,  286,  238,  220,  324,   13, 
    378  /*  1540 */   324,  324,   51,  324,  324,  324,  360,  324,  324,  324, 
    379  /*  1550 */   114,  324,  324,   75,  135,  324,  324,   50,   52,  301, 
    380  /*  1560 */   237,  363,  299,  361,  105,    1,  225,  368,  362,  324, 
    381  /*  1570 */   343,  324,  324,  324,   38,  324,  140,  205,  324,   96, 
    382  /*  1580 */     7,  106,  324,  324,  324,  324,  146,  324,  324,  324, 
    383  /*  1590 */   250,  286,  238,  230,  324,   13,  324,  324,   51,  324, 
    384  /*  1600 */   324,  324,  360,  324,  324,  324,  142,  324,  324,   77, 
    385  /*  1610 */   135,  324,  324,   50,   52,  301,  237,  363,  299,  361, 
    386  /*  1620 */   105,    1,  225,  368,  362,  324,  343,  324,  324,  324, 
    387  /*  1630 */    38,  324,  140,  209,  324,   96,    7,  106,  324,  324, 
    388  /*  1640 */   324,  324,  146,  324,  324,  324,  250,  286,  238,  230, 
    389  /*  1650 */   324,   13,  324,  324,   51,  324,  324,  324,  360,  324, 
    390  /*  1660 */   324,  324,  142,  324,  324,   85,  135,  324,  324,   50, 
    391  /*  1670 */    52,  301,  237,  363,  299,  361,  105,    1,  225,  368, 
    392  /*  1680 */   362,  324,  343,  324,  324,  324,   38,  324,  126,  213, 
    393  /*  1690 */   324,   96,    7,  106,  324,  324,  324,  324,  146,  324, 
    394  /*  1700 */   324,  324,  250,  286,  238,  230,  324,   21,  324,  324, 
    395  /*  1710 */    51,  324,  324,  324,  360,  324,  324,  324,  142,  324, 
    396  /*  1720 */   324,   71,  135,  324,  324,   50,   52,  301,  237,  363, 
    397  /*  1730 */   299,  361,  105,  324,  225,  368,  362,  324,  343,  324, 
    398  /*  1740 */   324,  324,   38,  324,  126,  214,  324,   96,    7,  106, 
    399  /*  1750 */   324,  324,  324,  324,  146,  324,  324,  324,  250,  286, 
    400  /*  1760 */   238,  230,  324,   21,  102,  186,   51,  324,  324,  324, 
    401  /*  1770 */   324,  324,  324,  324,  289,  324,  324,   22,   27,  324, 
    402  /*  1780 */   499,   50,   52,  301,  237,  363,  324,  499,  105,  499, 
    403  /*  1790 */   499,  203,  499,  499,  324,  324,  324,  324,  324,  499, 
    404  /*  1800 */     4,  499,  324,   96,  324,  324,  324,  324,  324,  324, 
    405  /*  1810 */   324,  324,  324,  360,  324,  324,  499,  117,  324,  324, 
    406  /*  1820 */    74,  135,  324,  144,  324,  324,  324,  499,  324,  299, 
    407  /*  1830 */   361,  324,  324,  225,  368,  362,  324,  343,  360,  324, 
    408  /*  1840 */   324,  499,  142,  324,  324,   66,  135,  324,  263,  324, 
    409  /*  1850 */   324,  324,  324,  324,  299,  361,  324,  324,  225,  368, 
    410  /*  1860 */   362,  324,  343,  324,  360,  324,  324,  324,  142,  324, 
    411  /*  1870 */   324,   79,  135,  324,  360,  324,  324,  324,  149,  324, 
    412  /*  1880 */   299,  361,  135,  360,  225,  368,  362,  142,  343,  324, 
    413  /*  1890 */    81,  135,  324,  324,  225,  368,  362,  324,  343,  299, 
    414  /*  1900 */   361,  324,  324,  225,  368,  362,  324,  343,  324,  324, 
    415  /*  1910 */   324,  360,  324,  324,  324,  115,  324,  324,   83,  135, 
    416  /*  1920 */   324,  324,  360,  324,  324,  324,  142,  299,  361,   72, 
    417  /*  1930 */   135,  225,  368,  362,  324,  343,  324,  324,  299,  361, 
    418  /*  1940 */   324,  324,  225,  368,  362,  324,  343,  324,  360,  324, 
    419  /*  1950 */   324,  324,  142,  324,  324,   70,  135,  324,  360,  324, 
    420  /*  1960 */   324,  324,  153,  324,  299,  361,  135,  360,  225,  368, 
    421  /*  1970 */   362,  142,  343,  324,   68,  135,  324,  324,  225,  368, 
    422  /*  1980 */   362,  324,  343,  299,  361,  324,  324,  225,  368,  362, 
    423  /*  1990 */   324,  343,  324,  324,  324,  360,  324,  324,  324,  142, 
    424  /*  2000 */   324,  324,   90,  135,  324,  324,  360,  324,  324,  324, 
    425  /*  2010 */   142,  299,  361,   86,  135,  225,  368,  362,  324,  343, 
    426  /*  2020 */   324,  324,  299,  361,  324,  324,  225,  368,  362,  324, 
    427  /*  2030 */   343,  324,  360,  194,  183,  324,  142,  324,  324,   91, 
    428  /*  2040 */   135,  324,  324,  289,  324,  324,   22,   27,  299,  361, 
    429  /*  2050 */   324,  360,  225,  368,  362,  142,  343,  324,   61,  135, 
    430  /*  2060 */   203,  324,  324,  324,  194,  171,  324,  299,  361,  324, 
    431  /*  2070 */   324,  225,  368,  362,  289,  343,  324,   22,   27,  360, 
    432  /*  2080 */   324,  324,  324,  142,  324,  324,   88,  135,  324,  324, 
    433  /*  2090 */   360,  203,  324,  324,  142,  299,  361,   69,  135,  225, 
    434  /*  2100 */   368,  362,  324,  343,  324,  324,  299,  361,  324,  324, 
    435  /*  2110 */   225,  368,  362,  324,  343,  324,  360,  194,  179,  324, 
    436  /*  2120 */   142,  324,  324,   76,  135,  324,  324,  289,  324,  324, 
    437  /*  2130 */    22,   27,  299,  361,  324,  360,  225,  368,  362,  142, 
    438  /*  2140 */   343,  324,   65,  135,  203,  324,  324,  324,  194,  187, 
    439  /*  2150 */   324,  299,  361,  324,  324,  225,  368,  362,  289,  343, 
    440  /*  2160 */   324,   22,   27,  360,  324,  324,  324,  111,  324,  324, 
    441  /*  2170 */    64,  135,  324,  324,  360,  203,  324,  324,  142,  299, 
    442  /*  2180 */   361,   62,  135,  225,  368,  362,  324,  343,  324,  324, 
    443  /*  2190 */   299,  361,  324,  324,  225,  368,  362,  324,  343,  324, 
    444  /*  2200 */   360,  194,  173,  324,  142,  324,  324,   82,  135,  324, 
    445  /*  2210 */   324,  289,  324,  324,   22,   27,  299,  361,  324,  360, 
    446  /*  2220 */   225,  368,  362,  142,  343,  324,   60,  135,  203,  324, 
    447  /*  2230 */   324,  324,  324,  324,  324,  299,  361,  324,  324,  225, 
    448  /*  2240 */   368,  362,  324,  343,  324,  324,  324,  360,  324,  324, 
    449  /*  2250 */   324,   93,  324,  324,   57,  120,  324,  324,  360,  324, 
    450  /*  2260 */   324,  324,  142,  299,  361,   58,  135,  225,  368,  362, 
    451  /*  2270 */   324,  343,  324,  324,  299,  361,  324,  324,  225,  368, 
    452  /*  2280 */   362,  324,  343,  324,  360,  324,  324,  324,  142,  324, 
    453  /*  2290 */   324,   59,  135,  324,  324,  324,  324,  324,  324,  324, 
    454  /*  2300 */   299,  361,  324,  360,  225,  368,  362,   93,  343,  324, 
    455  /*  2310 */    55,  120,  324,  324,  324,  324,  324,  324,  324,  299, 
    456  /*  2320 */   361,  324,  324,  215,  368,  362,  324,  343,  324,  324, 
    457  /*  2330 */   324,  360,  324,  324,  324,  142,  324,  324,   56,  135, 
    458  /*  2340 */   324,  324,  360,  324,  324,  324,  142,  299,  361,   78, 
    459  /*  2350 */   135,  225,  368,  362,  324,  343,  324,  324,  299,  361, 
    460  /*  2360 */   324,  324,  225,  368,  362,  324,  343,  324,  360,  324, 
    461  /*  2370 */   324,  324,  142,  324,  324,   67,  135,  324,  324,  324, 
    462  /*  2380 */   324,  324,  324,  324,  299,  361,  324,  324,  217,  368, 
    463  /*  2390 */   362,  324,  343, 
     226 /*     0 */   218,  317,  318,  320,  319,  316,  315,  311,  310,  312, 
     227 /*    10 */   313,  314,  321,  322,  197,  193,  187,   43,  591,   95, 
     228 /*    20 */   255,  318,  320,    6,  107,  292,   38,   11,   42,  154, 
     229 /*    30 */   283,   13,  181,  245,  295,  241,  262,  284,   51,   50, 
     230 /*    40 */    52,   44,   23,   28,  367,  374,   33,   32,  375,  383, 
     231 /*    50 */    21,   31,  328,  323,  325,  326,  324,    9,   36,  353, 
     232 /*    60 */   265,  197,  331,  329,  384,  385,  386,  382,  381,  377, 
     233 /*    70 */   376,  378,  379,  282,  380,  362,  218,  344,    4,  106, 
     234 /*    80 */   175,  120,    7,   11,   82,  129,  283,   12,  456,  292, 
     235 /*    90 */   453,   27,  291,  301,  361,  109,  387,  236,  368,  365, 
     236 /*   100 */   456,  343,  453,  243,   42,  136,  200,   37,    7,  267, 
     237 /*   110 */     7,  219,  256,    7,   51,   50,   52,   44,   23,   28, 
     238 /*   120 */   367,  374,   33,   32,  375,  383,   21,   31,  239,   99, 
     239 /*   130 */   171,  136,   36,  136,  261,   26,  136,  123,  373,  292, 
     240 /*   140 */   384,  385,  386,  382,  381,  377,  376,  378,  379,  282, 
     241 /*   150 */   380,  362,  218,  344,  369,  218,  200,  132,  158,  184, 
     242 /*   160 */    68,  119,  235,   11,   11,  153,  283,  283,  337,  301, 
     243 /*   170 */   361,  458,  306,  236,  368,  365,   42,  343,  252,  284, 
     244 /*   180 */    42,  191,  218,  458,  250,   11,  200,  287,  283,   12, 
     245 /*   190 */    51,   50,   52,   44,   23,   28,  367,  374,   33,   32, 
     246 /*   200 */   375,  383,   21,   31,  302,  108,  168,   49,  200,  232, 
     247 /*   210 */    11,  218,   35,  283,  240,  292,  384,  385,  386,  382, 
     248 /*   220 */   381,  377,  376,  378,  379,  282,  380,  362,  218,  344, 
     249 /*   230 */   207,  218,  200,  132,   49,    8,   54,  119,  142,   11, 
     250 /*   240 */    14,  158,  283,  110,  342,  301,  361,  455,  152,  236, 
     251 /*   250 */   368,  365,   42,  343,  231,  239,   42,  350,  103,  455, 
     252 /*   260 */   248,  199,  339,   49,  343,  345,   51,   50,   52,   44, 
     253 /*   270 */    23,   28,  367,  374,   33,   32,  375,  383,   21,   31, 
     254 /*   280 */   128,  183,  174,   49,  370,  163,  198,  339,   15,  158, 
     255 /*   290 */   292,  292,  384,  385,  386,  382,  381,  377,  376,  378, 
     256 /*   300 */   379,  282,  380,  362,  218,  344,  192,  218,  201,  120, 
     257 /*   310 */   344,  272,   82,  129,  156,  164,  270,  218,  129,  158, 
     258 /*   320 */   273,  301,  361,  458,  292,  236,  368,  365,  128,  343, 
     259 /*   330 */   236,  368,  365,  296,  343,  458,  284,  244,  130,  227, 
     260 /*   340 */   260,  330,   51,   50,   52,   44,   23,   28,  367,  374, 
     261 /*   350 */    33,   32,  375,  383,   21,   31,  207,  196,  339,   49, 
     262 /*   360 */    41,    8,  127,  162,  251,  229,  212,  242,  384,  385, 
     263 /*   370 */   386,  382,  381,  377,  376,  378,  379,  282,  380,  362, 
     264 /*   380 */   218,  344,  101,  218,  176,  132,  344,  140,   78,  129, 
     265 /*   390 */   148,  166,  249,  292,  129,  186,  278,  301,  361,  327, 
     266 /*   400 */   292,  236,  368,  365,  292,  343,  236,  368,  365,    5, 
     267 /*   410 */   343,   42,  211,   36,  121,  281,  284,  201,   51,   50, 
     268 /*   420 */    52,   44,   23,   28,  367,  374,   33,   32,  375,  383, 
     269 /*   430 */    21,   31,  218,  178,    7,   49,  179,  275,  225,  185, 
     270 /*   440 */    11,  284,  292,  283,  384,  385,  386,  382,  381,  377, 
     271 /*   450 */   376,  378,  379,  282,  380,  362,   17,  136,   11,  201, 
     272 /*   460 */   170,  226,  173,  200,  284,  141,  247,  223,  335,  292, 
     273 /*   470 */    51,   50,   52,   44,   23,   28,  367,  374,   33,   32, 
     274 /*   480 */   375,  383,   21,   31,  135,  218,  201,  359,   11,   11, 
     275 /*   490 */    11,  238,  213,  234,  188,  302,  384,  385,  386,  382, 
     276 /*   500 */   381,  377,  376,  378,  379,  282,  380,  362,  195,  351, 
     277 /*   510 */   189,  366,  251,  235,  218,  251,  264,  333,  146,  332, 
     278 /*   520 */   305,  200,  143,   51,   50,   52,   44,   23,   28,  367, 
     279 /*   530 */   374,   33,   32,  375,  383,   21,   31,  218,  203,  137, 
     280 /*   540 */    15,  297,   42,  271,  194,   19,   98,  116,  102,  384, 
     281 /*   550 */   385,  386,  382,  381,  377,  376,  378,  379,  282,  380, 
     282 /*   560 */   362,  372,  372,  372,  300,   34,  224,  138,   39,  139, 
     283 /*   570 */   225,  146,  131,  133,  159,   51,   50,   52,   44,   23, 
     284 /*   580 */    28,  367,  374,   33,   32,  375,  383,   21,   31,  372, 
     285 /*   590 */   172,  334,   94,  299,  276,  302,    2,  371,    4,  292, 
     286 /*   600 */   125,  384,  385,  386,  382,  381,  377,  376,  378,  379, 
     287 /*   610 */   282,  380,  362,  218,  344,  372,  218,  308,  132,  344, 
     288 /*   620 */   287,   78,  129,  150,  370,  201,  161,  129,  160,  204, 
     289 /*   630 */   301,  361,  341,   29,  236,  368,  365,  292,  343,  236, 
     290 /*   640 */   368,  365,  218,  343,  284,  216,   42,   20,  277,  284, 
     291 /*   650 */   263,   51,   50,   52,   44,   23,   28,  367,  374,   33, 
     292 /*   660 */    32,  375,  383,   21,   31,  218,  228,   45,   49,   16, 
     293 /*   670 */   326,  249,  104,  326,  326,  118,  105,  384,  385,  386, 
     294 /*   680 */   382,  381,  377,  376,  378,  379,  282,  380,  362,  340, 
     295 /*   690 */   372,  372,  326,  326,  326,  326,  326,  326,  326,  326, 
     296 /*   700 */   326,   42,  237,   51,   50,   52,   44,   23,   28,  367, 
     297 /*   710 */   374,   33,   32,  375,  383,   21,   31,  218,  326,  326, 
     298 /*   720 */   326,  326,  326,  326,  326,  326,  114,  326,  218,  384, 
     299 /*   730 */   385,  386,  382,  381,  377,  376,  378,  379,  282,  380, 
     300 /*   740 */   362,  372,  353,  326,  307,  326,  326,  326,  326,  326, 
     301 /*   750 */   326,  326,  326,  326,  268,   51,   50,   52,   44,   23, 
     302 /*   760 */    28,  367,  374,   33,   32,  375,  383,   21,   31,  218, 
     303 /*   770 */   326,  326,  326,  326,  326,  326,  326,  326,   97,  355, 
     304 /*   780 */   112,  384,  385,  386,  382,  381,  377,  376,  378,  379, 
     305 /*   790 */   282,  380,  362,  372,  326,  372,  326,   42,  326,  326, 
     306 /*   800 */   326,  326,  326,  326,  326,  326,  158,   51,   50,   52, 
     307 /*   810 */    44,   23,   28,  367,  374,   33,   32,  375,  383,   21, 
     308 /*   820 */    31,  218,  326,  326,  326,  326,  326,  326,  326,  326, 
     309 /*   830 */   326,  326,  326,  384,  385,  386,  382,  381,  377,  376, 
     310 /*   840 */   378,  379,  282,  380,  362,  128,  326,  326,  326,  326, 
     311 /*   850 */   326,  326,  326,  326,  326,  326,  326,  326,  326,   51, 
     312 /*   860 */    50,   52,   44,   23,   28,  367,  374,   33,   32,  375, 
     313 /*   870 */   383,   21,   31,  326,  326,  326,  326,  326,  326,  326, 
     314 /*   880 */   326,  326,  326,  326,  266,  384,  385,  386,  382,  381, 
     315 /*   890 */   377,  376,  378,  379,  282,  380,  362,  218,  326,  326, 
     316 /*   900 */   326,  326,  190,  344,  326,  326,   11,  145,  354,  283, 
     317 /*   910 */   288,  129,  218,  202,   18,   24,   22,  218,   45,   42, 
     318 /*   920 */     6,  107,   42,  236,  368,  365,  154,  343,  286,  200, 
     319 /*   930 */   245,  295,  241,  285,  326,   51,   50,   52,   44,   23, 
     320 /*   940 */    28,  367,  374,   33,   32,  375,  383,   21,   31,  218, 
     321 /*   950 */    10,  326,  326,  326,  326,  326,  326,  326,  326,  326, 
     322 /*   960 */   326,  384,  385,  386,  382,  381,  377,  376,  378,  379, 
     323 /*   970 */   282,  380,  362,  326,  326,  356,   40,  352,  326,  326, 
     324 /*   980 */   326,  326,  326,  326,  326,  326,  326,   51,   50,   52, 
     325 /*   990 */    44,   23,   28,  367,  374,   33,   32,  375,  383,   21, 
     326 /*  1000 */    31,  218,  326,  326,  326,  326,  326,  326,  326,  326, 
     327 /*  1010 */   326,  326,  326,  384,  385,  386,  382,  381,  377,  376, 
     328 /*  1020 */   378,  379,  282,  380,  362,  326,  326,  326,  326,  326, 
     329 /*  1030 */   326,  326,  326,  326,  326,  326,  326,  326,  326,   51, 
     330 /*  1040 */    50,   52,   44,   23,   28,  367,  374,   33,   32,  375, 
     331 /*  1050 */   383,   21,   31,  326,  326,  326,  326,  326,  326,  326, 
     332 /*  1060 */   326,  326,  326,  326,  326,  384,  385,  386,  382,  381, 
     333 /*  1070 */   377,  376,  378,  379,  282,  380,  362,  218,  218,   51, 
     334 /*  1080 */    50,   52,   44,   23,   28,  367,  374,   33,   32,  375, 
     335 /*  1090 */   383,   21,   31,  303,  304,  326,  326,  326,  326,  326, 
     336 /*  1100 */   326,  326,  326,  326,  326,  384,  385,  386,  382,  381, 
     337 /*  1110 */   377,  376,  378,  379,  282,  380,  362,  218,  326,  218, 
     338 /*  1120 */   326,  326,   43,  326,  134,  208,  326,  326,    6,  107, 
     339 /*  1130 */   326,  326,  253,  348,  154,  452,  354,  230,  245,  295, 
     340 /*  1140 */   241,  246,   18,   30,   42,   42,   48,   42,    6,  107, 
     341 /*  1150 */   326,  326,  326,    7,  154,  326,  326,  326,  245,  295, 
     342 /*  1160 */   241,   47,   46,  298,  233,  363,  326,  344,  101,    1, 
     343 /*  1170 */   269,  155,  326,  326,  326,  129,  136,  326,   43,  326, 
     344 /*  1180 */   134,  220,  326,   96,    6,  107,  358,  236,  368,  365, 
     345 /*  1190 */   154,  343,  326,  326,  245,  295,  241,  246,   42,   30, 
     346 /*  1200 */   326,  254,   48,  360,   40,  352,  326,  344,  326,  326, 
     347 /*  1210 */   326,  151,  326,   42,  349,  129,  326,   47,   46,  298, 
     348 /*  1220 */   233,  363,  326,  274,  101,    1,   42,  236,  368,  365, 
     349 /*  1230 */   326,  343,  336,  357,   43,   42,  144,  220,  326,   96, 
     350 /*  1240 */     6,  107,  289,  326,   42,   42,  154,  258,  326,  294, 
     351 /*  1250 */   245,  295,  241,  246,   42,    3,  326,  338,   48,   42, 
     352 /*  1260 */   259,   42,  326,  344,  326,  326,  326,  149,  326,   42, 
     353 /*  1270 */   279,  129,   42,   47,   46,  298,  233,  363,  326,  293, 
     354 /*  1280 */   101,    1,   42,  236,  368,  365,  326,  343,  309,  347, 
     355 /*  1290 */    43,   42,  126,  220,  326,   96,    6,  107,  290,  326, 
     356 /*  1300 */    42,   42,  154,  346,  326,  257,  245,  295,  241,  246, 
     357 /*  1310 */    42,   30,  326,  326,   48,   42,  326,   42,  326,  326, 
     358 /*  1320 */   326,  326,  326,  326,  326,  326,  326,  326,  326,   47, 
     359 /*  1330 */    46,  298,  233,  363,  326,  326,  101,    1,  326,  326, 
     360 /*  1340 */   326,  326,  326,  326,  326,  326,   43,  326,  130,  220, 
     361 /*  1350 */   326,   96,    6,  107,  326,  326,  326,  326,  154,  326, 
     362 /*  1360 */   326,  326,  245,  295,  241,  246,  326,   25,  326,  326, 
     363 /*  1370 */    48,  326,  326,  326,  326,  326,  326,  326,  326,  326, 
     364 /*  1380 */   326,  326,  326,  326,  326,   47,   46,  298,  233,  363, 
     365 /*  1390 */   326,  326,  101,    1,  326,  326,  326,  326,  326,  326, 
     366 /*  1400 */   326,  326,   43,  326,  134,  210,  326,   96,    6,  107, 
     367 /*  1410 */   326,  326,  326,  326,  154,  326,  326,  326,  245,  295, 
     368 /*  1420 */   241,  246,  326,   30,  326,  326,   48,  326,  326,  326, 
     369 /*  1430 */   326,  326,  326,  326,  326,  326,  326,  326,  326,  326, 
     370 /*  1440 */   326,   47,   46,  298,  233,  363,  326,  326,  101,    1, 
     371 /*  1450 */   326,  326,  326,  326,  326,  326,  326,  326,   43,  326, 
     372 /*  1460 */   124,   92,  326,   96,    6,  107,  326,  326,  326,  326, 
     373 /*  1470 */   154,  326,  326,  326,  245,  295,  241,  246,  326,   30, 
     374 /*  1480 */   326,  326,   48,  326,  326,  326,  326,  326,  326,  326, 
     375 /*  1490 */   326,  326,  326,  326,  326,  326,  326,   47,   46,  298, 
     376 /*  1500 */   233,  363,  326,  326,  101,    1,  326,  326,  326,  326, 
     377 /*  1510 */   326,  326,  326,  326,   43,  326,  134,  206,  326,   96, 
     378 /*  1520 */     6,  107,  326,  326,  326,  326,  154,  326,  326,  326, 
     379 /*  1530 */   245,  295,  241,  222,  326,   30,  326,  326,   48,  326, 
     380 /*  1540 */   326,  326,  326,  326,  326,  326,  326,  326,  326,  326, 
     381 /*  1550 */   326,  326,  326,   47,   46,  298,  233,  363,  326,  326, 
     382 /*  1560 */   101,    1,  326,  326,  326,  326,  326,  326,  326,  326, 
     383 /*  1570 */    43,  326,  134,  205,  326,   96,    6,  107,  326,  326, 
     384 /*  1580 */   326,  326,  154,  326,  326,  326,  245,  295,  241,  246, 
     385 /*  1590 */   326,   30,  326,  326,   48,  326,  326,  326,  326,  326, 
     386 /*  1600 */   326,  326,  326,  326,  326,  326,  326,  326,  326,   47, 
     387 /*  1610 */    46,  298,  233,  363,  326,  326,  101,    1,  326,  326, 
     388 /*  1620 */   326,  326,  326,  326,  326,  326,   43,  326,  134,  209, 
     389 /*  1630 */   326,   96,    6,  107,  326,  326,  326,  326,  154,  326, 
     390 /*  1640 */   326,  326,  245,  295,  241,  246,  326,   30,  326,  326, 
     391 /*  1650 */    48,  326,  326,  326,  326,  326,  326,  326,  326,  326, 
     392 /*  1660 */   326,  326,  326,  326,  326,   47,   46,  298,  233,  363, 
     393 /*  1670 */   326,  326,  101,    1,  326,  326,  326,  326,  326,  326, 
     394 /*  1680 */   326,  326,   43,  326,  130,  220,  326,   96,    6,  107, 
     395 /*  1690 */   326,  326,  326,  326,  154,  326,  326,  326,  245,  295, 
     396 /*  1700 */   241,  246,  326,   25,  326,  326,   48,  326,  326,  326, 
     397 /*  1710 */   326,  326,  326,  326,  326,  326,  326,  326,  326,  190, 
     398 /*  1720 */   165,   47,   46,  298,  233,  363,  326,  326,  101,  292, 
     399 /*  1730 */   326,  326,   24,   22,  326,  326,  326,  326,   43,  326, 
     400 /*  1740 */   130,  221,  326,   96,    6,  107,  200,  326,  326,  326, 
     401 /*  1750 */   154,  326,  326,  326,  245,  295,  241,  246,  326,   25, 
     402 /*  1760 */   326,  326,   48,  326,  326,  326,  326,  326,  326,  326, 
     403 /*  1770 */   326,  326,  326,  326,  326,  326,  326,   47,   46,  298, 
     404 /*  1780 */   233,  363,  326,  326,  101,  326,  326,  326,  326,  326, 
     405 /*  1790 */   326,  326,  326,  326,  326,  501,  190,  180,  326,   96, 
     406 /*  1800 */   326,  326,  501,  326,  501,  501,  292,  501,  501,   24, 
     407 /*  1810 */    22,  326,  326,  344,  501,    7,  501,  132,  326,  326, 
     408 /*  1820 */    78,  129,  326,  200,  326,  326,  326,  326,  326,  301, 
     409 /*  1830 */   361,  501,  326,  236,  368,  365,  326,  343,  136,  326, 
     410 /*  1840 */   326,  344,  501,  326,  217,   93,  326,  326,   59,  117, 
     411 /*  1850 */   326,  326,  326,  326,  326,  326,  501,  301,  361,  326, 
     412 /*  1860 */   326,  236,  368,  365,  344,  343,  326,  326,  132,  326, 
     413 /*  1870 */   326,   77,  129,  326,  326,  326,  326,  326,  326,  326, 
     414 /*  1880 */   301,  361,  326,  326,  236,  368,  365,  344,  343,  326, 
     415 /*  1890 */   326,  132,  326,  326,   84,  129,  326,  326,  344,  326, 
     416 /*  1900 */   326,  326,  115,  301,  361,   72,  129,  236,  368,  365, 
     417 /*  1910 */   326,  343,  326,  326,  301,  361,  326,  326,  236,  368, 
     418 /*  1920 */   365,  326,  343,  344,  326,  326,  326,  132,  326,  326, 
     419 /*  1930 */    64,  129,  326,  326,  344,  326,  326,  326,  132,  301, 
     420 /*  1940 */   361,   66,  129,  236,  368,  365,  326,  343,  326,  326, 
     421 /*  1950 */   301,  361,  326,  344,  236,  368,  365,  132,  343,  326, 
     422 /*  1960 */    68,  129,  326,  326,  326,  326,  326,  326,  326,  301, 
     423 /*  1970 */   361,  326,  344,  236,  368,  365,  132,  343,  326,   76, 
     424 /*  1980 */   129,  326,  326,  344,  326,  326,  326,  132,  301,  361, 
     425 /*  1990 */    80,  129,  236,  368,  365,  326,  343,  326,  326,  301, 
     426 /*  2000 */   361,  326,  326,  236,  368,  365,  326,  343,  344,  326, 
     427 /*  2010 */   326,  326,  132,  326,  326,   60,  129,  326,  326,  344, 
     428 /*  2020 */   326,  326,  326,  132,  301,  361,   73,  129,  236,  368, 
     429 /*  2030 */   365,  326,  343,  326,  326,  301,  361,  326,  344,  236, 
     430 /*  2040 */   368,  365,  132,  343,  326,   74,  129,  326,  326,  326, 
     431 /*  2050 */   326,  326,  326,  326,  301,  361,  326,  344,  236,  368, 
     432 /*  2060 */   365,  132,  343,  326,   90,  129,  326,  326,  344,  326, 
     433 /*  2070 */   326,  326,  132,  301,  361,   65,  129,  236,  368,  365, 
     434 /*  2080 */   326,  343,  326,  326,  301,  361,  326,  326,  236,  368, 
     435 /*  2090 */   365,  326,  343,  344,  326,  326,  326,  132,  326,  326, 
     436 /*  2100 */    83,  129,  326,  326,  344,  326,  326,  326,   93,  301, 
     437 /*  2110 */   361,   53,  117,  236,  368,  365,  326,  343,  326,  326, 
     438 /*  2120 */   301,  361,  326,  344,  215,  368,  365,  132,  343,  326, 
     439 /*  2130 */    87,  129,  326,  326,  326,  326,  326,  326,  326,  301, 
     440 /*  2140 */   361,  326,  344,  236,  368,  365,  132,  343,  326,   58, 
     441 /*  2150 */   129,  326,  326,  344,  326,  326,  326,  122,  301,  361, 
     442 /*  2160 */    55,  129,  236,  368,  365,  326,  343,  326,  326,  301, 
     443 /*  2170 */   361,  326,  326,  236,  368,  365,  326,  343,  344,  326, 
     444 /*  2180 */   326,  326,  132,  326,  326,   70,  129,  326,  326,  344, 
     445 /*  2190 */   326,  326,  326,  132,  301,  361,   91,  129,  236,  368, 
     446 /*  2200 */   365,  326,  343,  326,  326,  301,  361,  326,  344,  236, 
     447 /*  2210 */   368,  365,  111,  343,  326,   63,  129,  326,  326,  326, 
     448 /*  2220 */   326,  326,  326,  326,  301,  361,  326,  344,  236,  368, 
     449 /*  2230 */   365,  132,  343,  326,   86,  129,  326,  326,  344,  326, 
     450 /*  2240 */   326,  326,  132,  301,  361,   79,  129,  236,  368,  365, 
     451 /*  2250 */   326,  343,  326,  326,  301,  361,  326,  326,  236,  368, 
     452 /*  2260 */   365,  326,  343,  344,  326,  326,  326,  132,  326,  326, 
     453 /*  2270 */    75,  129,  326,  326,  344,  326,  326,  326,  132,  301, 
     454 /*  2280 */   361,   88,  129,  236,  368,  365,  326,  343,  326,  326, 
     455 /*  2290 */   301,  361,  326,  344,  236,  368,  365,  132,  343,  326, 
     456 /*  2300 */    62,  129,  326,  326,  326,  326,  326,  326,  326,  301, 
     457 /*  2310 */   361,  326,  344,  236,  368,  365,  132,  343,  326,   61, 
     458 /*  2320 */   129,  326,  326,  344,  326,  326,  326,  132,  301,  361, 
     459 /*  2330 */    69,  129,  236,  368,  365,  326,  343,  326,  326,  301, 
     460 /*  2340 */   361,  326,  326,  236,  368,  365,  326,  343,  344,  326, 
     461 /*  2350 */   326,  326,  132,  326,  326,   57,  129,  326,  326,  344, 
     462 /*  2360 */   326,  326,  326,  132,  301,  361,   89,  129,  236,  368, 
     463 /*  2370 */   365,  326,  343,  326,  326,  301,  361,  326,  344,  236, 
     464 /*  2380 */   368,  365,  132,  343,  326,   81,  129,  326,  326,  326, 
     465 /*  2390 */   326,  326,  326,  326,  301,  361,  326,  344,  236,  368, 
     466 /*  2400 */   365,  113,  343,  326,   85,  129,  326,  326,  344,  326, 
     467 /*  2410 */   326,  326,  132,  301,  361,   71,  129,  236,  368,  365, 
     468 /*  2420 */   326,  343,  326,  326,  301,  361,  326,  326,  236,  368, 
     469 /*  2430 */   365,  326,  343,  344,  326,  326,  326,  132,  326,  326, 
     470 /*  2440 */    67,  129,  326,  326,  344,  326,  326,  326,  132,  301, 
     471 /*  2450 */   361,   56,  129,  214,  368,  365,  326,  343,  326,  326, 
     472 /*  2460 */   301,  361,  326,  344,  236,  368,  365,  147,  343,  326, 
     473 /*  2470 */   326,  129,  326,  326,  326,  326,  326,  326,  326,  326, 
     474 /*  2480 */   364,  326,  344,  236,  368,  365,  157,  343,  326,  326, 
     475 /*  2490 */   129,  326,  326,  326,  326,  100,  177,  326,  326,  280, 
     476 /*  2500 */   326,  326,  236,  368,  365,  292,  343,  326,   24,   22, 
     477 /*  2510 */   326,  190,  167,  326,  326,  326,  326,  326,  190,  182, 
     478 /*  2520 */   326,  292,  200,  326,   24,   22,  326,  326,  292,  326, 
     479 /*  2530 */   326,   24,   22,  326,  190,  169,  326,  326,  200,  326, 
     480 /*  2540 */   326,  326,  326,  326,  292,  200,  326,   24,   22,  326, 
     481 /*  2550 */   326,  326,  326,  326,  326,  326,  326,  326,  326,  326, 
     482 /*  2560 */   326,  200, 
    464483    ); 
    465484    static public $yy_lookahead = array( 
    466  /*     0 */     1,   82,   83,   84,    3,    4,    5,    6,    7,    8, 
    467  /*    10 */     9,   10,   11,   12,   18,   89,   15,   80,   81,   82, 
    468  /*    20 */    83,   84,   21,   22,   98,   26,   15,   28,   27,   18, 
    469  /*    30 */    19,  116,   31,   32,   33,   24,  110,   38,   39,   40, 
     485 /*     0 */     1,   83,   84,   85,    3,    4,    5,    6,    7,    8, 
     486 /*    10 */     9,   10,   11,   12,   13,   98,   90,   16,   81,   82, 
     487 /*    20 */    83,   84,   85,   22,   23,   99,   27,   16,   29,   28, 
     488 /*    30 */    19,   20,  109,   32,   33,   34,   25,  111,   39,   40, 
    470489 /*    40 */    41,   42,   43,   44,   45,   46,   47,   48,   49,   50, 
    471  /*    50 */    51,    4,    5,    6,    7,    8,   60,    1,   36,   12, 
    472  /*    60 */    13,   14,    1,   64,   65,   66,   67,   68,   69,   70, 
    473  /*    70 */    71,   72,   73,   74,   75,    1,   83,   16,   88,   57, 
    474  /*    80 */    87,   59,   88,   90,   91,   63,   30,   16,   15,   28, 
    475  /*    90 */    16,   18,   99,  100,   19,   20,  103,  104,  105,   28, 
    476  /*   100 */   107,   28,   28,   30,    2,  115,  116,   36,   52,  115, 
    477  /*   110 */   117,  118,   38,   39,   40,   41,   42,   43,   44,   45, 
    478  /*   120 */    46,   47,   48,   49,   50,   51,   83,   88,   89,  109, 
    479  /*   130 */    59,  111,  112,   15,   59,   17,   18,   98,   64,   65, 
    480  /*   140 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75, 
    481  /*   150 */     1,   83,   34,   15,  115,   87,   18,   19,   90,   91, 
    482  /*   160 */    92,   15,  119,  120,   18,   16,   16,   99,  100,   19, 
    483  /*   170 */    89,  103,  104,  105,   28,  107,   30,   28,   28,   98, 
    484  /*   180 */    36,   15,   15,   17,   18,   18,   36,   38,   39,   40, 
    485  /*   190 */    41,   42,   43,   44,   45,   46,   47,   48,   49,   50, 
    486  /*   200 */    51,   88,   89,   59,   15,   57,   30,   18,   19,   59, 
    487  /*   210 */    62,   98,   36,   64,   65,   66,   67,   68,   69,   70, 
    488  /*   220 */    71,   72,   73,   74,   75,    1,   83,   60,  115,   16, 
    489  /*   230 */    87,   97,   15,   90,   91,   59,    1,   24,   19,   20, 
    490  /*   240 */    16,   15,   99,  100,   18,   20,  103,  104,  105,   60, 
    491  /*   250 */   107,   16,   28,   36,   84,   20,   86,  114,  111,  112, 
    492  /*   260 */    17,   18,   38,   39,   40,   41,   42,   43,   44,   45, 
    493  /*   270 */    46,   47,   48,   49,   50,   51,    1,    2,   59,   91, 
    494  /*   280 */    92,   93,   57,  111,  112,   24,   60,   62,   64,   65, 
    495  /*   290 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75, 
    496  /*   300 */    89,    1,   88,   89,   61,   35,   35,   37,   37,   98, 
    497  /*   310 */    17,   18,   98,   38,   39,   40,   41,   42,   43,   44, 
    498  /*   320 */    45,   46,   47,   48,   49,   50,   51,    1,   89,  115, 
    499  /*   330 */    35,   35,   37,   88,   88,   91,   92,   98,   77,   64, 
    500  /*   340 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74, 
    501  /*   350 */    75,   23,   52,   89,  115,   29,  108,   97,  110,   63, 
    502  /*   360 */   115,  115,   98,   35,   38,   39,   40,   41,   42,   43, 
    503  /*   370 */    44,   45,   46,   47,   48,   49,   50,   51,    1,  115, 
    504  /*   380 */    89,   15,   15,   15,   18,   18,   18,   95,   17,   98, 
    505  /*   390 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
    506  /*   400 */    74,   75,  110,   89,   91,   92,  115,   36,    1,  108, 
    507  /*   410 */    15,  110,   98,   18,  108,   38,   39,   40,   41,   42, 
    508  /*   420 */    43,   44,   45,   46,   47,   48,   49,   50,   51,  115, 
    509  /*   430 */   106,  106,   36,   15,   97,   28,   18,  113,  113,  108, 
    510  /*   440 */    95,   64,   65,   66,   67,   68,   69,   70,   71,   72, 
    511  /*   450 */    73,   74,   75,    1,   77,  110,   83,  108,   15,   18, 
    512  /*   460 */    87,   18,   83,   90,   91,   20,   87,   17,   19,   91, 
    513  /*   470 */    91,   28,   99,  100,    1,   23,  103,  104,  105,  100, 
    514  /*   480 */   107,  103,  103,  104,  105,  107,  107,  114,    2,   16, 
    515  /*   490 */    38,   39,   40,   41,   42,   43,   44,   45,   46,   47, 
    516  /*   500 */    48,   49,   50,   51,   59,   19,   57,   19,   37,   61, 
    517  /*   510 */    18,   17,   53,    2,   18,   95,   64,   65,   66,   67, 
    518  /*   520 */    68,   69,   70,   71,   72,   73,   74,   75,    1,   83, 
    519  /*   530 */   110,   89,   63,   87,   83,   25,   90,   91,   87,   17, 
    520  /*   540 */    98,   18,   91,   16,    1,   99,  100,    1,    2,  103, 
    521  /*   550 */   104,  105,  110,  107,  103,  104,  105,   18,  107,   16, 
    522  /*   560 */   114,   61,   16,   34,    1,   38,   39,   40,   41,   42, 
    523  /*   570 */    43,   44,   45,   46,   47,   48,   49,   50,   51,   16, 
    524  /*   580 */    89,    2,   18,   17,   24,   57,   34,   36,   17,   98, 
    525  /*   590 */    95,   64,   65,   66,   67,   68,   69,   70,   71,   72, 
    526  /*   600 */    73,   74,   75,    1,   83,  110,   89,   18,   87,   18, 
    527  /*   610 */    16,   90,   91,   92,   89,   98,   96,   16,   16,   16, 
    528  /*   620 */    99,  100,   28,   98,  103,  104,  105,  110,  107,   28, 
    529  /*   630 */   110,   28,   18,   18,   98,  110,   20,    1,   28,  109, 
    530  /*   640 */    38,   39,   40,   41,   42,   43,   44,   45,   46,   47, 
    531  /*   650 */    48,   49,   50,   51,    1,  115,  108,   28,  113,  110, 
    532  /*   660 */    28,   94,  112,   95,   95,   95,   64,   65,   66,   67, 
    533  /*   670 */    68,   69,   70,   71,   72,   73,   74,   75,  110,  110, 
    534  /*   680 */   110,   85,   94,   13,  121,  121,  121,  121,  121,  121, 
    535  /*   690 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46, 
    536  /*   700 */    47,   48,   49,   50,   51,    1,  121,  121,  121,  121, 
    537  /*   710 */   121,  121,  121,  121,   95,   95,   95,   64,   65,   66, 
    538  /*   720 */    67,   68,   69,   70,   71,   72,   73,   74,   75,  110, 
    539  /*   730 */   110,  110,  121,  121,  121,  121,  121,  121,  121,  121, 
    540  /*   740 */   121,   37,   38,   39,   40,   41,   42,   43,   44,   45, 
    541  /*   750 */    46,   47,   48,   49,   50,   51,    1,  121,  121,  121, 
    542  /*   760 */   121,  121,  121,  121,  121,  121,  121,  121,   64,   65, 
    543  /*   770 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75, 
    544  /*   780 */    83,  121,  121,   28,  121,  121,  121,  121,  121,  121, 
    545  /*   790 */   121,  121,  121,   38,   39,   40,   41,   42,   43,   44, 
    546  /*   800 */    45,   46,   47,   48,   49,   50,   51,    1,  121,  121, 
    547  /*   810 */   121,  121,  121,  121,  121,  121,  121,  120,  121,   64, 
    548  /*   820 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74, 
    549  /*   830 */    75,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
    550  /*   840 */   121,  121,  121,  121,   38,   39,   40,   41,   42,   43, 
    551  /*   850 */    44,   45,   46,   47,   48,   49,   50,   51,  121,  121, 
    552  /*   860 */   121,  121,  121,  121,  121,  121,  121,  121,  121,   63, 
    553  /*   870 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
    554  /*   880 */    74,   75,    1,  121,  121,  121,   88,   83,    1,   16, 
    555  /*   890 */    16,   87,  121,   10,   16,   91,  121,   16,   15,  101, 
    556  /*   900 */   102,   28,   28,   16,   21,   22,   28,  103,  104,  105, 
    557  /*   910 */    27,  107,  121,  115,   31,   32,   33,  121,    1,   38, 
    558  /*   920 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48, 
    559  /*   930 */    49,   50,   51,   16,  121,  121,  121,  121,  121,   52, 
    560  /*   940 */   121,  121,  121,  121,  121,   64,   65,   66,   67,   68, 
    561  /*   950 */    69,   70,   71,   72,   73,   74,   75,    1,  121,   76, 
    562  /*   960 */    77,   78,   83,   16,   16,   16,   87,  121,   10,   16, 
    563  /*   970 */    91,  121,   16,   15,  121,   28,   28,   28,  121,   21, 
    564  /*   980 */    22,   28,  103,  104,  105,   27,  107,  121,  121,   31, 
    565  /*   990 */    32,   33,  121,  121,   38,   39,   40,   41,   42,   43, 
    566  /*  1000 */    44,   45,   46,   47,   48,   49,   50,   51,    1,  121, 
    567  /*  1010 */   121,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
    568  /*  1020 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
    569  /*  1030 */    74,   75,  121,  121,   76,   77,   78,  121,  121,  121, 
    570  /*  1040 */   121,  121,  121,  121,  121,   38,   39,   40,   41,   42, 
    571  /*  1050 */    43,   44,   45,   46,   47,   48,   49,   50,   51,  121, 
    572  /*  1060 */   121,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
    573  /*  1070 */   121,   64,   65,   66,   67,   68,   69,   70,   71,   72, 
    574  /*  1080 */    73,   74,   75,  121,   38,   39,   40,   41,   42,   43, 
    575  /*  1090 */    44,   45,   46,   47,   48,   49,   50,   51,  121,  121, 
    576  /*  1100 */   121,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
    577  /*  1110 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
    578  /*  1120 */    74,   75,  121,  121,  121,  121,   15,  121,   17,   18, 
    579  /*  1130 */   121,   83,   21,   22,   16,   87,  121,   16,   27,   91, 
    580  /*  1140 */   121,  121,   31,   32,   33,   34,   28,   36,  100,   28, 
    581  /*  1150 */    39,  103,  104,  105,  121,  107,   83,  121,  121,  121, 
    582  /*  1160 */    87,  121,  121,  121,   91,   54,   55,   56,   57,   58, 
    583  /*  1170 */   121,   83,   61,   62,   63,   87,  103,  104,  105,   91, 
    584  /*  1180 */   107,  121,   15,  121,   17,   18,  121,   76,   21,   22, 
    585  /*  1190 */    16,  103,  104,  105,   27,  107,   16,   16,   31,   32, 
    586  /*  1200 */    33,   34,   28,   36,   16,  121,   39,   16,   28,   28, 
    587  /*  1210 */    83,  121,  121,  121,   87,  121,   28,   90,   91,   28, 
    588  /*  1220 */     1,   54,   55,   56,   57,   58,   99,  100,   61,   62, 
    589  /*  1230 */   103,  104,  105,    1,  107,   16,  121,   16,   15,  121, 
    590  /*  1240 */    17,   18,  121,   76,   21,   22,   16,   28,   16,   28, 
    591  /*  1250 */    27,   16,   20,  121,   31,   32,   33,   34,   28,   36, 
    592  /*  1260 */    28,  121,   39,   28,   16,  121,   83,  121,   36,  121, 
    593  /*  1270 */    87,   52,  121,   90,   91,  121,   28,   54,   55,   56, 
    594  /*  1280 */    57,   58,   99,  100,   61,   62,  103,  104,  105,  121, 
    595  /*  1290 */   107,   59,  121,  121,   15,  121,   17,   18,  121,   76, 
    596  /*  1300 */    21,   22,  121,  121,  121,  121,   27,  121,  121,  121, 
    597  /*  1310 */    31,   32,   33,   34,  121,   36,  121,  121,   39,  121, 
    598  /*  1320 */   121,  121,   83,  121,  121,  121,   87,  121,  121,   90, 
    599  /*  1330 */    91,  121,    1,   54,   55,   56,   57,   58,   99,  100, 
    600  /*  1340 */    61,   62,  103,  104,  105,  121,  107,   16,  121,  121, 
    601  /*  1350 */    15,  121,   17,   18,  121,   76,   21,   22,  121,   28, 
    602  /*  1360 */    29,  121,   27,  121,  121,  121,   31,   32,   33,   34, 
    603  /*  1370 */   121,   36,  121,  121,   39,  121,  121,  121,   83,  121, 
    604  /*  1380 */   121,  121,   87,   52,  121,   90,   91,  121,    1,   54, 
    605  /*  1390 */    55,   56,   57,   58,   99,  100,   61,   62,  103,  104, 
    606  /*  1400 */   105,  121,  107,   16,  121,  121,   15,  121,   17,   18, 
    607  /*  1410 */   121,   76,   21,   22,  121,   28,  121,  121,   27,  121, 
    608  /*  1420 */   121,  121,   31,   32,   33,   34,  121,   36,  121,  121, 
    609  /*  1430 */    39,  121,  121,  121,   83,  121,  121,  121,   87,   52, 
    610  /*  1440 */   121,   90,   91,  121,    1,   54,   55,   56,   57,   58, 
    611  /*  1450 */    99,  100,   61,   62,  103,  104,  105,  121,  107,   16, 
    612  /*  1460 */   121,  121,   15,  121,   17,   18,  121,   76,   21,   22, 
    613  /*  1470 */   121,   28,  121,  121,   27,  121,  121,  121,   31,   32, 
    614  /*  1480 */    33,   34,  121,   36,  121,  121,   39,  121,  121,  121, 
    615  /*  1490 */    83,  121,  121,  121,   87,   52,  121,   90,   91,  121, 
    616  /*  1500 */   121,   54,   55,   56,   57,   58,   99,  100,   61,   62, 
    617  /*  1510 */   103,  104,  105,  121,  107,  121,  121,  121,   15,  121, 
    618  /*  1520 */    17,   18,  121,   76,   21,   22,  121,  121,  121,  121, 
    619  /*  1530 */    27,  121,  121,  121,   31,   32,   33,   34,  121,   36, 
    620  /*  1540 */   121,  121,   39,  121,  121,  121,   83,  121,  121,  121, 
    621  /*  1550 */    87,  121,  121,   90,   91,  121,  121,   54,   55,   56, 
    622  /*  1560 */    57,   58,   99,  100,   61,   62,  103,  104,  105,  121, 
    623  /*  1570 */   107,  121,  121,  121,   15,  121,   17,   18,  121,   76, 
    624  /*  1580 */    21,   22,  121,  121,  121,  121,   27,  121,  121,  121, 
    625  /*  1590 */    31,   32,   33,   34,  121,   36,  121,  121,   39,  121, 
    626  /*  1600 */   121,  121,   83,  121,  121,  121,   87,  121,  121,   90, 
    627  /*  1610 */    91,  121,  121,   54,   55,   56,   57,   58,   99,  100, 
    628  /*  1620 */    61,   62,  103,  104,  105,  121,  107,  121,  121,  121, 
    629  /*  1630 */    15,  121,   17,   18,  121,   76,   21,   22,  121,  121, 
    630  /*  1640 */   121,  121,   27,  121,  121,  121,   31,   32,   33,   34, 
    631  /*  1650 */   121,   36,  121,  121,   39,  121,  121,  121,   83,  121, 
    632  /*  1660 */   121,  121,   87,  121,  121,   90,   91,  121,  121,   54, 
    633  /*  1670 */    55,   56,   57,   58,   99,  100,   61,   62,  103,  104, 
    634  /*  1680 */   105,  121,  107,  121,  121,  121,   15,  121,   17,   18, 
    635  /*  1690 */   121,   76,   21,   22,  121,  121,  121,  121,   27,  121, 
    636  /*  1700 */   121,  121,   31,   32,   33,   34,  121,   36,  121,  121, 
    637  /*  1710 */    39,  121,  121,  121,   83,  121,  121,  121,   87,  121, 
    638  /*  1720 */   121,   90,   91,  121,  121,   54,   55,   56,   57,   58, 
    639  /*  1730 */    99,  100,   61,  121,  103,  104,  105,  121,  107,  121, 
    640  /*  1740 */   121,  121,   15,  121,   17,   18,  121,   76,   21,   22, 
    641  /*  1750 */   121,  121,  121,  121,   27,  121,  121,  121,   31,   32, 
    642  /*  1760 */    33,   34,  121,   36,   88,   89,   39,  121,  121,  121, 
    643  /*  1770 */   121,  121,  121,  121,   98,  121,  121,  101,  102,  121, 
    644  /*  1780 */    16,   54,   55,   56,   57,   58,  121,   23,   61,   25, 
    645  /*  1790 */    26,  115,   28,   29,  121,  121,  121,  121,  121,   35, 
    646  /*  1800 */    36,   37,  121,   76,  121,  121,  121,  121,  121,  121, 
    647  /*  1810 */   121,  121,  121,   83,  121,  121,   52,   87,  121,  121, 
    648  /*  1820 */    90,   91,  121,   59,  121,  121,  121,   63,  121,   99, 
    649  /*  1830 */   100,  121,  121,  103,  104,  105,  121,  107,   83,  121, 
    650  /*  1840 */   121,   77,   87,  121,  121,   90,   91,  121,  118,  121, 
    651  /*  1850 */   121,  121,  121,  121,   99,  100,  121,  121,  103,  104, 
    652  /*  1860 */   105,  121,  107,  121,   83,  121,  121,  121,   87,  121, 
    653  /*  1870 */   121,   90,   91,  121,   83,  121,  121,  121,   87,  121, 
    654  /*  1880 */    99,  100,   91,   83,  103,  104,  105,   87,  107,  121, 
    655  /*  1890 */    90,   91,  121,  121,  103,  104,  105,  121,  107,   99, 
    656  /*  1900 */   100,  121,  121,  103,  104,  105,  121,  107,  121,  121, 
    657  /*  1910 */   121,   83,  121,  121,  121,   87,  121,  121,   90,   91, 
    658  /*  1920 */   121,  121,   83,  121,  121,  121,   87,   99,  100,   90, 
    659  /*  1930 */    91,  103,  104,  105,  121,  107,  121,  121,   99,  100, 
    660  /*  1940 */   121,  121,  103,  104,  105,  121,  107,  121,   83,  121, 
    661  /*  1950 */   121,  121,   87,  121,  121,   90,   91,  121,   83,  121, 
    662  /*  1960 */   121,  121,   87,  121,   99,  100,   91,   83,  103,  104, 
    663  /*  1970 */   105,   87,  107,  121,   90,   91,  121,  121,  103,  104, 
    664  /*  1980 */   105,  121,  107,   99,  100,  121,  121,  103,  104,  105, 
    665  /*  1990 */   121,  107,  121,  121,  121,   83,  121,  121,  121,   87, 
    666  /*  2000 */   121,  121,   90,   91,  121,  121,   83,  121,  121,  121, 
    667  /*  2010 */    87,   99,  100,   90,   91,  103,  104,  105,  121,  107, 
    668  /*  2020 */   121,  121,   99,  100,  121,  121,  103,  104,  105,  121, 
    669  /*  2030 */   107,  121,   83,   88,   89,  121,   87,  121,  121,   90, 
    670  /*  2040 */    91,  121,  121,   98,  121,  121,  101,  102,   99,  100, 
    671  /*  2050 */   121,   83,  103,  104,  105,   87,  107,  121,   90,   91, 
    672  /*  2060 */   115,  121,  121,  121,   88,   89,  121,   99,  100,  121, 
    673  /*  2070 */   121,  103,  104,  105,   98,  107,  121,  101,  102,   83, 
    674  /*  2080 */   121,  121,  121,   87,  121,  121,   90,   91,  121,  121, 
    675  /*  2090 */    83,  115,  121,  121,   87,   99,  100,   90,   91,  103, 
    676  /*  2100 */   104,  105,  121,  107,  121,  121,   99,  100,  121,  121, 
    677  /*  2110 */   103,  104,  105,  121,  107,  121,   83,   88,   89,  121, 
    678  /*  2120 */    87,  121,  121,   90,   91,  121,  121,   98,  121,  121, 
    679  /*  2130 */   101,  102,   99,  100,  121,   83,  103,  104,  105,   87, 
    680  /*  2140 */   107,  121,   90,   91,  115,  121,  121,  121,   88,   89, 
    681  /*  2150 */   121,   99,  100,  121,  121,  103,  104,  105,   98,  107, 
    682  /*  2160 */   121,  101,  102,   83,  121,  121,  121,   87,  121,  121, 
    683  /*  2170 */    90,   91,  121,  121,   83,  115,  121,  121,   87,   99, 
    684  /*  2180 */   100,   90,   91,  103,  104,  105,  121,  107,  121,  121, 
    685  /*  2190 */    99,  100,  121,  121,  103,  104,  105,  121,  107,  121, 
    686  /*  2200 */    83,   88,   89,  121,   87,  121,  121,   90,   91,  121, 
    687  /*  2210 */   121,   98,  121,  121,  101,  102,   99,  100,  121,   83, 
    688  /*  2220 */   103,  104,  105,   87,  107,  121,   90,   91,  115,  121, 
    689  /*  2230 */   121,  121,  121,  121,  121,   99,  100,  121,  121,  103, 
    690  /*  2240 */   104,  105,  121,  107,  121,  121,  121,   83,  121,  121, 
    691  /*  2250 */   121,   87,  121,  121,   90,   91,  121,  121,   83,  121, 
    692  /*  2260 */   121,  121,   87,   99,  100,   90,   91,  103,  104,  105, 
    693  /*  2270 */   121,  107,  121,  121,   99,  100,  121,  121,  103,  104, 
    694  /*  2280 */   105,  121,  107,  121,   83,  121,  121,  121,   87,  121, 
    695  /*  2290 */   121,   90,   91,  121,  121,  121,  121,  121,  121,  121, 
    696  /*  2300 */    99,  100,  121,   83,  103,  104,  105,   87,  107,  121, 
    697  /*  2310 */    90,   91,  121,  121,  121,  121,  121,  121,  121,   99, 
    698  /*  2320 */   100,  121,  121,  103,  104,  105,  121,  107,  121,  121, 
    699  /*  2330 */   121,   83,  121,  121,  121,   87,  121,  121,   90,   91, 
    700  /*  2340 */   121,  121,   83,  121,  121,  121,   87,   99,  100,   90, 
    701  /*  2350 */    91,  103,  104,  105,  121,  107,  121,  121,   99,  100, 
    702  /*  2360 */   121,  121,  103,  104,  105,  121,  107,  121,   83,  121, 
    703  /*  2370 */   121,  121,   87,  121,  121,   90,   91,  121,  121,  121, 
    704  /*  2380 */   121,  121,  121,  121,   99,  100,  121,  121,  103,  104, 
    705  /*  2390 */   105,  121,  107, 
     490 /*    50 */    51,   52,    4,    5,    6,    7,    8,   16,   36,   84, 
     491 /*    60 */    38,   13,   14,   15,   65,   66,   67,   68,   69,   70, 
     492 /*    70 */    71,   72,   73,   74,   75,   76,    1,   84,   37,   89, 
     493 /*    80 */    90,   88,   37,   16,   91,   92,   19,   20,   17,   99, 
     494 /*    90 */    17,   20,   17,  100,  101,  120,  121,  104,  105,  106, 
     495 /*   100 */    29,  108,   29,   58,   29,   60,  116,   31,   37,   64, 
     496 /*   110 */    37,  118,  119,   37,   39,   40,   41,   42,   43,   44, 
     497 /*   120 */    45,   46,   47,   48,   49,   50,   51,   52,   61,   89, 
     498 /*   130 */    90,   60,   36,   60,   38,   16,   60,   18,   19,   99, 
     499 /*   140 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74, 
     500 /*   150 */    75,   76,    1,   84,   35,    1,  116,   88,   21,   89, 
     501 /*   160 */    91,   92,   93,   16,   16,   97,   19,   19,   17,  100, 
     502 /*   170 */   101,   17,   19,  104,  105,  106,   29,  108,   31,  111, 
     503 /*   180 */    29,   89,    1,   29,   30,   16,  116,  117,   19,   20, 
     504 /*   190 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48, 
     505 /*   200 */    49,   50,   51,   52,   25,   89,   90,   53,  116,   61, 
     506 /*   210 */    16,    1,   31,   19,   61,   99,   65,   66,   67,   68, 
     507 /*   220 */    69,   70,   71,   72,   73,   74,   75,   76,    1,   84, 
     508 /*   230 */    58,    1,  116,   88,   53,   63,   91,   92,   93,   16, 
     509 /*   240 */    20,   21,   19,   86,   17,  100,  101,   17,   92,  104, 
     510 /*   250 */   105,  106,   29,  108,   31,   61,   29,   78,   98,   29, 
     511 /*   260 */   104,  112,  113,   53,  108,  113,   39,   40,   41,   42, 
     512 /*   270 */    43,   44,   45,   46,   47,   48,   49,   50,   51,   52, 
     513 /*   280 */    60,   90,   90,   53,  110,  109,  112,  113,   20,   21, 
     514 /*   290 */    99,   99,   65,   66,   67,   68,   69,   70,   71,   72, 
     515 /*   300 */    73,   74,   75,   76,    1,   84,   98,    1,  116,   88, 
     516 /*   310 */    84,   62,   91,   92,   88,   90,   64,    1,   92,   21, 
     517 /*   320 */    17,  100,  101,   17,   99,  104,  105,  106,   60,  108, 
     518 /*   330 */   104,  105,  106,   17,  108,   29,  111,   21,   18,   19, 
     519 /*   340 */   119,   14,   39,   40,   41,   42,   43,   44,   45,   46, 
     520 /*   350 */    47,   48,   49,   50,   51,   52,   58,  112,  113,   53, 
     521 /*   360 */    16,   63,   18,   19,   92,   93,   94,   19,   65,   66, 
     522 /*   370 */    67,   68,   69,   70,   71,   72,   73,   74,   75,   76, 
     523 /*   380 */     1,   84,   62,    1,   90,   88,   84,   19,   91,   92, 
     524 /*   390 */    88,   90,   58,   99,   92,   90,   17,  100,  101,   17, 
     525 /*   400 */    99,  104,  105,  106,   99,  108,  104,  105,  106,   36, 
     526 /*   410 */   108,   29,  115,   36,   19,   38,  111,  116,   39,   40, 
     527 /*   420 */    41,   42,   43,   44,   45,   46,   47,   48,   49,   50, 
     528 /*   430 */    51,   52,    1,   90,   37,   53,   89,   64,    2,  109, 
     529 /*   440 */    16,  111,   99,   19,   65,   66,   67,   68,   69,   70, 
     530 /*   450 */    71,   72,   73,   74,   75,   76,   20,   60,   16,  116, 
     531 /*   460 */    90,   19,  109,  116,  111,   18,   18,   19,   19,   99, 
     532 /*   470 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48, 
     533 /*   480 */    49,   50,   51,   52,   37,    1,  116,   17,   16,   16, 
     534 /*   490 */    16,   19,   19,   19,   89,   25,   65,   66,   67,   68, 
     535 /*   500 */    69,   70,   71,   72,   73,   74,   75,   76,   24,   78, 
     536 /*   510 */    24,  107,   92,   93,    1,   92,   93,   85,  114,   87, 
     537 /*   520 */    19,  116,   36,   39,   40,   41,   42,   43,   44,   45, 
     538 /*   530 */    46,   47,   48,   49,   50,   51,   52,    1,   19,   18, 
     539 /*   540 */    20,   35,   29,   62,   19,    2,   96,   96,   96,   65, 
     540 /*   550 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75, 
     541 /*   560 */    76,  111,  111,  111,  107,   54,   30,   18,   26,   18, 
     542 /*   570 */     2,  114,   18,   18,   96,   39,   40,   41,   42,   43, 
     543 /*   580 */    44,   45,   46,   47,   48,   49,   50,   51,   52,  111, 
     544 /*   590 */    90,   19,   19,   35,   38,   25,   37,   19,   37,   99, 
     545 /*   600 */    96,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
     546 /*   610 */    74,   75,   76,    1,   84,  111,    1,   99,   88,   84, 
     547 /*   620 */   117,   91,   92,   88,  110,  116,  109,   92,   90,   17, 
     548 /*   630 */   100,  101,   17,   20,  104,  105,  106,   99,  108,  104, 
     549 /*   640 */   105,  106,    1,  108,  111,  115,   29,   29,  114,  111, 
     550 /*   650 */    29,   39,   40,   41,   42,   43,   44,   45,   46,   47, 
     551 /*   660 */    48,   49,   50,   51,   52,    1,   95,    2,   53,   95, 
     552 /*   670 */   122,   58,  109,  122,  122,   96,   96,   65,   66,   67, 
     553 /*   680 */    68,   69,   70,   71,   72,   73,   74,   75,   76,   17, 
     554 /*   690 */   111,  111,  122,  122,  122,  122,  122,  122,  122,  122, 
     555 /*   700 */   122,   29,   38,   39,   40,   41,   42,   43,   44,   45, 
     556 /*   710 */    46,   47,   48,   49,   50,   51,   52,    1,  122,  122, 
     557 /*   720 */   122,  122,  122,  122,  122,  122,   96,  122,    1,   65, 
     558 /*   730 */    66,   67,   68,   69,   70,   71,   72,   73,   74,   75, 
     559 /*   740 */    76,  111,   84,  122,   17,  122,  122,  122,  122,  122, 
     560 /*   750 */   122,  122,  122,  122,   38,   39,   40,   41,   42,   43, 
     561 /*   760 */    44,   45,   46,   47,   48,   49,   50,   51,   52,    1, 
     562 /*   770 */   122,  122,  122,  122,  122,  122,  122,  122,   96,  121, 
     563 /*   780 */    96,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
     564 /*   790 */    74,   75,   76,  111,  122,  111,  122,   29,  122,  122, 
     565 /*   800 */   122,  122,  122,  122,  122,  122,   21,   39,   40,   41, 
     566 /*   810 */    42,   43,   44,   45,   46,   47,   48,   49,   50,   51, 
     567 /*   820 */    52,    1,  122,  122,  122,  122,  122,  122,  122,  122, 
     568 /*   830 */   122,  122,  122,   65,   66,   67,   68,   69,   70,   71, 
     569 /*   840 */    72,   73,   74,   75,   76,   60,  122,  122,  122,  122, 
     570 /*   850 */   122,  122,  122,  122,  122,  122,  122,  122,  122,   39, 
     571 /*   860 */    40,   41,   42,   43,   44,   45,   46,   47,   48,   49, 
     572 /*   870 */    50,   51,   52,  122,  122,  122,  122,  122,  122,  122, 
     573 /*   880 */   122,  122,  122,  122,   64,   65,   66,   67,   68,   69, 
     574 /*   890 */    70,   71,   72,   73,   74,   75,   76,    1,  122,  122, 
     575 /*   900 */   122,  122,   89,   84,  122,  122,   16,   88,   10,   19, 
     576 /*   910 */    17,   92,    1,   17,   16,  102,  103,    1,    2,   29, 
     577 /*   920 */    22,   23,   29,  104,  105,  106,   28,  108,   17,  116, 
     578 /*   930 */    32,   33,   34,   17,  122,   39,   40,   41,   42,   43, 
     579 /*   940 */    44,   45,   46,   47,   48,   49,   50,   51,   52,    1, 
     580 /*   950 */     2,  122,  122,  122,  122,  122,  122,  122,  122,  122, 
     581 /*   960 */   122,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
     582 /*   970 */    74,   75,   76,  122,  122,   77,   78,   79,  122,  122, 
     583 /*   980 */   122,  122,  122,  122,  122,  122,  122,   39,   40,   41, 
     584 /*   990 */    42,   43,   44,   45,   46,   47,   48,   49,   50,   51, 
     585 /*  1000 */    52,    1,  122,  122,  122,  122,  122,  122,  122,  122, 
     586 /*  1010 */   122,  122,  122,   65,   66,   67,   68,   69,   70,   71, 
     587 /*  1020 */    72,   73,   74,   75,   76,  122,  122,  122,  122,  122, 
     588 /*  1030 */   122,  122,  122,  122,  122,  122,  122,  122,  122,   39, 
     589 /*  1040 */    40,   41,   42,   43,   44,   45,   46,   47,   48,   49, 
     590 /*  1050 */    50,   51,   52,  122,  122,  122,  122,  122,  122,  122, 
     591 /*  1060 */   122,  122,  122,  122,  122,   65,   66,   67,   68,   69, 
     592 /*  1070 */    70,   71,   72,   73,   74,   75,   76,    1,    1,   39, 
     593 /*  1080 */    40,   41,   42,   43,   44,   45,   46,   47,   48,   49, 
     594 /*  1090 */    50,   51,   52,   17,   17,  122,  122,  122,  122,  122, 
     595 /*  1100 */   122,  122,  122,  122,  122,   65,   66,   67,   68,   69, 
     596 /*  1110 */    70,   71,   72,   73,   74,   75,   76,    1,  122,    1, 
     597 /*  1120 */   122,  122,   16,  122,   18,   19,  122,  122,   22,   23, 
     598 /*  1130 */   122,  122,   17,   17,   28,   17,   10,   21,   32,   33, 
     599 /*  1140 */    34,   35,   16,   37,   29,   29,   40,   29,   22,   23, 
     600 /*  1150 */   122,  122,  122,   37,   28,  122,  122,  122,   32,   33, 
     601 /*  1160 */    34,   55,   56,   57,   58,   59,  122,   84,   62,   63, 
     602 /*  1170 */    64,   88,  122,  122,  122,   92,   60,  122,   16,  122, 
     603 /*  1180 */    18,   19,  122,   77,   22,   23,   17,  104,  105,  106, 
     604 /*  1190 */    28,  108,  122,  122,   32,   33,   34,   35,   29,   37, 
     605 /*  1200 */   122,   17,   40,   77,   78,   79,  122,   84,  122,  122, 
     606 /*  1210 */   122,   88,  122,   29,   17,   92,  122,   55,   56,   57, 
     607 /*  1220 */    58,   59,  122,   17,   62,   63,   29,  104,  105,  106, 
     608 /*  1230 */   122,  108,   17,   17,   16,   29,   18,   19,  122,   77, 
     609 /*  1240 */    22,   23,   17,  122,   29,   29,   28,   17,  122,   17, 
     610 /*  1250 */    32,   33,   34,   35,   29,   37,  122,   17,   40,   29, 
     611 /*  1260 */    17,   29,  122,   84,  122,  122,  122,   88,  122,   29, 
     612 /*  1270 */    17,   92,   29,   55,   56,   57,   58,   59,  122,   17, 
     613 /*  1280 */    62,   63,   29,  104,  105,  106,  122,  108,   17,   17, 
     614 /*  1290 */    16,   29,   18,   19,  122,   77,   22,   23,   17,  122, 
     615 /*  1300 */    29,   29,   28,   17,  122,   17,   32,   33,   34,   35, 
     616 /*  1310 */    29,   37,  122,  122,   40,   29,  122,   29,  122,  122, 
     617 /*  1320 */   122,  122,  122,  122,  122,  122,  122,  122,  122,   55, 
     618 /*  1330 */    56,   57,   58,   59,  122,  122,   62,   63,  122,  122, 
     619 /*  1340 */   122,  122,  122,  122,  122,  122,   16,  122,   18,   19, 
     620 /*  1350 */   122,   77,   22,   23,  122,  122,  122,  122,   28,  122, 
     621 /*  1360 */   122,  122,   32,   33,   34,   35,  122,   37,  122,  122, 
     622 /*  1370 */    40,  122,  122,  122,  122,  122,  122,  122,  122,  122, 
     623 /*  1380 */   122,  122,  122,  122,  122,   55,   56,   57,   58,   59, 
     624 /*  1390 */   122,  122,   62,   63,  122,  122,  122,  122,  122,  122, 
     625 /*  1400 */   122,  122,   16,  122,   18,   19,  122,   77,   22,   23, 
     626 /*  1410 */   122,  122,  122,  122,   28,  122,  122,  122,   32,   33, 
     627 /*  1420 */    34,   35,  122,   37,  122,  122,   40,  122,  122,  122, 
     628 /*  1430 */   122,  122,  122,  122,  122,  122,  122,  122,  122,  122, 
     629 /*  1440 */   122,   55,   56,   57,   58,   59,  122,  122,   62,   63, 
     630 /*  1450 */   122,  122,  122,  122,  122,  122,  122,  122,   16,  122, 
     631 /*  1460 */    18,   19,  122,   77,   22,   23,  122,  122,  122,  122, 
     632 /*  1470 */    28,  122,  122,  122,   32,   33,   34,   35,  122,   37, 
     633 /*  1480 */   122,  122,   40,  122,  122,  122,  122,  122,  122,  122, 
     634 /*  1490 */   122,  122,  122,  122,  122,  122,  122,   55,   56,   57, 
     635 /*  1500 */    58,   59,  122,  122,   62,   63,  122,  122,  122,  122, 
     636 /*  1510 */   122,  122,  122,  122,   16,  122,   18,   19,  122,   77, 
     637 /*  1520 */    22,   23,  122,  122,  122,  122,   28,  122,  122,  122, 
     638 /*  1530 */    32,   33,   34,   35,  122,   37,  122,  122,   40,  122, 
     639 /*  1540 */   122,  122,  122,  122,  122,  122,  122,  122,  122,  122, 
     640 /*  1550 */   122,  122,  122,   55,   56,   57,   58,   59,  122,  122, 
     641 /*  1560 */    62,   63,  122,  122,  122,  122,  122,  122,  122,  122, 
     642 /*  1570 */    16,  122,   18,   19,  122,   77,   22,   23,  122,  122, 
     643 /*  1580 */   122,  122,   28,  122,  122,  122,   32,   33,   34,   35, 
     644 /*  1590 */   122,   37,  122,  122,   40,  122,  122,  122,  122,  122, 
     645 /*  1600 */   122,  122,  122,  122,  122,  122,  122,  122,  122,   55, 
     646 /*  1610 */    56,   57,   58,   59,  122,  122,   62,   63,  122,  122, 
     647 /*  1620 */   122,  122,  122,  122,  122,  122,   16,  122,   18,   19, 
     648 /*  1630 */   122,   77,   22,   23,  122,  122,  122,  122,   28,  122, 
     649 /*  1640 */   122,  122,   32,   33,   34,   35,  122,   37,  122,  122, 
     650 /*  1650 */    40,  122,  122,  122,  122,  122,  122,  122,  122,  122, 
     651 /*  1660 */   122,  122,  122,  122,  122,   55,   56,   57,   58,   59, 
     652 /*  1670 */   122,  122,   62,   63,  122,  122,  122,  122,  122,  122, 
     653 /*  1680 */   122,  122,   16,  122,   18,   19,  122,   77,   22,   23, 
     654 /*  1690 */   122,  122,  122,  122,   28,  122,  122,  122,   32,   33, 
     655 /*  1700 */    34,   35,  122,   37,  122,  122,   40,  122,  122,  122, 
     656 /*  1710 */   122,  122,  122,  122,  122,  122,  122,  122,  122,   89, 
     657 /*  1720 */    90,   55,   56,   57,   58,   59,  122,  122,   62,   99, 
     658 /*  1730 */   122,  122,  102,  103,  122,  122,  122,  122,   16,  122, 
     659 /*  1740 */    18,   19,  122,   77,   22,   23,  116,  122,  122,  122, 
     660 /*  1750 */    28,  122,  122,  122,   32,   33,   34,   35,  122,   37, 
     661 /*  1760 */   122,  122,   40,  122,  122,  122,  122,  122,  122,  122, 
     662 /*  1770 */   122,  122,  122,  122,  122,  122,  122,   55,   56,   57, 
     663 /*  1780 */    58,   59,  122,  122,   62,  122,  122,  122,  122,  122, 
     664 /*  1790 */   122,  122,  122,  122,  122,   17,   89,   90,  122,   77, 
     665 /*  1800 */   122,  122,   24,  122,   26,   27,   99,   29,   30,  102, 
     666 /*  1810 */   103,  122,  122,   84,   36,   37,   38,   88,  122,  122, 
     667 /*  1820 */    91,   92,  122,  116,  122,  122,  122,  122,  122,  100, 
     668 /*  1830 */   101,   53,  122,  104,  105,  106,  122,  108,   60,  122, 
     669 /*  1840 */   122,   84,   64,  122,  115,   88,  122,  122,   91,   92, 
     670 /*  1850 */   122,  122,  122,  122,  122,  122,   78,  100,  101,  122, 
     671 /*  1860 */   122,  104,  105,  106,   84,  108,  122,  122,   88,  122, 
     672 /*  1870 */   122,   91,   92,  122,  122,  122,  122,  122,  122,  122, 
     673 /*  1880 */   100,  101,  122,  122,  104,  105,  106,   84,  108,  122, 
     674 /*  1890 */   122,   88,  122,  122,   91,   92,  122,  122,   84,  122, 
     675 /*  1900 */   122,  122,   88,  100,  101,   91,   92,  104,  105,  106, 
     676 /*  1910 */   122,  108,  122,  122,  100,  101,  122,  122,  104,  105, 
     677 /*  1920 */   106,  122,  108,   84,  122,  122,  122,   88,  122,  122, 
     678 /*  1930 */    91,   92,  122,  122,   84,  122,  122,  122,   88,  100, 
     679 /*  1940 */   101,   91,   92,  104,  105,  106,  122,  108,  122,  122, 
     680 /*  1950 */   100,  101,  122,   84,  104,  105,  106,   88,  108,  122, 
     681 /*  1960 */    91,   92,  122,  122,  122,  122,  122,  122,  122,  100, 
     682 /*  1970 */   101,  122,   84,  104,  105,  106,   88,  108,  122,   91, 
     683 /*  1980 */    92,  122,  122,   84,  122,  122,  122,   88,  100,  101, 
     684 /*  1990 */    91,   92,  104,  105,  106,  122,  108,  122,  122,  100, 
     685 /*  2000 */   101,  122,  122,  104,  105,  106,  122,  108,   84,  122, 
     686 /*  2010 */   122,  122,   88,  122,  122,   91,   92,  122,  122,   84, 
     687 /*  2020 */   122,  122,  122,   88,  100,  101,   91,   92,  104,  105, 
     688 /*  2030 */   106,  122,  108,  122,  122,  100,  101,  122,   84,  104, 
     689 /*  2040 */   105,  106,   88,  108,  122,   91,   92,  122,  122,  122, 
     690 /*  2050 */   122,  122,  122,  122,  100,  101,  122,   84,  104,  105, 
     691 /*  2060 */   106,   88,  108,  122,   91,   92,  122,  122,   84,  122, 
     692 /*  2070 */   122,  122,   88,  100,  101,   91,   92,  104,  105,  106, 
     693 /*  2080 */   122,  108,  122,  122,  100,  101,  122,  122,  104,  105, 
     694 /*  2090 */   106,  122,  108,   84,  122,  122,  122,   88,  122,  122, 
     695 /*  2100 */    91,   92,  122,  122,   84,  122,  122,  122,   88,  100, 
     696 /*  2110 */   101,   91,   92,  104,  105,  106,  122,  108,  122,  122, 
     697 /*  2120 */   100,  101,  122,   84,  104,  105,  106,   88,  108,  122, 
     698 /*  2130 */    91,   92,  122,  122,  122,  122,  122,  122,  122,  100, 
     699 /*  2140 */   101,  122,   84,  104,  105,  106,   88,  108,  122,   91, 
     700 /*  2150 */    92,  122,  122,   84,  122,  122,  122,   88,  100,  101, 
     701 /*  2160 */    91,   92,  104,  105,  106,  122,  108,  122,  122,  100, 
     702 /*  2170 */   101,  122,  122,  104,  105,  106,  122,  108,   84,  122, 
     703 /*  2180 */   122,  122,   88,  122,  122,   91,   92,  122,  122,   84, 
     704 /*  2190 */   122,  122,  122,   88,  100,  101,   91,   92,  104,  105, 
     705 /*  2200 */   106,  122,  108,  122,  122,  100,  101,  122,   84,  104, 
     706 /*  2210 */   105,  106,   88,  108,  122,   91,   92,  122,  122,  122, 
     707 /*  2220 */   122,  122,  122,  122,  100,  101,  122,   84,  104,  105, 
     708 /*  2230 */   106,   88,  108,  122,   91,   92,  122,  122,   84,  122, 
     709 /*  2240 */   122,  122,   88,  100,  101,   91,   92,  104,  105,  106, 
     710 /*  2250 */   122,  108,  122,  122,  100,  101,  122,  122,  104,  105, 
     711 /*  2260 */   106,  122,  108,   84,  122,  122,  122,   88,  122,  122, 
     712 /*  2270 */    91,   92,  122,  122,   84,  122,  122,  122,   88,  100, 
     713 /*  2280 */   101,   91,   92,  104,  105,  106,  122,  108,  122,  122, 
     714 /*  2290 */   100,  101,  122,   84,  104,  105,  106,   88,  108,  122, 
     715 /*  2300 */    91,   92,  122,  122,  122,  122,  122,  122,  122,  100, 
     716 /*  2310 */   101,  122,   84,  104,  105,  106,   88,  108,  122,   91, 
     717 /*  2320 */    92,  122,  122,   84,  122,  122,  122,   88,  100,  101, 
     718 /*  2330 */    91,   92,  104,  105,  106,  122,  108,  122,  122,  100, 
     719 /*  2340 */   101,  122,  122,  104,  105,  106,  122,  108,   84,  122, 
     720 /*  2350 */   122,  122,   88,  122,  122,   91,   92,  122,  122,   84, 
     721 /*  2360 */   122,  122,  122,   88,  100,  101,   91,   92,  104,  105, 
     722 /*  2370 */   106,  122,  108,  122,  122,  100,  101,  122,   84,  104, 
     723 /*  2380 */   105,  106,   88,  108,  122,   91,   92,  122,  122,  122, 
     724 /*  2390 */   122,  122,  122,  122,  100,  101,  122,   84,  104,  105, 
     725 /*  2400 */   106,   88,  108,  122,   91,   92,  122,  122,   84,  122, 
     726 /*  2410 */   122,  122,   88,  100,  101,   91,   92,  104,  105,  106, 
     727 /*  2420 */   122,  108,  122,  122,  100,  101,  122,  122,  104,  105, 
     728 /*  2430 */   106,  122,  108,   84,  122,  122,  122,   88,  122,  122, 
     729 /*  2440 */    91,   92,  122,  122,   84,  122,  122,  122,   88,  100, 
     730 /*  2450 */   101,   91,   92,  104,  105,  106,  122,  108,  122,  122, 
     731 /*  2460 */   100,  101,  122,   84,  104,  105,  106,   88,  108,  122, 
     732 /*  2470 */   122,   92,  122,  122,  122,  122,  122,  122,  122,  122, 
     733 /*  2480 */   101,  122,   84,  104,  105,  106,   88,  108,  122,  122, 
     734 /*  2490 */    92,  122,  122,  122,  122,   89,   90,  122,  122,  101, 
     735 /*  2500 */   122,  122,  104,  105,  106,   99,  108,  122,  102,  103, 
     736 /*  2510 */   122,   89,   90,  122,  122,  122,  122,  122,   89,   90, 
     737 /*  2520 */   122,   99,  116,  122,  102,  103,  122,  122,   99,  122, 
     738 /*  2530 */   122,  102,  103,  122,   89,   90,  122,  122,  116,  122, 
     739 /*  2540 */   122,  122,  122,  122,   99,  116,  122,  102,  103,  122, 
     740 /*  2550 */   122,  122,  122,  122,  122,  122,  122,  122,  122,  122, 
     741 /*  2560 */   122,  116, 
    706742); 
    707     const YY_SHIFT_USE_DFLT = -5; 
     743    const YY_SHIFT_USE_DFLT = -2; 
    708744    const YY_SHIFT_MAX = 252; 
    709745    static public $yy_shift_ofst = array( 
    710  /*     0 */     1, 1391, 1391, 1223, 1167, 1167, 1167, 1223, 1111, 1167, 
    711  /*    10 */  1167, 1167, 1503, 1167, 1559, 1167, 1167, 1167, 1167, 1167, 
    712  /*    20 */  1167, 1167, 1167, 1167, 1167, 1615, 1167, 1167, 1167, 1167, 
    713  /*    30 */  1503, 1167, 1167, 1447, 1167, 1167, 1167, 1167, 1279, 1167, 
    714  /*    40 */  1167, 1167, 1279, 1167, 1335, 1335, 1727, 1671, 1727, 1727, 
    715  /*    50 */  1727, 1727, 1727,  224,   74,  149,   -1,  755,  755,  755, 
    716  /*    60 */   956,  881,  806,  527,  326,  704,  275,  377,  653,  602, 
    717  /*    70 */   452, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 
    718  /*    80 */  1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 
    719  /*    90 */  1046, 1046, 1232, 1443,  407,    1,  958,   73,  146,  225, 
    720  /*   100 */   546,   61,   61,  443,  443,  243,  371,  407,  407,  883, 
    721  /*   110 */    47, 1331,   11,  189, 1387, 1219,  226,   56,  138,  235, 
    722  /*   120 */    75,  887,  219,  366,  371,  367,  366,  366,  368,  293, 
    723  /*   130 */   371,  366,  917,  366,  366,  445,  366,  418,  366, 1248, 
    724  /*   140 */   368,  366,  300,  395,  293,  636,  629,  636,  616,  636, 
    725  /*   150 */   610,  636,  636,  636,  636,  616,  636,   -5,  166,  167, 
    726  /*   160 */   601,  603,  873,  594,  148,  217,  148,  473,  947,  148, 
    727  /*   170 */   874,  878,  948, 1235,  148,  543, 1191, 1221,  148, 1230, 
    728  /*   180 */   563, 1188, 1121, 1118,  953,  949, 1181, 1174, 1180,  670, 
    729  /*   190 */   632,  632,  616,  616,  636,  616,  636,  102,  102,  396, 
    730  /*   200 */    -5,   -5,   -5,   -5,   -5, 1764,  150,   22,  118,   71, 
    731  /*   210 */   176,   -4,  486,  144,  144,  213,  270,  261,  296,  328, 
    732  /*   220 */   449,  271,  295,  615,  579,  560,  566,  441,  564,  396, 
    733  /*   230 */   528,  591,  551,  589,  571,  614,  552,  529,  539,  494, 
    734  /*   240 */   448,  492,  471,  450,  488,  469,  459,  511,  522,  510, 
    735  /*   250 */   496,  523,  500, 
     746 /*     0 */     1, 1386, 1162, 1218, 1162, 1386, 1218, 1162, 1106, 1162, 
     747 /*    10 */  1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1442, 1554, 
     748 /*    20 */  1498, 1162, 1162, 1162, 1162, 1162, 1162, 1610, 1162, 1162, 
     749 /*    30 */  1162, 1162, 1162, 1162, 1274, 1162, 1162, 1162, 1162, 1162, 
     750 /*    40 */  1162, 1162, 1498, 1442, 1330, 1330, 1666, 1666, 1666, 1722, 
     751 /*    50 */  1666, 1666, 1666,  227,   75,  151,   -1,  768,  768,  768, 
     752 /*    60 */   948,  896,  820,  536,  379,  716,  303,  431,  664,  612, 
     753 /*    70 */   484, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 
     754 /*    80 */  1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 
     755 /*    90 */  1040, 1040, 1116,  382,  513,    1, 1126,  147,  223, 1118, 
     756 /*   100 */  1118,  320,  890,  916,  298,  890,  513,  447,  513,  898, 
     757 /*   110 */    48,  154,   11,  306,   67,  230,  194,  220,  169,  268, 
     758 /*   120 */   181,  316,  615,  424,  473,  424,  472,  474,  448,  785, 
     759 /*   130 */   424,  424,  210,  424,  442,  447,  448,  424,  424,  424, 
     760 /*   140 */   727,  424, 1288,  447,  442,  641,  137,  641,  641,  641, 
     761 /*   150 */   641,  641,  137,  617,  618,  641,  641,   -2,  344,  148, 
     762 /*   160 */   893,  172,   41,  172, 1225, 1215, 1216, 1206, 1197, 1115, 
     763 /*   170 */  1169, 1184, 1230,  172, 1271,  672, 1262, 1272, 1286, 1077, 
     764 /*   180 */  1281,  172, 1240, 1232,  911,  172, 1253, 1243, 1076,  621, 
     765 /*   190 */   641,  641,  665,  665,  559,  621,  137,  327,  137,  137, 
     766 /*   200 */    -2,   -2,   -2,   -2,   -2, 1778,   71,  119,   45,   73, 
     767 /*   210 */    76,   96,  486,  436,  179,  470,   22,  377,  153,  373, 
     768 /*   220 */   397,  397,  613,  561,  554,  572,  568,  249,  549,  542, 
     769 /*   230 */   573,  555,  578,  558,  559,  556,  570,  511,  543,  449, 
     770 /*   240 */   501,  395,  252,  348,  368,  519,  334,  525,  481,  506, 
     771 /*   250 */   521,  520,  551, 
    736772); 
    737     const YY_REDUCE_USE_DFLT = -86; 
     773    const YY_REDUCE_USE_DFLT = -84; 
    738774    const YY_REDUCE_MAX = 204; 
    739775    static public $yy_reduce_ofst = array( 
    740  /*     0 */   -63,   -7, 1730,   68,  446,  373,  143,  521, 2091, 2117, 
    741  /*    10 */  1800, 1407, 2080, 1884, 1912, 1575, 1949, 1923, 1865, 1968, 
    742  /*    20 */  1996, 2052, 2033, 2007, 1839, 1828, 1351, 1295, 1183, 1239, 
    743  /*    30 */  1463, 1519, 1781, 1755, 1631, 2175, 2248, 2201, 2164, 2285, 
    744  /*    40 */  2259, 2136, 2220, 1127,  379, 1048,  451, 1073,  804,  879, 
    745  /*    50 */  1875, 1791, 1088, 1976, 1945, 1676, 2060, 1676, 2113, 2029, 
    746  /*    60 */   798,  798,  798,  798,  798,  798,  798,  798,  798,  798, 
    747  /*    70 */   798,  798,  798,  798,  798,  798,  798,  798,  798,  798, 
    748  /*    80 */   798,  798,  798,  798,  798,  798,  798,  798,  798,  798, 
    749  /*    90 */   798,  798,   39,  113,  214,  -81,   43,  442,  -74,   20, 
    750  /*   100 */   -10,  239,  264,  525,  517,  378,  188,  314,  291,  697, 
    751  /*   110 */   170,   -6,  520,  248,   -6,   -6,  248,   -6,  248,  246, 
    752  /*   120 */   172,   -6,  172,  568,  313,  495,  495,  569,  570,  324, 
    753  /*   130 */   244,  292,  245,  420,  345,  172,  301,  495,  621,  491, 
    754  /*   140 */   495,  619,   -6,  620,  325,   -6,  211,   -6,  147,   -6, 
    755  /*   150 */    81,   -6,   -6,   -6,   -6,  172,   -6,   -6,  545,  549, 
    756  /*   160 */   536,  536,  536,  536,  530,  548,  530,  540,  536,  530, 
    757  /*   170 */   536,  536,  536,  536,  530,  540,  536,  536,  530,  536, 
    758  /*   180 */   540,  536,  536,  536,  536,  536,  536,  536,  536,  596, 
    759  /*   190 */   567,  588,  550,  550,  540,  550,  540,  -85,  -85,  331, 
    760  /*   200 */   306,  349,  337,  260,  134, 
     776 /*     0 */   -63,   -7, 1729,   69,  297,  221,  145,  530, 2209, 2228, 
     777 /*    10 */  1973, 1850, 2190, 2039, 2058, 1899, 2094, 2069, 2020, 2105, 
     778 /*    20 */  2124, 2179, 2154, 2143, 2009, 1984, 1839, 1814, 1780, 1803, 
     779 /*    30 */  1869, 1888, 1954, 1935, 1924, 2275, 2324, 2294, 2264, 2360, 
     780 /*    40 */  2349, 2239, 2313, 1757, 2379, 2398,  226,  819,  302,  535, 
     781 /*    50 */  1179, 1123, 1083, 2406, 1707, 1630, 2422, 2445, 2429, 2406, 
     782 /*    60 */   813,  813,  813,  813,  813,  813,  813,  813,  813,  813, 
     783 /*    70 */   813,  813,  813,  813,  813,  813,  813,  813,  813,  813, 
     784 /*    80 */   813,  813,  813,  813,  813,  813,  813,  813,  813,  813, 
     785 /*    90 */   813,  813,  -10,   40,  116,  -82,  -25,  225,  -74,  192, 
     786 /*   100 */   343,  156,  305,   70,  174,  538,  370,  272,  301,  658, 
     787 /*   110 */   432,   92,   68,   92,  330,   92,  330,  245,  330,  245, 
     788 /*   120 */    92,  347,   92,  478,  451,  353,  451,  504,  404,  245, 
     789 /*   130 */   451,  450,   92,  452,  451,  420,  457,  682,  684,  580, 
     790 /*   140 */   405,  579,  500,  423,  630,   92,  149,   92,   92,   92, 
     791 /*   150 */    92,   92,  245,  294,  191,   92,   92,   92,  534,  533, 
     792 /*   160 */   518,  514,  517,  514,  518,  518,  518,  518,  518,  518, 
     793 /*   170 */   518,  518,  518,  514,  518,  518,  518,  518,  518,  509, 
     794 /*   180 */   518,  514,  518,  518,  509,  514,  518,  518,  509,  574, 
     795 /*   190 */   509,  509,  503,  503,  563,  571,  152,  157,  152,  152, 
     796 /*   200 */   -83,  208,  176,  160,  -77, 
    761797); 
    762798    static public $yyExpectedTokens = array( 
    763         /* 0 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 21, 22, 27, 31, 32, 33, ), 
    764         /* 1 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    765         /* 2 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    766         /* 3 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    767         /* 4 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    768         /* 5 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    769         /* 6 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    770         /* 7 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    771         /* 8 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 63, 76, ), 
    772         /* 9 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    773         /* 10 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    774         /* 11 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    775         /* 12 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    776         /* 13 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    777         /* 14 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    778         /* 15 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    779         /* 16 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    780         /* 17 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    781         /* 18 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    782         /* 19 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    783         /* 20 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    784         /* 21 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    785         /* 22 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    786         /* 23 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    787         /* 24 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    788         /* 25 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    789         /* 26 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    790         /* 27 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    791         /* 28 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    792         /* 29 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    793         /* 30 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    794         /* 31 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    795         /* 32 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    796         /* 33 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    797         /* 34 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    798         /* 35 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    799         /* 36 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    800         /* 37 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    801         /* 38 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    802         /* 39 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    803         /* 40 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    804         /* 41 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    805         /* 42 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    806         /* 43 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    807         /* 44 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    808         /* 45 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 62, 76, ), 
    809         /* 46 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    810         /* 47 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    811         /* 48 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    812         /* 49 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    813         /* 50 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    814         /* 51 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    815         /* 52 */ array(15, 17, 18, 21, 22, 27, 31, 32, 33, 34, 36, 39, 54, 55, 56, 57, 58, 61, 76, ), 
    816         /* 53 */ array(1, 16, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    817         /* 54 */ array(1, 16, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    818         /* 55 */ array(1, 16, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    819         /* 56 */ array(1, 26, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    820         /* 57 */ array(1, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    821         /* 58 */ array(1, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    822         /* 59 */ array(1, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    823         /* 60 */ array(1, 16, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    824         /* 61 */ array(1, 16, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    825         /* 62 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    826         /* 63 */ array(1, 16, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    827         /* 64 */ array(1, 29, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    828         /* 65 */ array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    829         /* 66 */ array(1, 2, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    830         /* 67 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, ), 
    831         /* 68 */ array(1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    832         /* 69 */ array(1, 16, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    833         /* 70 */ array(1, 23, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    834         /* 71 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    835         /* 72 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    836         /* 73 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    837         /* 74 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    838         /* 75 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    839         /* 76 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    840         /* 77 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    841         /* 78 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    842         /* 79 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    843         /* 80 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    844         /* 81 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    845         /* 82 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    846         /* 83 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    847         /* 84 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    848         /* 85 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    849         /* 86 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    850         /* 87 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    851         /* 88 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    852         /* 89 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    853         /* 90 */ array(38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    854         /* 91 */ array(38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ), 
    855         /* 92 */ array(1, 16, 20, 28, 36, 59, ), 
    856         /* 93 */ array(1, 16, 28, 52, ), 
    857         /* 94 */ array(1, 28, ), 
    858         /* 95 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 21, 22, 27, 31, 32, 33, ), 
    859         /* 96 */ array(10, 15, 21, 22, 27, 31, 32, 33, 76, 77, 78, ), 
    860         /* 97 */ array(15, 18, 28, 30, ), 
    861         /* 98 */ array(15, 18, 28, 30, ), 
    862         /* 99 */ array(20, 57, 62, ), 
    863         /* 100 */ array(1, 2, 16, ), 
    864         /* 101 */ array(1, 16, 28, ), 
    865         /* 102 */ array(1, 16, 28, ), 
    866         /* 103 */ array(15, 18, 28, ), 
    867         /* 104 */ array(15, 18, 28, ), 
    868         /* 105 */ array(17, 18, 61, ), 
    869         /* 106 */ array(17, 36, ), 
    870         /* 107 */ array(1, 28, ), 
    871         /* 108 */ array(1, 28, ), 
    872         /* 109 */ array(10, 15, 21, 22, 27, 31, 32, 33, 76, 77, 78, ), 
    873         /* 110 */ array(4, 5, 6, 7, 8, 12, 13, 14, ), 
    874         /* 111 */ array(1, 16, 28, 29, 52, ), 
    875         /* 112 */ array(15, 18, 19, 24, ), 
    876         /* 113 */ array(15, 18, 19, 60, ), 
    877         /* 114 */ array(1, 16, 28, 52, ), 
    878         /* 115 */ array(1, 16, 28, 52, ), 
    879         /* 116 */ array(15, 18, 60, ), 
    880         /* 117 */ array(1, 30, 52, ), 
    881         /* 118 */ array(15, 18, 19, ), 
    882         /* 119 */ array(1, 16, 20, ), 
    883         /* 120 */ array(19, 20, 59, ), 
    884         /* 121 */ array(1, 16, 52, ), 
    885         /* 122 */ array(19, 20, 59, ), 
    886         /* 123 */ array(15, 18, ), 
    887         /* 124 */ array(17, 36, ), 
    888         /* 125 */ array(15, 18, ), 
    889         /* 126 */ array(15, 18, ), 
    890         /* 127 */ array(15, 18, ), 
    891         /* 128 */ array(15, 18, ), 
    892         /* 129 */ array(17, 18, ), 
    893         /* 130 */ array(17, 36, ), 
    894         /* 131 */ array(15, 18, ), 
    895         /* 132 */ array(1, 16, ), 
    896         /* 133 */ array(15, 18, ), 
    897         /* 134 */ array(15, 18, ), 
    898         /* 135 */ array(20, 59, ), 
    899         /* 136 */ array(15, 18, ), 
    900         /* 137 */ array(15, 18, ), 
    901         /* 138 */ array(15, 18, ), 
    902         /* 139 */ array(16, 28, ), 
    903         /* 140 */ array(15, 18, ), 
    904         /* 141 */ array(15, 18, ), 
    905         /* 142 */ array(1, 52, ), 
    906         /* 143 */ array(15, 18, ), 
    907         /* 144 */ array(17, 18, ), 
     799        /* 0 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 23, 28, 32, 33, 34, ), 
     800        /* 1 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     801        /* 2 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     802        /* 3 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     803        /* 4 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     804        /* 5 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     805        /* 6 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     806        /* 7 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     807        /* 8 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 64, 77, ), 
     808        /* 9 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     809        /* 10 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     810        /* 11 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     811        /* 12 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     812        /* 13 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     813        /* 14 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     814        /* 15 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     815        /* 16 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     816        /* 17 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     817        /* 18 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     818        /* 19 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     819        /* 20 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     820        /* 21 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     821        /* 22 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     822        /* 23 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     823        /* 24 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     824        /* 25 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     825        /* 26 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     826        /* 27 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     827        /* 28 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     828        /* 29 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     829        /* 30 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     830        /* 31 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     831        /* 32 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     832        /* 33 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     833        /* 34 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     834        /* 35 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     835        /* 36 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     836        /* 37 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     837        /* 38 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     838        /* 39 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     839        /* 40 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     840        /* 41 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     841        /* 42 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     842        /* 43 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     843        /* 44 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     844        /* 45 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 63, 77, ), 
     845        /* 46 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     846        /* 47 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     847        /* 48 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     848        /* 49 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     849        /* 50 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     850        /* 51 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     851        /* 52 */ array(16, 18, 19, 22, 23, 28, 32, 33, 34, 35, 37, 40, 55, 56, 57, 58, 59, 62, 77, ), 
     852        /* 53 */ array(1, 17, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     853        /* 54 */ array(1, 17, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     854        /* 55 */ array(1, 17, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     855        /* 56 */ array(1, 27, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     856        /* 57 */ array(1, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     857        /* 58 */ array(1, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     858        /* 59 */ array(1, 29, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     859        /* 60 */ array(1, 2, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     860        /* 61 */ array(1, 17, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     861        /* 62 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     862        /* 63 */ array(1, 30, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     863        /* 64 */ array(1, 17, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     864        /* 65 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     865        /* 66 */ array(1, 17, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     866        /* 67 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, ), 
     867        /* 68 */ array(1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     868        /* 69 */ array(1, 17, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     869        /* 70 */ array(1, 24, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     870        /* 71 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     871        /* 72 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     872        /* 73 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     873        /* 74 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     874        /* 75 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     875        /* 76 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     876        /* 77 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     877        /* 78 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     878        /* 79 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     879        /* 80 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     880        /* 81 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     881        /* 82 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     882        /* 83 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     883        /* 84 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     884        /* 85 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     885        /* 86 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     886        /* 87 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     887        /* 88 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     888        /* 89 */ array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     889        /* 90 */ array(39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     890        /* 91 */ array(39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ), 
     891        /* 92 */ array(1, 17, 21, 29, 37, 60, ), 
     892        /* 93 */ array(1, 17, 29, 53, ), 
     893        /* 94 */ array(1, 29, ), 
     894        /* 95 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 23, 28, 32, 33, 34, ), 
     895        /* 96 */ array(10, 16, 22, 23, 28, 32, 33, 34, 77, 78, 79, ), 
     896        /* 97 */ array(16, 19, 29, 31, ), 
     897        /* 98 */ array(16, 19, 29, 31, ), 
     898        /* 99 */ array(1, 17, 29, ), 
     899        /* 100 */ array(1, 17, 29, ), 
     900        /* 101 */ array(18, 19, 62, ), 
     901        /* 102 */ array(16, 19, 29, ), 
     902        /* 103 */ array(1, 2, 17, ), 
     903        /* 104 */ array(21, 58, 63, ), 
     904        /* 105 */ array(16, 19, 29, ), 
     905        /* 106 */ array(1, 29, ), 
     906        /* 107 */ array(18, 37, ), 
     907        /* 108 */ array(1, 29, ), 
     908        /* 109 */ array(10, 16, 22, 23, 28, 32, 33, 34, 77, 78, 79, ), 
     909        /* 110 */ array(4, 5, 6, 7, 8, 13, 14, 15, ), 
     910        /* 111 */ array(1, 17, 29, 30, 53, ), 
     911        /* 112 */ array(16, 19, 20, 25, ), 
     912        /* 113 */ array(1, 17, 29, 53, ), 
     913        /* 114 */ array(16, 19, 20, 61, ), 
     914        /* 115 */ array(1, 17, 29, 53, ), 
     915        /* 116 */ array(16, 19, 61, ), 
     916        /* 117 */ array(20, 21, 60, ), 
     917        /* 118 */ array(16, 19, 20, ), 
     918        /* 119 */ array(20, 21, 60, ), 
     919        /* 120 */ array(1, 31, 53, ), 
     920        /* 121 */ array(1, 17, 21, ), 
     921        /* 122 */ array(1, 17, 53, ), 
     922        /* 123 */ array(16, 19, ), 
     923        /* 124 */ array(16, 19, ), 
     924        /* 125 */ array(16, 19, ), 
     925        /* 126 */ array(16, 19, ), 
     926        /* 127 */ array(16, 19, ), 
     927        /* 128 */ array(18, 19, ), 
     928        /* 129 */ array(21, 60, ), 
     929        /* 130 */ array(16, 19, ), 
     930        /* 131 */ array(16, 19, ), 
     931        /* 132 */ array(1, 53, ), 
     932        /* 133 */ array(16, 19, ), 
     933        /* 134 */ array(16, 19, ), 
     934        /* 135 */ array(18, 37, ), 
     935        /* 136 */ array(18, 19, ), 
     936        /* 137 */ array(16, 19, ), 
     937        /* 138 */ array(16, 19, ), 
     938        /* 139 */ array(16, 19, ), 
     939        /* 140 */ array(1, 17, ), 
     940        /* 141 */ array(16, 19, ), 
     941        /* 142 */ array(17, 29, ), 
     942        /* 143 */ array(18, 37, ), 
     943        /* 144 */ array(16, 19, ), 
    908944        /* 145 */ array(1, ), 
    909         /* 146 */ array(28, ), 
     945        /* 146 */ array(21, ), 
    910946        /* 147 */ array(1, ), 
    911         /* 148 */ array(20, ), 
     947        /* 148 */ array(1, ), 
    912948        /* 149 */ array(1, ), 
    913         /* 150 */ array(28, ), 
     949        /* 150 */ array(1, ), 
    914950        /* 151 */ array(1, ), 
    915         /* 152 */ array(1, ), 
    916         /* 153 */ array(1, ), 
    917         /* 154 */ array(1, ), 
    918         /* 155 */ array(20, ), 
     951        /* 152 */ array(21, ), 
     952        /* 153 */ array(29, ), 
     953        /* 154 */ array(29, ), 
     954        /* 155 */ array(1, ), 
    919955        /* 156 */ array(1, ), 
    920956        /* 157 */ array(), 
    921         /* 158 */ array(15, 17, 18, ), 
    922         /* 159 */ array(15, 18, 60, ), 
    923         /* 160 */ array(16, 28, ), 
    924         /* 161 */ array(16, 28, ), 
    925         /* 162 */ array(16, 28, ), 
    926         /* 163 */ array(16, 28, ), 
    927         /* 164 */ array(57, 62, ), 
    928         /* 165 */ array(15, 36, ), 
    929         /* 166 */ array(57, 62, ), 
    930         /* 167 */ array(1, 16, ), 
    931         /* 168 */ array(16, 28, ), 
    932         /* 169 */ array(57, 62, ), 
    933         /* 170 */ array(16, 28, ), 
    934         /* 171 */ array(16, 28, ), 
    935         /* 172 */ array(16, 28, ), 
    936         /* 173 */ array(16, 28, ), 
    937         /* 174 */ array(57, 62, ), 
    938         /* 175 */ array(1, 16, ), 
    939         /* 176 */ array(16, 28, ), 
    940         /* 177 */ array(16, 28, ), 
    941         /* 178 */ array(57, 62, ), 
    942         /* 179 */ array(16, 28, ), 
    943         /* 180 */ array(1, 16, ), 
    944         /* 181 */ array(16, 28, ), 
    945         /* 182 */ array(16, 28, ), 
    946         /* 183 */ array(16, 28, ), 
    947         /* 184 */ array(16, 28, ), 
    948         /* 185 */ array(16, 28, ), 
    949         /* 186 */ array(16, 28, ), 
    950         /* 187 */ array(16, 28, ), 
    951         /* 188 */ array(16, 28, ), 
    952         /* 189 */ array(13, ), 
    953         /* 190 */ array(28, ), 
    954         /* 191 */ array(28, ), 
    955         /* 192 */ array(20, ), 
    956         /* 193 */ array(20, ), 
    957         /* 194 */ array(1, ), 
    958         /* 195 */ array(20, ), 
    959         /* 196 */ array(1, ), 
    960         /* 197 */ array(2, ), 
    961         /* 198 */ array(2, ), 
    962         /* 199 */ array(36, ), 
     957        /* 158 */ array(16, 18, 19, ), 
     958        /* 159 */ array(16, 19, 61, ), 
     959        /* 160 */ array(17, 29, ), 
     960        /* 161 */ array(58, 63, ), 
     961        /* 162 */ array(16, 37, ), 
     962        /* 163 */ array(58, 63, ), 
     963        /* 164 */ array(17, 29, ), 
     964        /* 165 */ array(17, 29, ), 
     965        /* 166 */ array(17, 29, ), 
     966        /* 167 */ array(17, 29, ), 
     967        /* 168 */ array(17, 29, ), 
     968        /* 169 */ array(17, 29, ), 
     969        /* 170 */ array(17, 29, ), 
     970        /* 171 */ array(17, 29, ), 
     971        /* 172 */ array(17, 29, ), 
     972        /* 173 */ array(58, 63, ), 
     973        /* 174 */ array(17, 29, ), 
     974        /* 175 */ array(17, 29, ), 
     975        /* 176 */ array(17, 29, ), 
     976        /* 177 */ array(17, 29, ), 
     977        /* 178 */ array(17, 29, ), 
     978        /* 179 */ array(1, 17, ), 
     979        /* 180 */ array(17, 29, ), 
     980        /* 181 */ array(58, 63, ), 
     981        /* 182 */ array(17, 29, ), 
     982        /* 183 */ array(17, 29, ), 
     983        /* 184 */ array(1, 17, ), 
     984        /* 185 */ array(58, 63, ), 
     985        /* 186 */ array(17, 29, ), 
     986        /* 187 */ array(17, 29, ), 
     987        /* 188 */ array(1, 17, ), 
     988        /* 189 */ array(29, ), 
     989        /* 190 */ array(1, ), 
     990        /* 191 */ array(1, ), 
     991        /* 192 */ array(2, ), 
     992        /* 193 */ array(2, ), 
     993        /* 194 */ array(37, ), 
     994        /* 195 */ array(29, ), 
     995        /* 196 */ array(21, ), 
     996        /* 197 */ array(14, ), 
     997        /* 198 */ array(21, ), 
     998        /* 199 */ array(21, ), 
    963999        /* 200 */ array(), 
    9641000        /* 201 */ array(), 
     
    9661002        /* 203 */ array(), 
    9671003        /* 204 */ array(), 
    968         /* 205 */ array(16, 23, 25, 26, 28, 29, 35, 36, 37, 52, 59, 63, 77, ), 
    969         /* 206 */ array(16, 19, 28, 36, 59, ), 
    970         /* 207 */ array(36, 57, 59, 63, ), 
    971         /* 208 */ array(15, 17, 18, 34, ), 
    972         /* 209 */ array(16, 28, 36, 59, ), 
    973         /* 210 */ array(30, 36, 59, ), 
    974         /* 211 */ array(18, 60, ), 
    975         /* 212 */ array(2, 19, ), 
    976         /* 213 */ array(36, 59, ), 
    977         /* 214 */ array(36, 59, ), 
    978         /* 215 */ array(16, 24, ), 
    979         /* 216 */ array(35, 37, ), 
    980         /* 217 */ array(24, 77, ), 
    981         /* 218 */ array(35, 63, ), 
    982         /* 219 */ array(23, 35, ), 
    983         /* 220 */ array(19, 57, ), 
    984         /* 221 */ array(35, 37, ), 
    985         /* 222 */ array(35, 37, ), 
    986         /* 223 */ array(18, ), 
    987         /* 224 */ array(2, ), 
    988         /* 225 */ array(24, ), 
    989         /* 226 */ array(17, ), 
    990         /* 227 */ array(18, ), 
     1004        /* 205 */ array(17, 24, 26, 27, 29, 30, 36, 37, 38, 53, 60, 64, 78, ), 
     1005        /* 206 */ array(17, 20, 29, 37, 60, ), 
     1006        /* 207 */ array(16, 18, 19, 35, ), 
     1007        /* 208 */ array(37, 58, 60, 64, ), 
     1008        /* 209 */ array(17, 29, 37, 60, ), 
     1009        /* 210 */ array(31, 37, 60, ), 
     1010        /* 211 */ array(36, 38, ), 
     1011        /* 212 */ array(24, 36, ), 
     1012        /* 213 */ array(2, 20, ), 
     1013        /* 214 */ array(25, 78, ), 
     1014        /* 215 */ array(17, 25, ), 
     1015        /* 216 */ array(36, 38, ), 
     1016        /* 217 */ array(36, 38, ), 
     1017        /* 218 */ array(19, 61, ), 
     1018        /* 219 */ array(36, 64, ), 
     1019        /* 220 */ array(37, 60, ), 
     1020        /* 221 */ array(37, 60, ), 
     1021        /* 222 */ array(20, 58, ), 
     1022        /* 223 */ array(37, ), 
     1023        /* 224 */ array(18, ), 
     1024        /* 225 */ array(19, ), 
     1025        /* 226 */ array(2, ), 
     1026        /* 227 */ array(62, ), 
    9911027        /* 228 */ array(18, ), 
    992         /* 229 */ array(36, ), 
    993         /* 230 */ array(57, ), 
     1028        /* 229 */ array(26, ), 
     1029        /* 230 */ array(19, ), 
    9941030        /* 231 */ array(18, ), 
    995         /* 232 */ array(36, ), 
    996         /* 233 */ array(18, ), 
    997         /* 234 */ array(17, ), 
    998         /* 235 */ array(18, ), 
    999         /* 236 */ array(34, ), 
    1000         /* 237 */ array(34, ), 
    1001         /* 238 */ array(18, ), 
    1002         /* 239 */ array(17, ), 
    1003         /* 240 */ array(61, ), 
    1004         /* 241 */ array(18, ), 
    1005         /* 242 */ array(37, ), 
    1006         /* 243 */ array(17, ), 
     1031        /* 232 */ array(19, ), 
     1032        /* 233 */ array(35, ), 
     1033        /* 234 */ array(37, ), 
     1034        /* 235 */ array(38, ), 
     1035        /* 236 */ array(25, ), 
     1036        /* 237 */ array(54, ), 
     1037        /* 238 */ array(2, ), 
     1038        /* 239 */ array(19, ), 
     1039        /* 240 */ array(19, ), 
     1040        /* 241 */ array(19, ), 
     1041        /* 242 */ array(64, ), 
     1042        /* 243 */ array(19, ), 
    10071043        /* 244 */ array(19, ), 
    1008         /* 245 */ array(63, ), 
    1009         /* 246 */ array(53, ), 
    1010         /* 247 */ array(2, ), 
    1011         /* 248 */ array(17, ), 
    1012         /* 249 */ array(25, ), 
     1044        /* 245 */ array(19, ), 
     1045        /* 246 */ array(58, ), 
     1046        /* 247 */ array(19, ), 
     1047        /* 248 */ array(62, ), 
     1048        /* 249 */ array(35, ), 
    10131049        /* 250 */ array(18, ), 
    1014         /* 251 */ array(18, ), 
    1015         /* 252 */ array(61, ), 
     1050        /* 251 */ array(20, ), 
     1051        /* 252 */ array(18, ), 
    10161052        /* 253 */ array(), 
    10171053        /* 254 */ array(), 
     
    11481184        /* 385 */ array(), 
    11491185        /* 386 */ array(), 
     1186        /* 387 */ array(), 
    11501187); 
    11511188    static public $yy_default = array( 
    1152  /*     0 */   390,  571,  588,  588,  542,  542,  542,  588,  588,  588, 
    1153  /*    10 */   588,  588,  588,  588,  588,  588,  588,  588,  588,  588, 
    1154  /*    20 */   588,  588,  588,  588,  588,  588,  588,  588,  588,  588, 
    1155  /*    30 */   588,  588,  588,  588,  588,  588,  588,  588,  588,  588, 
    1156  /*    40 */   588,  588,  588,  588,  588,  588,  588,  588,  588,  588, 
    1157  /*    50 */   588,  588,  588,  588,  588,  588,  450,  450,  450,  450, 
    1158  /*    60 */   588,  588,  588,  588,  455,  588,  588,  588,  588,  588, 
    1159  /*    70 */   588,  573,  457,  541,  574,  455,  471,  460,  540,  480, 
    1160  /*    80 */   484,  432,  461,  452,  479,  483,  572,  474,  475,  476, 
    1161  /*    90 */   487,  488,  499,  463,  450,  387,  588,  450,  450,  554, 
    1162  /*   100 */   588,  507,  470,  450,  450,  588,  588,  450,  450,  588, 
    1163  /*   110 */   588,  463,  588,  515,  463,  463,  515,  463,  515,  588, 
    1164  /*   120 */   508,  463,  508,  588,  588,  588,  588,  588,  588,  588, 
    1165  /*   130 */   588,  588,  588,  588,  588,  508,  515,  588,  588,  588, 
    1166  /*   140 */   588,  588,  463,  588,  588,  467,  450,  473,  551,  490, 
    1167  /*   150 */   450,  468,  486,  491,  492,  508,  466,  549,  588,  516, 
    1168  /*   160 */   588,  588,  588,  588,  533,  515,  532,  588,  588,  513, 
    1169  /*   170 */   588,  588,  588,  588,  534,  588,  588,  588,  535,  588, 
    1170  /*   180 */   588,  588,  588,  588,  588,  588,  588,  588,  588,  405, 
    1171  /*   190 */   587,  587,  529,  555,  470,  552,  507,  543,  544,  515, 
    1172  /*   200 */   515,  515,  548,  548,  548,  465,  499,  499,  588,  499, 
    1173  /*   210 */   499,  588,  527,  485,  499,  489,  588,  489,  588,  588, 
    1174  /*   220 */   495,  588,  588,  588,  527,  489,  588,  588,  588,  527, 
    1175  /*   230 */   495,  588,  553,  588,  588,  588,  497,  588,  588,  588, 
    1176  /*   240 */   588,  588,  588,  588,  588,  588,  501,  527,  588,  458, 
    1177  /*   250 */   588,  588,  588,  435,  524,  439,  501,  523,  511,  569, 
    1178  /*   260 */   521,  415,  522,  570,  520,  388,  537,  512,  440,  462, 
    1179  /*   270 */   459,  429,  550,  586,  430,  536,  528,  538,  539,  434, 
    1180  /*   280 */   433,  565,  441,  527,  442,  547,  443,  526,  438,  449, 
    1181  /*   290 */   428,  431,  436,  437,  444,  445,  498,  496,  504,  464, 
    1182  /*   300 */   465,  494,  493,  545,  546,  446,  447,  427,  448,  397, 
    1183  /*   310 */   396,  398,  399,  400,  395,  394,  389,  391,  392,  393, 
    1184  /*   320 */   401,  402,  411,  410,  412,  413,  414,  409,  408,  403, 
    1185  /*   330 */   404,  406,  407,  509,  514,  421,  420,  530,  422,  423, 
    1186  /*   340 */   419,  418,  531,  510,  416,  417,  583,  424,  426,  581, 
    1187  /*   350 */   579,  584,  585,  578,  580,  577,  425,  582,  575,  576, 
    1188  /*   360 */   506,  469,  503,  502,  505,  477,  478,  472,  500,  517, 
    1189  /*   370 */   525,  518,  519,  481,  482,  563,  562,  564,  566,  567, 
    1190  /*   380 */   561,  560,  556,  557,  558,  559,  568, 
     1189 /*     0 */   391,  573,  544,  590,  544,  590,  590,  544,  590,  590, 
     1190 /*    10 */   590,  590,  590,  590,  590,  590,  590,  590,  590,  590, 
     1191 /*    20 */   590,  590,  590,  590,  590,  590,  590,  590,  590,  590, 
     1192 /*    30 */   590,  590,  590,  590,  590,  590,  590,  590,  590,  590, 
     1193 /*    40 */   590,  590,  590,  590,  590,  590,  590,  590,  590,  590, 
     1194 /*    50 */   590,  590,  590,  590,  590,  590,  452,  452,  452,  452, 
     1195 /*    60 */   590,  590,  590,  457,  590,  590,  590,  590,  590,  590, 
     1196 /*    70 */   590,  542,  454,  481,  482,  485,  486,  478,  543,  476, 
     1197 /*    80 */   463,  575,  576,  473,  459,  457,  477,  434,  462,  574, 
     1198 /*    90 */   490,  489,  501,  465,  452,  388,  590,  452,  452,  509, 
     1199 /*   100 */   472,  590,  452,  590,  556,  452,  452,  590,  452,  590, 
     1200 /*   110 */   590,  465,  590,  465,  517,  465,  517,  510,  517,  510, 
     1201 /*   120 */   465,  590,  465,  590,  590,  517,  590,  590,  590,  510, 
     1202 /*   130 */   590,  590,  465,  590,  590,  590,  590,  590,  590,  590, 
     1203 /*   140 */   590,  590,  590,  590,  590,  493,  553,  475,  492,  469, 
     1204 /*   150 */   488,  468,  510,  452,  452,  470,  494,  551,  590,  518, 
     1205 /*   160 */   590,  534,  517,  537,  590,  590,  590,  590,  590,  590, 
     1206 /*   170 */   590,  590,  590,  535,  590,  590,  590,  590,  590,  590, 
     1207 /*   180 */   590,  536,  590,  590,  590,  515,  590,  590,  590,  589, 
     1208 /*   190 */   472,  509,  545,  546,  517,  589,  531,  407,  557,  554, 
     1209 /*   200 */   550,  550,  517,  550,  517,  467,  501,  590,  501,  501, 
     1210 /*   210 */   501,  590,  590,  529,  491,  491,  590,  590,  590,  590, 
     1211 /*   220 */   501,  487,  497,  555,  590,  590,  529,  590,  590,  460, 
     1212 /*   230 */   590,  590,  590,  590,  529,  590,  491,  503,  529,  590, 
     1213 /*   240 */   590,  590,  590,  590,  590,  590,  497,  590,  590,  499, 
     1214 /*   250 */   590,  590,  590,  437,  417,  389,  571,  431,  432,  441, 
     1215 /*   260 */   572,  540,  435,  588,  461,  539,  525,  523,  503,  526, 
     1216 /*   270 */   524,  514,  513,  530,  436,  570,  464,  538,  522,  442, 
     1217 /*   280 */   552,  541,  567,  529,  528,  443,  444,  549,  440,  439, 
     1218 /*   290 */   430,  429,  451,  433,  438,  445,  446,  498,  496,  500, 
     1219 /*   300 */   506,  466,  495,  449,  447,  547,  548,  448,  450,  416, 
     1220 /*   310 */   398,  397,  399,  400,  401,  396,  395,  390,  392,  393, 
     1221 /*   320 */   394,  402,  403,  412,  411,  413,  414,  415,  410,  409, 
     1222 /*   330 */   404,  405,  406,  408,  467,  511,  422,  421,  423,  532, 
     1223 /*   340 */   424,  420,  585,  512,  508,  533,  418,  419,  425,  426, 
     1224 /*   350 */   581,  582,  583,  586,  587,  579,  578,  428,  427,  584, 
     1225 /*   360 */   577,  471,  569,  504,  474,  505,  507,  479,  502,  521, 
     1226 /*   370 */   516,  519,  527,  520,  480,  483,  564,  563,  565,  566, 
     1227 /*   380 */   568,  562,  561,  484,  558,  559,  560,  580, 
    11911228); 
    1192     const YYNOCODE = 122; 
     1229    const YYNOCODE = 123; 
    11931230    const YYSTACKDEPTH = 100; 
    1194     const YYNSTATE = 387; 
    1195     const YYNRULE = 201; 
    1196     const YYERRORSYMBOL = 79; 
     1231    const YYNSTATE = 388; 
     1232    const YYNRULE = 202; 
     1233    const YYERRORSYMBOL = 80; 
    11971234    const YYERRSYMDT = 'yy0'; 
    11981235    const YYFALLBACK = 0; 
     
    12251262  '$',             'VERT',          'COLON',         'COMMENT', 
    12261263  'PHPSTARTTAG',   'PHPENDTAG',     'ASPSTARTTAG',   'ASPENDTAG', 
    1227   'FAKEPHPSTARTTAG',  'XMLTAG',        'OTHER',         'LINEBREAK', 
    1228   'LITERALSTART',  'LITERALEND',    'LITERAL',       'LDEL', 
    1229   'RDEL',          'DOLLAR',        'ID',            'EQUAL', 
    1230   'PTR',           'LDELIF',        'LDELFOR',       'SEMICOLON', 
    1231   'INCDEC',        'TO',            'STEP',          'LDELFOREACH', 
    1232   'SPACE',         'AS',            'APTR',          'LDELSETFILTER', 
    1233   'SMARTYBLOCKCHILD',  'LDELSLASH',     'INTEGER',       'COMMA', 
    1234   'OPENP',         'CLOSEP',        'MATH',          'UNIMATH', 
    1235   'ANDSYM',        'ISIN',          'ISDIVBY',       'ISNOTDIVBY', 
    1236   'ISEVEN',        'ISNOTEVEN',     'ISEVENBY',      'ISNOTEVENBY', 
    1237   'ISODD',         'ISNOTODD',      'ISODDBY',       'ISNOTODDBY', 
    1238   'INSTANCEOF',    'QMARK',         'NOT',           'TYPECAST', 
    1239   'HEX',           'DOT',           'SINGLEQUOTESTRING',  'DOUBLECOLON', 
    1240   'AT',            'HATCH',         'OPENB',         'CLOSEB', 
    1241   'EQUALS',        'NOTEQUALS',     'GREATERTHAN',   'LESSTHAN', 
    1242   'GREATEREQUAL',  'LESSEQUAL',     'IDENTITY',      'NONEIDENTITY', 
    1243   'MOD',           'LAND',          'LOR',           'LXOR', 
    1244   'QUOTE',         'BACKTICK',      'DOLLARID',      'error', 
    1245   'start',         'template',      'template_element',  'smartytag', 
    1246   'literal',       'literal_elements',  'literal_element',  'value', 
    1247   'modifierlist',  'attributes',    'expr',          'varindexed', 
    1248   'statement',     'statements',    'optspace',      'varvar', 
    1249   'foraction',     'modparameters',  'attribute',     'ternary', 
    1250   'array',         'ifcond',        'lop',           'variable', 
    1251   'function',      'doublequoted_with_quotes',  'static_class_access',  'object', 
    1252   'arrayindex',    'indexdef',      'varvarele',     'objectchain', 
    1253   'objectelement',  'method',        'params',        'modifier', 
    1254   'modparameter',  'arrayelements',  'arrayelement',  'doublequoted', 
    1255   'doublequotedcontent', 
     1264  'FAKEPHPSTARTTAG',  'XMLTAG',        'TEXT',          'STRIPON', 
     1265  'STRIPOFF',      'LITERALSTART',  'LITERALEND',    'LITERAL', 
     1266  'LDEL',          'RDEL',          'DOLLAR',        'ID', 
     1267  'EQUAL',         'PTR',           'LDELIF',        'LDELFOR', 
     1268  'SEMICOLON',     'INCDEC',        'TO',            'STEP', 
     1269  'LDELFOREACH',   'SPACE',         'AS',            'APTR', 
     1270  'LDELSETFILTER',  'SMARTYBLOCKCHILD',  'LDELSLASH',     'INTEGER', 
     1271  'COMMA',         'OPENP',         'CLOSEP',        'MATH', 
     1272  'UNIMATH',       'ANDSYM',        'ISIN',          'ISDIVBY', 
     1273  'ISNOTDIVBY',    'ISEVEN',        'ISNOTEVEN',     'ISEVENBY', 
     1274  'ISNOTEVENBY',   'ISODD',         'ISNOTODD',      'ISODDBY', 
     1275  'ISNOTODDBY',    'INSTANCEOF',    'QMARK',         'NOT', 
     1276  'TYPECAST',      'HEX',           'DOT',           'SINGLEQUOTESTRING', 
     1277  'DOUBLECOLON',   'AT',            'HATCH',         'OPENB', 
     1278  'CLOSEB',        'EQUALS',        'NOTEQUALS',     'GREATERTHAN', 
     1279  'LESSTHAN',      'GREATEREQUAL',  'LESSEQUAL',     'IDENTITY', 
     1280  'NONEIDENTITY',  'MOD',           'LAND',          'LOR', 
     1281  'LXOR',          'QUOTE',         'BACKTICK',      'DOLLARID', 
     1282  'error',         'start',         'template',      'template_element', 
     1283  'smartytag',     'literal',       'literal_elements',  'literal_element', 
     1284  'value',         'modifierlist',  'attributes',    'expr', 
     1285  'varindexed',    'statement',     'statements',    'optspace', 
     1286  'varvar',        'foraction',     'modparameters',  'attribute', 
     1287  'ternary',       'array',         'ifcond',        'lop', 
     1288  'variable',      'function',      'doublequoted_with_quotes',  'static_class_access', 
     1289  'object',        'arrayindex',    'indexdef',      'varvarele', 
     1290  'objectchain',   'objectelement',  'method',        'params', 
     1291  'modifier',      'modparameter',  'arrayelements',  'arrayelement', 
     1292  'doublequoted',  'doublequotedcontent', 
    12561293    ); 
    12571294 
     
    12701307 /*  11 */ "template_element ::= FAKEPHPSTARTTAG", 
    12711308 /*  12 */ "template_element ::= XMLTAG", 
    1272  /*  13 */ "template_element ::= OTHER", 
    1273  /*  14 */ "template_element ::= LINEBREAK", 
    1274  /*  15 */ "literal ::= LITERALSTART LITERALEND", 
    1275  /*  16 */ "literal ::= LITERALSTART literal_elements LITERALEND", 
    1276  /*  17 */ "literal_elements ::= literal_elements literal_element", 
    1277  /*  18 */ "literal_elements ::=", 
    1278  /*  19 */ "literal_element ::= literal", 
    1279  /*  20 */ "literal_element ::= LITERAL", 
    1280  /*  21 */ "literal_element ::= PHPSTARTTAG", 
    1281  /*  22 */ "literal_element ::= FAKEPHPSTARTTAG", 
    1282  /*  23 */ "literal_element ::= PHPENDTAG", 
    1283  /*  24 */ "literal_element ::= ASPSTARTTAG", 
    1284  /*  25 */ "literal_element ::= ASPENDTAG", 
    1285  /*  26 */ "smartytag ::= LDEL value RDEL", 
    1286  /*  27 */ "smartytag ::= LDEL value modifierlist attributes RDEL", 
    1287  /*  28 */ "smartytag ::= LDEL value attributes RDEL", 
    1288  /*  29 */ "smartytag ::= LDEL expr modifierlist attributes RDEL", 
    1289  /*  30 */ "smartytag ::= LDEL expr attributes RDEL", 
    1290  /*  31 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL", 
    1291  /*  32 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL", 
    1292  /*  33 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL", 
    1293  /*  34 */ "smartytag ::= LDEL varindexed EQUAL expr attributes RDEL", 
    1294  /*  35 */ "smartytag ::= LDEL ID attributes RDEL", 
    1295  /*  36 */ "smartytag ::= LDEL ID RDEL", 
    1296  /*  37 */ "smartytag ::= LDEL ID PTR ID attributes RDEL", 
    1297  /*  38 */ "smartytag ::= LDEL ID modifierlist attributes RDEL", 
    1298  /*  39 */ "smartytag ::= LDEL ID PTR ID modifierlist attributes RDEL", 
    1299  /*  40 */ "smartytag ::= LDELIF expr RDEL", 
    1300  /*  41 */ "smartytag ::= LDELIF expr attributes RDEL", 
    1301  /*  42 */ "smartytag ::= LDELIF statement RDEL", 
    1302  /*  43 */ "smartytag ::= LDELIF statement attributes RDEL", 
    1303  /*  44 */ "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes RDEL", 
    1304  /*  45 */ "foraction ::= EQUAL expr", 
    1305  /*  46 */ "foraction ::= INCDEC", 
    1306  /*  47 */ "smartytag ::= LDELFOR statement TO expr attributes RDEL", 
    1307  /*  48 */ "smartytag ::= LDELFOR statement TO expr STEP expr attributes RDEL", 
    1308  /*  49 */ "smartytag ::= LDELFOREACH attributes RDEL", 
    1309  /*  50 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes RDEL", 
    1310  /*  51 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL", 
    1311  /*  52 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes RDEL", 
    1312  /*  53 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL", 
    1313  /*  54 */ "smartytag ::= LDELSETFILTER ID modparameters RDEL", 
    1314  /*  55 */ "smartytag ::= LDELSETFILTER ID modparameters modifierlist RDEL", 
    1315  /*  56 */ "smartytag ::= SMARTYBLOCKCHILD", 
    1316  /*  57 */ "smartytag ::= LDELSLASH ID RDEL", 
    1317  /*  58 */ "smartytag ::= LDELSLASH ID modifierlist RDEL", 
    1318  /*  59 */ "smartytag ::= LDELSLASH ID PTR ID RDEL", 
    1319  /*  60 */ "smartytag ::= LDELSLASH ID PTR ID modifierlist RDEL", 
    1320  /*  61 */ "attributes ::= attributes attribute", 
    1321  /*  62 */ "attributes ::= attribute", 
    1322  /*  63 */ "attributes ::=", 
    1323  /*  64 */ "attribute ::= SPACE ID EQUAL ID", 
    1324  /*  65 */ "attribute ::= SPACE ID EQUAL expr", 
    1325  /*  66 */ "attribute ::= SPACE ID EQUAL value", 
    1326  /*  67 */ "attribute ::= SPACE ID", 
    1327  /*  68 */ "attribute ::= SPACE expr", 
    1328  /*  69 */ "attribute ::= SPACE value", 
    1329  /*  70 */ "attribute ::= SPACE INTEGER EQUAL expr", 
    1330  /*  71 */ "statements ::= statement", 
    1331  /*  72 */ "statements ::= statements COMMA statement", 
    1332  /*  73 */ "statement ::= DOLLAR varvar EQUAL expr", 
    1333  /*  74 */ "statement ::= varindexed EQUAL expr", 
    1334  /*  75 */ "statement ::= OPENP statement CLOSEP", 
    1335  /*  76 */ "expr ::= value", 
    1336  /*  77 */ "expr ::= ternary", 
    1337  /*  78 */ "expr ::= DOLLAR ID COLON ID", 
    1338  /*  79 */ "expr ::= expr MATH value", 
    1339  /*  80 */ "expr ::= expr UNIMATH value", 
    1340  /*  81 */ "expr ::= expr ANDSYM value", 
    1341  /*  82 */ "expr ::= array", 
    1342  /*  83 */ "expr ::= expr modifierlist", 
    1343  /*  84 */ "expr ::= expr ifcond expr", 
    1344  /*  85 */ "expr ::= expr ISIN array", 
    1345  /*  86 */ "expr ::= expr ISIN value", 
    1346  /*  87 */ "expr ::= expr lop expr", 
    1347  /*  88 */ "expr ::= expr ISDIVBY expr", 
    1348  /*  89 */ "expr ::= expr ISNOTDIVBY expr", 
    1349  /*  90 */ "expr ::= expr ISEVEN", 
    1350  /*  91 */ "expr ::= expr ISNOTEVEN", 
    1351  /*  92 */ "expr ::= expr ISEVENBY expr", 
    1352  /*  93 */ "expr ::= expr ISNOTEVENBY expr", 
    1353  /*  94 */ "expr ::= expr ISODD", 
    1354  /*  95 */ "expr ::= expr ISNOTODD", 
    1355  /*  96 */ "expr ::= expr ISODDBY expr", 
    1356  /*  97 */ "expr ::= expr ISNOTODDBY expr", 
    1357  /*  98 */ "expr ::= value INSTANCEOF ID", 
    1358  /*  99 */ "expr ::= value INSTANCEOF value", 
    1359  /* 100 */ "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr", 
    1360  /* 101 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr", 
    1361  /* 102 */ "value ::= variable", 
    1362  /* 103 */ "value ::= UNIMATH value", 
    1363  /* 104 */ "value ::= NOT value", 
    1364  /* 105 */ "value ::= TYPECAST value", 
    1365  /* 106 */ "value ::= variable INCDEC", 
    1366  /* 107 */ "value ::= HEX", 
    1367  /* 108 */ "value ::= INTEGER", 
    1368  /* 109 */ "value ::= INTEGER DOT INTEGER", 
    1369  /* 110 */ "value ::= INTEGER DOT", 
    1370  /* 111 */ "value ::= DOT INTEGER", 
    1371  /* 112 */ "value ::= ID", 
    1372  /* 113 */ "value ::= function", 
    1373  /* 114 */ "value ::= OPENP expr CLOSEP", 
    1374  /* 115 */ "value ::= SINGLEQUOTESTRING", 
    1375  /* 116 */ "value ::= doublequoted_with_quotes", 
    1376  /* 117 */ "value ::= ID DOUBLECOLON static_class_access", 
    1377  /* 118 */ "value ::= varindexed DOUBLECOLON static_class_access", 
    1378  /* 119 */ "value ::= smartytag", 
    1379  /* 120 */ "value ::= value modifierlist", 
    1380  /* 121 */ "variable ::= varindexed", 
    1381  /* 122 */ "variable ::= DOLLAR varvar AT ID", 
    1382  /* 123 */ "variable ::= object", 
    1383  /* 124 */ "variable ::= HATCH ID HATCH", 
    1384  /* 125 */ "variable ::= HATCH variable HATCH", 
    1385  /* 126 */ "varindexed ::= DOLLAR varvar arrayindex", 
    1386  /* 127 */ "arrayindex ::= arrayindex indexdef", 
    1387  /* 128 */ "arrayindex ::=", 
    1388  /* 129 */ "indexdef ::= DOT DOLLAR varvar", 
    1389  /* 130 */ "indexdef ::= DOT DOLLAR varvar AT ID", 
    1390  /* 131 */ "indexdef ::= DOT ID", 
    1391  /* 132 */ "indexdef ::= DOT INTEGER", 
    1392  /* 133 */ "indexdef ::= DOT LDEL expr RDEL", 
    1393  /* 134 */ "indexdef ::= OPENB ID CLOSEB", 
    1394  /* 135 */ "indexdef ::= OPENB ID DOT ID CLOSEB", 
    1395  /* 136 */ "indexdef ::= OPENB expr CLOSEB", 
    1396  /* 137 */ "indexdef ::= OPENB CLOSEB", 
    1397  /* 138 */ "varvar ::= varvarele", 
    1398  /* 139 */ "varvar ::= varvar varvarele", 
    1399  /* 140 */ "varvarele ::= ID", 
    1400  /* 141 */ "varvarele ::= LDEL expr RDEL", 
    1401  /* 142 */ "object ::= varindexed objectchain", 
    1402  /* 143 */ "objectchain ::= objectelement", 
    1403  /* 144 */ "objectchain ::= objectchain objectelement", 
    1404  /* 145 */ "objectelement ::= PTR ID arrayindex", 
    1405  /* 146 */ "objectelement ::= PTR DOLLAR varvar arrayindex", 
    1406  /* 147 */ "objectelement ::= PTR LDEL expr RDEL arrayindex", 
    1407  /* 148 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex", 
    1408  /* 149 */ "objectelement ::= PTR method", 
    1409  /* 150 */ "function ::= ID OPENP params CLOSEP", 
    1410  /* 151 */ "method ::= ID OPENP params CLOSEP", 
    1411  /* 152 */ "method ::= DOLLAR ID OPENP params CLOSEP", 
    1412  /* 153 */ "params ::= params COMMA expr", 
    1413  /* 154 */ "params ::= expr", 
    1414  /* 155 */ "params ::=", 
    1415  /* 156 */ "modifierlist ::= modifierlist modifier modparameters", 
    1416  /* 157 */ "modifierlist ::= modifier modparameters", 
    1417  /* 158 */ "modifier ::= VERT AT ID", 
    1418  /* 159 */ "modifier ::= VERT ID", 
    1419  /* 160 */ "modparameters ::= modparameters modparameter", 
    1420  /* 161 */ "modparameters ::=", 
    1421  /* 162 */ "modparameter ::= COLON value", 
    1422  /* 163 */ "modparameter ::= COLON array", 
    1423  /* 164 */ "static_class_access ::= method", 
    1424  /* 165 */ "static_class_access ::= method objectchain", 
    1425  /* 166 */ "static_class_access ::= ID", 
    1426  /* 167 */ "static_class_access ::= DOLLAR ID arrayindex", 
    1427  /* 168 */ "static_class_access ::= DOLLAR ID arrayindex objectchain", 
    1428  /* 169 */ "ifcond ::= EQUALS", 
    1429  /* 170 */ "ifcond ::= NOTEQUALS", 
    1430  /* 171 */ "ifcond ::= GREATERTHAN", 
    1431  /* 172 */ "ifcond ::= LESSTHAN", 
    1432  /* 173 */ "ifcond ::= GREATEREQUAL", 
    1433  /* 174 */ "ifcond ::= LESSEQUAL", 
    1434  /* 175 */ "ifcond ::= IDENTITY", 
    1435  /* 176 */ "ifcond ::= NONEIDENTITY", 
    1436  /* 177 */ "ifcond ::= MOD", 
    1437  /* 178 */ "lop ::= LAND", 
    1438  /* 179 */ "lop ::= LOR", 
    1439  /* 180 */ "lop ::= LXOR", 
    1440  /* 181 */ "array ::= OPENB arrayelements CLOSEB", 
    1441  /* 182 */ "arrayelements ::= arrayelement", 
    1442  /* 183 */ "arrayelements ::= arrayelements COMMA arrayelement", 
    1443  /* 184 */ "arrayelements ::=", 
    1444  /* 185 */ "arrayelement ::= value APTR expr", 
    1445  /* 186 */ "arrayelement ::= ID APTR expr", 
    1446  /* 187 */ "arrayelement ::= expr", 
    1447  /* 188 */ "doublequoted_with_quotes ::= QUOTE QUOTE", 
    1448  /* 189 */ "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE", 
    1449  /* 190 */ "doublequoted ::= doublequoted doublequotedcontent", 
    1450  /* 191 */ "doublequoted ::= doublequotedcontent", 
    1451  /* 192 */ "doublequotedcontent ::= BACKTICK variable BACKTICK", 
    1452  /* 193 */ "doublequotedcontent ::= BACKTICK expr BACKTICK", 
    1453  /* 194 */ "doublequotedcontent ::= DOLLARID", 
    1454  /* 195 */ "doublequotedcontent ::= LDEL variable RDEL", 
    1455  /* 196 */ "doublequotedcontent ::= LDEL expr RDEL", 
    1456  /* 197 */ "doublequotedcontent ::= smartytag", 
    1457  /* 198 */ "doublequotedcontent ::= OTHER", 
    1458  /* 199 */ "optspace ::= SPACE", 
    1459  /* 200 */ "optspace ::=", 
     1309 /*  13 */ "template_element ::= TEXT", 
     1310 /*  14 */ "template_element ::= STRIPON", 
     1311 /*  15 */ "template_element ::= STRIPOFF", 
     1312 /*  16 */ "literal ::= LITERALSTART LITERALEND", 
     1313 /*  17 */ "literal ::= LITERALSTART literal_elements LITERALEND", 
     1314 /*  18 */ "literal_elements ::= literal_elements literal_element", 
     1315 /*  19 */ "literal_elements ::=", 
     1316 /*  20 */ "literal_element ::= literal", 
     1317 /*  21 */ "literal_element ::= LITERAL", 
     1318 /*  22 */ "literal_element ::= PHPSTARTTAG", 
     1319 /*  23 */ "literal_element ::= FAKEPHPSTARTTAG", 
     1320 /*  24 */ "literal_element ::= PHPENDTAG", 
     1321 /*  25 */ "literal_element ::= ASPSTARTTAG", 
     1322 /*  26 */ "literal_element ::= ASPENDTAG", 
     1323 /*  27 */ "smartytag ::= LDEL value RDEL", 
     1324 /*  28 */ "smartytag ::= LDEL value modifierlist attributes RDEL", 
     1325 /*  29 */ "smartytag ::= LDEL value attributes RDEL", 
     1326 /*  30 */ "smartytag ::= LDEL expr modifierlist attributes RDEL", 
     1327 /*  31 */ "smartytag ::= LDEL expr attributes RDEL", 
     1328 /*  32 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL", 
     1329 /*  33 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL", 
     1330 /*  34 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL", 
     1331 /*  35 */ "smartytag ::= LDEL varindexed EQUAL expr attributes RDEL", 
     1332 /*  36 */ "smartytag ::= LDEL ID attributes RDEL", 
     1333 /*  37 */ "smartytag ::= LDEL ID RDEL", 
     1334 /*  38 */ "smartytag ::= LDEL ID PTR ID attributes RDEL", 
     1335 /*  39 */ "smartytag ::= LDEL ID modifierlist attributes RDEL", 
     1336 /*  40 */ "smartytag ::= LDEL ID PTR ID modifierlist attributes RDEL", 
     1337 /*  41 */ "smartytag ::= LDELIF expr RDEL", 
     1338 /*  42 */ "smartytag ::= LDELIF expr attributes RDEL", 
     1339 /*  43 */ "smartytag ::= LDELIF statement RDEL", 
     1340 /*  44 */ "smartytag ::= LDELIF statement attributes RDEL", 
     1341 /*  45 */ "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes RDEL", 
     1342 /*  46 */ "foraction ::= EQUAL expr", 
     1343 /*  47 */ "foraction ::= INCDEC", 
     1344 /*  48 */ "smartytag ::= LDELFOR statement TO expr attributes RDEL", 
     1345 /*  49 */ "smartytag ::= LDELFOR statement TO expr STEP expr attributes RDEL", 
     1346 /*  50 */ "smartytag ::= LDELFOREACH attributes RDEL", 
     1347 /*  51 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes RDEL", 
     1348 /*  52 */ "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL", 
     1349 /*  53 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes RDEL", 
     1350 /*  54 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL", 
     1351 /*  55 */ "smartytag ::= LDELSETFILTER ID modparameters RDEL", 
     1352 /*  56 */ "smartytag ::= LDELSETFILTER ID modparameters modifierlist RDEL", 
     1353 /*  57 */ "smartytag ::= SMARTYBLOCKCHILD", 
     1354 /*  58 */ "smartytag ::= LDELSLASH ID RDEL", 
     1355 /*  59 */ "smartytag ::= LDELSLASH ID modifierlist RDEL", 
     1356 /*  60 */ "smartytag ::= LDELSLASH ID PTR ID RDEL", 
     1357 /*  61 */ "smartytag ::= LDELSLASH ID PTR ID modifierlist RDEL", 
     1358 /*  62 */ "attributes ::= attributes attribute", 
     1359 /*  63 */ "attributes ::= attribute", 
     1360 /*  64 */ "attributes ::=", 
     1361 /*  65 */ "attribute ::= SPACE ID EQUAL ID", 
     1362 /*  66 */ "attribute ::= SPACE ID EQUAL expr", 
     1363 /*  67 */ "attribute ::= SPACE ID EQUAL value", 
     1364 /*  68 */ "attribute ::= SPACE ID", 
     1365 /*  69 */ "attribute ::= SPACE expr", 
     1366 /*  70 */ "attribute ::= SPACE value", 
     1367 /*  71 */ "attribute ::= SPACE INTEGER EQUAL expr", 
     1368 /*  72 */ "statements ::= statement", 
     1369 /*  73 */ "statements ::= statements COMMA statement", 
     1370 /*  74 */ "statement ::= DOLLAR varvar EQUAL expr", 
     1371 /*  75 */ "statement ::= varindexed EQUAL expr", 
     1372 /*  76 */ "statement ::= OPENP statement CLOSEP", 
     1373 /*  77 */ "expr ::= value", 
     1374 /*  78 */ "expr ::= ternary", 
     1375 /*  79 */ "expr ::= DOLLAR ID COLON ID", 
     1376 /*  80 */ "expr ::= expr MATH value", 
     1377 /*  81 */ "expr ::= expr UNIMATH value", 
     1378 /*  82 */ "expr ::= expr ANDSYM value", 
     1379 /*  83 */ "expr ::= array", 
     1380 /*  84 */ "expr ::= expr modifierlist", 
     1381 /*  85 */ "expr ::= expr ifcond expr", 
     1382 /*  86 */ "expr ::= expr ISIN array", 
     1383 /*  87 */ "expr ::= expr ISIN value", 
     1384 /*  88 */ "expr ::= expr lop expr", 
     1385 /*  89 */ "expr ::= expr ISDIVBY expr", 
     1386 /*  90 */ "expr ::= expr ISNOTDIVBY expr", 
     1387 /*  91 */ "expr ::= expr ISEVEN", 
     1388 /*  92 */ "expr ::= expr ISNOTEVEN", 
     1389 /*  93 */ "expr ::= expr ISEVENBY expr", 
     1390 /*  94 */ "expr ::= expr ISNOTEVENBY expr", 
     1391 /*  95 */ "expr ::= expr ISODD", 
     1392 /*  96 */ "expr ::= expr ISNOTODD", 
     1393 /*  97 */ "expr ::= expr ISODDBY expr", 
     1394 /*  98 */ "expr ::= expr ISNOTODDBY expr", 
     1395 /*  99 */ "expr ::= value INSTANCEOF ID", 
     1396 /* 100 */ "expr ::= value INSTANCEOF value", 
     1397 /* 101 */ "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr", 
     1398 /* 102 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr", 
     1399 /* 103 */ "value ::= variable", 
     1400 /* 104 */ "value ::= UNIMATH value", 
     1401 /* 105 */ "value ::= NOT value", 
     1402 /* 106 */ "value ::= TYPECAST value", 
     1403 /* 107 */ "value ::= variable INCDEC", 
     1404 /* 108 */ "value ::= HEX", 
     1405 /* 109 */ "value ::= INTEGER", 
     1406 /* 110 */ "value ::= INTEGER DOT INTEGER", 
     1407 /* 111 */ "value ::= INTEGER DOT", 
     1408 /* 112 */ "value ::= DOT INTEGER", 
     1409 /* 113 */ "value ::= ID", 
     1410 /* 114 */ "value ::= function", 
     1411 /* 115 */ "value ::= OPENP expr CLOSEP", 
     1412 /* 116 */ "value ::= SINGLEQUOTESTRING", 
     1413 /* 117 */ "value ::= doublequoted_with_quotes", 
     1414 /* 118 */ "value ::= ID DOUBLECOLON static_class_access", 
     1415 /* 119 */ "value ::= varindexed DOUBLECOLON static_class_access", 
     1416 /* 120 */ "value ::= smartytag", 
     1417 /* 121 */ "value ::= value modifierlist", 
     1418 /* 122 */ "variable ::= varindexed", 
     1419 /* 123 */ "variable ::= DOLLAR varvar AT ID", 
     1420 /* 124 */ "variable ::= object", 
     1421 /* 125 */ "variable ::= HATCH ID HATCH", 
     1422 /* 126 */ "variable ::= HATCH variable HATCH", 
     1423 /* 127 */ "varindexed ::= DOLLAR varvar arrayindex", 
     1424 /* 128 */ "arrayindex ::= arrayindex indexdef", 
     1425 /* 129 */ "arrayindex ::=", 
     1426 /* 130 */ "indexdef ::= DOT DOLLAR varvar", 
     1427 /* 131 */ "indexdef ::= DOT DOLLAR varvar AT ID", 
     1428 /* 132 */ "indexdef ::= DOT ID", 
     1429 /* 133 */ "indexdef ::= DOT INTEGER", 
     1430 /* 134 */ "indexdef ::= DOT LDEL expr RDEL", 
     1431 /* 135 */ "indexdef ::= OPENB ID CLOSEB", 
     1432 /* 136 */ "indexdef ::= OPENB ID DOT ID CLOSEB", 
     1433 /* 137 */ "indexdef ::= OPENB expr CLOSEB", 
     1434 /* 138 */ "indexdef ::= OPENB CLOSEB", 
     1435 /* 139 */ "varvar ::= varvarele", 
     1436 /* 140 */ "varvar ::= varvar varvarele", 
     1437 /* 141 */ "varvarele ::= ID", 
     1438 /* 142 */ "varvarele ::= LDEL expr RDEL", 
     1439 /* 143 */ "object ::= varindexed objectchain", 
     1440 /* 144 */ "objectchain ::= objectelement", 
     1441 /* 145 */ "objectchain ::= objectchain objectelement", 
     1442 /* 146 */ "objectelement ::= PTR ID arrayindex", 
     1443 /* 147 */ "objectelement ::= PTR DOLLAR varvar arrayindex", 
     1444 /* 148 */ "objectelement ::= PTR LDEL expr RDEL arrayindex", 
     1445 /* 149 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex", 
     1446 /* 150 */ "objectelement ::= PTR method", 
     1447 /* 151 */ "function ::= ID OPENP params CLOSEP", 
     1448 /* 152 */ "method ::= ID OPENP params CLOSEP", 
     1449 /* 153 */ "method ::= DOLLAR ID OPENP params CLOSEP", 
     1450 /* 154 */ "params ::= params COMMA expr", 
     1451 /* 155 */ "params ::= expr", 
     1452 /* 156 */ "params ::=", 
     1453 /* 157 */ "modifierlist ::= modifierlist modifier modparameters", 
     1454 /* 158 */ "modifierlist ::= modifier modparameters", 
     1455 /* 159 */ "modifier ::= VERT AT ID", 
     1456 /* 160 */ "modifier ::= VERT ID", 
     1457 /* 161 */ "modparameters ::= modparameters modparameter", 
     1458 /* 162 */ "modparameters ::=", 
     1459 /* 163 */ "modparameter ::= COLON value", 
     1460 /* 164 */ "modparameter ::= COLON array", 
     1461 /* 165 */ "static_class_access ::= method", 
     1462 /* 166 */ "static_class_access ::= method objectchain", 
     1463 /* 167 */ "static_class_access ::= ID", 
     1464 /* 168 */ "static_class_access ::= DOLLAR ID arrayindex", 
     1465 /* 169 */ "static_class_access ::= DOLLAR ID arrayindex objectchain", 
     1466 /* 170 */ "ifcond ::= EQUALS", 
     1467 /* 171 */ "ifcond ::= NOTEQUALS", 
     1468 /* 172 */ "ifcond ::= GREATERTHAN", 
     1469 /* 173 */ "ifcond ::= LESSTHAN", 
     1470 /* 174 */ "ifcond ::= GREATEREQUAL", 
     1471 /* 175 */ "ifcond ::= LESSEQUAL", 
     1472 /* 176 */ "ifcond ::= IDENTITY", 
     1473 /* 177 */ "ifcond ::= NONEIDENTITY", 
     1474 /* 178 */ "ifcond ::= MOD", 
     1475 /* 179 */ "lop ::= LAND", 
     1476 /* 180 */ "lop ::= LOR", 
     1477 /* 181 */ "lop ::= LXOR", 
     1478 /* 182 */ "array ::= OPENB arrayelements CLOSEB", 
     1479 /* 183 */ "arrayelements ::= arrayelement", 
     1480 /* 184 */ "arrayelements ::= arrayelements COMMA arrayelement", 
     1481 /* 185 */ "arrayelements ::=", 
     1482 /* 186 */ "arrayelement ::= value APTR expr", 
     1483 /* 187 */ "arrayelement ::= ID APTR expr", 
     1484 /* 188 */ "arrayelement ::= expr", 
     1485 /* 189 */ "doublequoted_with_quotes ::= QUOTE QUOTE", 
     1486 /* 190 */ "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE", 
     1487 /* 191 */ "doublequoted ::= doublequoted doublequotedcontent", 
     1488 /* 192 */ "doublequoted ::= doublequotedcontent", 
     1489 /* 193 */ "doublequotedcontent ::= BACKTICK variable BACKTICK", 
     1490 /* 194 */ "doublequotedcontent ::= BACKTICK expr BACKTICK", 
     1491 /* 195 */ "doublequotedcontent ::= DOLLARID", 
     1492 /* 196 */ "doublequotedcontent ::= LDEL variable RDEL", 
     1493 /* 197 */ "doublequotedcontent ::= LDEL expr RDEL", 
     1494 /* 198 */ "doublequotedcontent ::= smartytag", 
     1495 /* 199 */ "doublequotedcontent ::= TEXT", 
     1496 /* 200 */ "optspace ::= SPACE", 
     1497 /* 201 */ "optspace ::=", 
    14601498    ); 
    14611499 
     
    17131751                $this->yy_pop_parser_stack(); 
    17141752            } 
    1715 #line 83 "smarty_internal_templateparser.y" 
     1753#line 84 "smarty_internal_templateparser.y" 
    17161754 
    17171755    $this->internalError = true; 
    17181756    $this->compiler->trigger_template_error("Stack overflow in template parser"); 
    1719 #line 1715 "smarty_internal_templateparser.php" 
     1757#line 1753 "smarty_internal_templateparser.php" 
    17201758            return; 
    17211759        } 
     
    17381776 
    17391777    static public $yyRuleInfo = array( 
    1740   array( 'lhs' => 80, 'rhs' => 1 ), 
    17411778  array( 'lhs' => 81, 'rhs' => 1 ), 
    1742   array( 'lhs' => 81, 'rhs' => 2 ), 
    1743   array( 'lhs' => 81, 'rhs' => 0 ), 
    17441779  array( 'lhs' => 82, 'rhs' => 1 ), 
    1745   array( 'lhs' => 82, 'rhs' => 1 ), 
    1746   array( 'lhs' => 82, 'rhs' => 1 ), 
    1747   array( 'lhs' => 82, 'rhs' => 1 ), 
    1748   array( 'lhs' => 82, 'rhs' => 1 ), 
    1749   array( 'lhs' => 82, 'rhs' => 1 ), 
    1750   array( 'lhs' => 82, 'rhs' => 1 ), 
    1751   array( 'lhs' => 82, 'rhs' => 1 ), 
    1752   array( 'lhs' => 82, 'rhs' => 1 ), 
    1753   array( 'lhs' => 82, 'rhs' => 1 ), 
    1754   array( 'lhs' => 82, 'rhs' => 1 ), 
    1755   array( 'lhs' => 84, 'rhs' => 2 ), 
    1756   array( 'lhs' => 84, 'rhs' => 3 ), 
     1780  array( 'lhs' => 82, 'rhs' => 2 ), 
     1781  array( 'lhs' => 82, 'rhs' => 0 ), 
     1782  array( 'lhs' => 83, 'rhs' => 1 ), 
     1783  array( 'lhs' => 83, 'rhs' => 1 ), 
     1784  array( 'lhs' => 83, 'rhs' => 1 ), 
     1785  array( 'lhs' => 83, 'rhs' => 1 ), 
     1786  array( 'lhs' => 83, 'rhs' => 1 ), 
     1787  array( 'lhs' => 83, 'rhs' => 1 ), 
     1788  array( 'lhs' => 83, 'rhs' => 1 ), 
     1789  array( 'lhs' => 83, 'rhs' => 1 ), 
     1790  array( 'lhs' => 83, 'rhs' => 1 ), 
     1791  array( 'lhs' => 83, 'rhs' => 1 ), 
     1792  array( 'lhs' => 83, 'rhs' => 1 ), 
     1793  array( 'lhs' => 83, 'rhs' => 1 ), 
    17571794  array( 'lhs' => 85, 'rhs' => 2 ), 
    1758   array( 'lhs' => 85, 'rhs' => 0 ), 
    1759   array( 'lhs' => 86, 'rhs' => 1 ), 
    1760   array( 'lhs' => 86, 'rhs' => 1 ), 
    1761   array( 'lhs' => 86, 'rhs' => 1 ), 
    1762   array( 'lhs' => 86, 'rhs' => 1 ), 
    1763   array( 'lhs' => 86, 'rhs' => 1 ), 
    1764   array( 'lhs' => 86, 'rhs' => 1 ), 
    1765   array( 'lhs' => 86, 'rhs' => 1 ), 
    1766   array( 'lhs' => 83, 'rhs' => 3 ), 
    1767   array( 'lhs' => 83, 'rhs' => 5 ), 
    1768   array( 'lhs' => 83, 'rhs' => 4 ), 
    1769   array( 'lhs' => 83, 'rhs' => 5 ), 
    1770   array( 'lhs' => 83, 'rhs' => 4 ), 
    1771   array( 'lhs' => 83, 'rhs' => 6 ), 
    1772   array( 'lhs' => 83, 'rhs' => 6 ), 
    1773   array( 'lhs' => 83, 'rhs' => 7 ), 
    1774   array( 'lhs' => 83, 'rhs' => 6 ), 
    1775   array( 'lhs' => 83, 'rhs' => 4 ), 
    1776   array( 'lhs' => 83, 'rhs' => 3 ), 
    1777   array( 'lhs' => 83, 'rhs' => 6 ), 
    1778   array( 'lhs' => 83, 'rhs' => 5 ), 
    1779   array( 'lhs' => 83, 'rhs' => 7 ), 
    1780   array( 'lhs' => 83, 'rhs' => 3 ), 
    1781   array( 'lhs' => 83, 'rhs' => 4 ), 
    1782   array( 'lhs' => 83, 'rhs' => 3 ), 
    1783   array( 'lhs' => 83, 'rhs' => 4 ), 
    1784   array( 'lhs' => 83, 'rhs' => 12 ), 
    1785   array( 'lhs' => 96, 'rhs' => 2 ), 
    1786   array( 'lhs' => 96, 'rhs' => 1 ), 
    1787   array( 'lhs' => 83, 'rhs' => 6 ), 
    1788   array( 'lhs' => 83, 'rhs' => 8 ), 
    1789   array( 'lhs' => 83, 'rhs' => 3 ), 
    1790   array( 'lhs' => 83, 'rhs' => 8 ), 
    1791   array( 'lhs' => 83, 'rhs' => 11 ), 
    1792   array( 'lhs' => 83, 'rhs' => 8 ), 
    1793   array( 'lhs' => 83, 'rhs' => 11 ), 
    1794   array( 'lhs' => 83, 'rhs' => 4 ), 
    1795   array( 'lhs' => 83, 'rhs' => 5 ), 
    1796   array( 'lhs' => 83, 'rhs' => 1 ), 
    1797   array( 'lhs' => 83, 'rhs' => 3 ), 
    1798   array( 'lhs' => 83, 'rhs' => 4 ), 
    1799   array( 'lhs' => 83, 'rhs' => 5 ), 
    1800   array( 'lhs' => 83, 'rhs' => 6 ), 
    1801   array( 'lhs' => 89, 'rhs' => 2 ), 
    1802   array( 'lhs' => 89, 'rhs' => 1 ), 
    1803   array( 'lhs' => 89, 'rhs' => 0 ), 
    1804   array( 'lhs' => 98, 'rhs' => 4 ), 
    1805   array( 'lhs' => 98, 'rhs' => 4 ), 
    1806   array( 'lhs' => 98, 'rhs' => 4 ), 
    1807   array( 'lhs' => 98, 'rhs' => 2 ), 
    1808   array( 'lhs' => 98, 'rhs' => 2 ), 
    1809   array( 'lhs' => 98, 'rhs' => 2 ), 
    1810   array( 'lhs' => 98, 'rhs' => 4 ), 
    1811   array( 'lhs' => 93, 'rhs' => 1 ), 
    1812   array( 'lhs' => 93, 'rhs' => 3 ), 
    1813   array( 'lhs' => 92, 'rhs' => 4 ), 
    1814   array( 'lhs' => 92, 'rhs' => 3 ), 
    1815   array( 'lhs' => 92, 'rhs' => 3 ), 
    1816   array( 'lhs' => 90, 'rhs' => 1 ), 
    1817   array( 'lhs' => 90, 'rhs' => 1 ), 
    1818   array( 'lhs' => 90, 'rhs' => 4 ), 
    1819   array( 'lhs' => 90, 'rhs' => 3 ), 
    1820   array( 'lhs' => 90, 'rhs' => 3 ), 
    1821   array( 'lhs' => 90, 'rhs' => 3 ), 
    1822   array( 'lhs' => 90, 'rhs' => 1 ), 
    1823   array( 'lhs' => 90, 'rhs' => 2 ), 
    1824   array( 'lhs' => 90, 'rhs' => 3 ), 
    1825   array( 'lhs' => 90, 'rhs' => 3 ), 
    1826   array( 'lhs' => 90, 'rhs' => 3 ), 
    1827   array( 'lhs' => 90, 'rhs' => 3 ), 
    1828   array( 'lhs' => 90, 'rhs' => 3 ), 
    1829   array( 'lhs' => 90, 'rhs' => 3 ), 
    1830   array( 'lhs' => 90, 'rhs' => 2 ), 
    1831   array( 'lhs' => 90, 'rhs' => 2 ), 
    1832   array( 'lhs' => 90, 'rhs' => 3 ), 
    1833   array( 'lhs' => 90, 'rhs' => 3 ), 
    1834   array( 'lhs' => 90, 'rhs' => 2 ), 
    1835   array( 'lhs' => 90, 'rhs' => 2 ), 
    1836   array( 'lhs' => 90, 'rhs' => 3 ), 
    1837   array( 'lhs' => 90, 'rhs' => 3 ), 
    1838   array( 'lhs' => 90, 'rhs' => 3 ), 
    1839   array( 'lhs' => 90, 'rhs' => 3 ), 
    1840   array( 'lhs' => 99, 'rhs' => 8 ), 
    1841   array( 'lhs' => 99, 'rhs' => 7 ), 
    1842   array( 'lhs' => 87, 'rhs' => 1 ), 
    1843   array( 'lhs' => 87, 'rhs' => 2 ), 
    1844   array( 'lhs' => 87, 'rhs' => 2 ), 
    1845   array( 'lhs' => 87, 'rhs' => 2 ), 
    1846   array( 'lhs' => 87, 'rhs' => 2 ), 
     1795  array( 'lhs' => 85, 'rhs' => 3 ), 
     1796  array( 'lhs' => 86, 'rhs' => 2 ), 
     1797  array( 'lhs' => 86, 'rhs' => 0 ), 
    18471798  array( 'lhs' => 87, 'rhs' => 1 ), 
    18481799  array( 'lhs' => 87, 'rhs' => 1 ), 
    1849   array( 'lhs' => 87, 'rhs' => 3 ), 
    1850   array( 'lhs' => 87, 'rhs' => 2 ), 
    1851   array( 'lhs' => 87, 'rhs' => 2 ), 
    18521800  array( 'lhs' => 87, 'rhs' => 1 ), 
    18531801  array( 'lhs' => 87, 'rhs' => 1 ), 
    1854   array( 'lhs' => 87, 'rhs' => 3 ), 
    18551802  array( 'lhs' => 87, 'rhs' => 1 ), 
    18561803  array( 'lhs' => 87, 'rhs' => 1 ), 
    1857   array( 'lhs' => 87, 'rhs' => 3 ), 
    1858   array( 'lhs' => 87, 'rhs' => 3 ), 
    18591804  array( 'lhs' => 87, 'rhs' => 1 ), 
    1860   array( 'lhs' => 87, 'rhs' => 2 ), 
    1861   array( 'lhs' => 103, 'rhs' => 1 ), 
    1862   array( 'lhs' => 103, 'rhs' => 4 ), 
    1863   array( 'lhs' => 103, 'rhs' => 1 ), 
    1864   array( 'lhs' => 103, 'rhs' => 3 ), 
    1865   array( 'lhs' => 103, 'rhs' => 3 ), 
     1805  array( 'lhs' => 84, 'rhs' => 3 ), 
     1806  array( 'lhs' => 84, 'rhs' => 5 ), 
     1807  array( 'lhs' => 84, 'rhs' => 4 ), 
     1808  array( 'lhs' => 84, 'rhs' => 5 ), 
     1809  array( 'lhs' => 84, 'rhs' => 4 ), 
     1810  array( 'lhs' => 84, 'rhs' => 6 ), 
     1811  array( 'lhs' => 84, 'rhs' => 6 ), 
     1812  array( 'lhs' => 84, 'rhs' => 7 ), 
     1813  array( 'lhs' => 84, 'rhs' => 6 ), 
     1814  array( 'lhs' => 84, 'rhs' => 4 ), 
     1815  array( 'lhs' => 84, 'rhs' => 3 ), 
     1816  array( 'lhs' => 84, 'rhs' => 6 ), 
     1817  array( 'lhs' => 84, 'rhs' => 5 ), 
     1818  array( 'lhs' => 84, 'rhs' => 7 ), 
     1819  array( 'lhs' => 84, 'rhs' => 3 ), 
     1820  array( 'lhs' => 84, 'rhs' => 4 ), 
     1821  array( 'lhs' => 84, 'rhs' => 3 ), 
     1822  array( 'lhs' => 84, 'rhs' => 4 ), 
     1823  array( 'lhs' => 84, 'rhs' => 12 ), 
     1824  array( 'lhs' => 97, 'rhs' => 2 ), 
     1825  array( 'lhs' => 97, 'rhs' => 1 ), 
     1826  array( 'lhs' => 84, 'rhs' => 6 ), 
     1827  array( 'lhs' => 84, 'rhs' => 8 ), 
     1828  array( 'lhs' => 84, 'rhs' => 3 ), 
     1829  array( 'lhs' => 84, 'rhs' => 8 ), 
     1830  array( 'lhs' => 84, 'rhs' => 11 ), 
     1831  array( 'lhs' => 84, 'rhs' => 8 ), 
     1832  array( 'lhs' => 84, 'rhs' => 11 ), 
     1833  array( 'lhs' => 84, 'rhs' => 4 ), 
     1834  array( 'lhs' => 84, 'rhs' => 5 ), 
     1835  array( 'lhs' => 84, 'rhs' => 1 ), 
     1836  array( 'lhs' => 84, 'rhs' => 3 ), 
     1837  array( 'lhs' => 84, 'rhs' => 4 ), 
     1838  array( 'lhs' => 84, 'rhs' => 5 ), 
     1839  array( 'lhs' => 84, 'rhs' => 6 ), 
     1840  array( 'lhs' => 90, 'rhs' => 2 ), 
     1841  array( 'lhs' => 90, 'rhs' => 1 ), 
     1842  array( 'lhs' => 90, 'rhs' => 0 ), 
     1843  array( 'lhs' => 99, 'rhs' => 4 ), 
     1844  array( 'lhs' => 99, 'rhs' => 4 ), 
     1845  array( 'lhs' => 99, 'rhs' => 4 ), 
     1846  array( 'lhs' => 99, 'rhs' => 2 ), 
     1847  array( 'lhs' => 99, 'rhs' => 2 ), 
     1848  array( 'lhs' => 99, 'rhs' => 2 ), 
     1849  array( 'lhs' => 99, 'rhs' => 4 ), 
     1850  array( 'lhs' => 94, 'rhs' => 1 ), 
     1851  array( 'lhs' => 94, 'rhs' => 3 ), 
     1852  array( 'lhs' => 93, 'rhs' => 4 ), 
     1853  array( 'lhs' => 93, 'rhs' => 3 ), 
     1854  array( 'lhs' => 93, 'rhs' => 3 ), 
     1855  array( 'lhs' => 91, 'rhs' => 1 ), 
     1856  array( 'lhs' => 91, 'rhs' => 1 ), 
     1857  array( 'lhs' => 91, 'rhs' => 4 ), 
    18661858  array( 'lhs' => 91, 'rhs' => 3 ), 
     1859  array( 'lhs' => 91, 'rhs' => 3 ), 
     1860  array( 'lhs' => 91, 'rhs' => 3 ), 
     1861  array( 'lhs' => 91, 'rhs' => 1 ), 
     1862  array( 'lhs' => 91, 'rhs' => 2 ), 
     1863  array( 'lhs' => 91, 'rhs' => 3 ), 
     1864  array( 'lhs' => 91, 'rhs' => 3 ), 
     1865  array( 'lhs' => 91, 'rhs' => 3 ), 
     1866  array( 'lhs' => 91, 'rhs' => 3 ), 
     1867  array( 'lhs' => 91, 'rhs' => 3 ), 
     1868  array( 'lhs' => 91, 'rhs' => 3 ), 
     1869  array( 'lhs' => 91, 'rhs' => 2 ), 
     1870  array( 'lhs' => 91, 'rhs' => 2 ), 
     1871  array( 'lhs' => 91, 'rhs' => 3 ), 
     1872  array( 'lhs' => 91, 'rhs' => 3 ), 
     1873  array( 'lhs' => 91, 'rhs' => 2 ), 
     1874  array( 'lhs' => 91, 'rhs' => 2 ), 
     1875  array( 'lhs' => 91, 'rhs' => 3 ), 
     1876  array( 'lhs' => 91, 'rhs' => 3 ), 
     1877  array( 'lhs' => 91, 'rhs' => 3 ), 
     1878  array( 'lhs' => 91, 'rhs' => 3 ), 
     1879  array( 'lhs' => 100, 'rhs' => 8 ), 
     1880  array( 'lhs' => 100, 'rhs' => 7 ), 
     1881  array( 'lhs' => 88, 'rhs' => 1 ), 
     1882  array( 'lhs' => 88, 'rhs' => 2 ), 
     1883  array( 'lhs' => 88, 'rhs' => 2 ), 
     1884  array( 'lhs' => 88, 'rhs' => 2 ), 
     1885  array( 'lhs' => 88, 'rhs' => 2 ), 
     1886  array( 'lhs' => 88, 'rhs' => 1 ), 
     1887  array( 'lhs' => 88, 'rhs' => 1 ), 
     1888  array( 'lhs' => 88, 'rhs' => 3 ), 
     1889  array( 'lhs' => 88, 'rhs' => 2 ), 
     1890  array( 'lhs' => 88, 'rhs' => 2 ), 
     1891  array( 'lhs' => 88, 'rhs' => 1 ), 
     1892  array( 'lhs' => 88, 'rhs' => 1 ), 
     1893  array( 'lhs' => 88, 'rhs' => 3 ), 
     1894  array( 'lhs' => 88, 'rhs' => 1 ), 
     1895  array( 'lhs' => 88, 'rhs' => 1 ), 
     1896  array( 'lhs' => 88, 'rhs' => 3 ), 
     1897  array( 'lhs' => 88, 'rhs' => 3 ), 
     1898  array( 'lhs' => 88, 'rhs' => 1 ), 
     1899  array( 'lhs' => 88, 'rhs' => 2 ), 
     1900  array( 'lhs' => 104, 'rhs' => 1 ), 
     1901  array( 'lhs' => 104, 'rhs' => 4 ), 
     1902  array( 'lhs' => 104, 'rhs' => 1 ), 
     1903  array( 'lhs' => 104, 'rhs' => 3 ), 
     1904  array( 'lhs' => 104, 'rhs' => 3 ), 
     1905  array( 'lhs' => 92, 'rhs' => 3 ), 
     1906  array( 'lhs' => 109, 'rhs' => 2 ), 
     1907  array( 'lhs' => 109, 'rhs' => 0 ), 
     1908  array( 'lhs' => 110, 'rhs' => 3 ), 
     1909  array( 'lhs' => 110, 'rhs' => 5 ), 
     1910  array( 'lhs' => 110, 'rhs' => 2 ), 
     1911  array( 'lhs' => 110, 'rhs' => 2 ), 
     1912  array( 'lhs' => 110, 'rhs' => 4 ), 
     1913  array( 'lhs' => 110, 'rhs' => 3 ), 
     1914  array( 'lhs' => 110, 'rhs' => 5 ), 
     1915  array( 'lhs' => 110, 'rhs' => 3 ), 
     1916  array( 'lhs' => 110, 'rhs' => 2 ), 
     1917  array( 'lhs' => 96, 'rhs' => 1 ), 
     1918  array( 'lhs' => 96, 'rhs' => 2 ), 
     1919  array( 'lhs' => 111, 'rhs' => 1 ), 
     1920  array( 'lhs' => 111, 'rhs' => 3 ), 
    18671921  array( 'lhs' => 108, 'rhs' => 2 ), 
    1868   array( 'lhs' => 108, 'rhs' => 0 ), 
    1869   array( 'lhs' => 109, 'rhs' => 3 ), 
    1870   array( 'lhs' => 109, 'rhs' => 5 ), 
    1871   array( 'lhs' => 109, 'rhs' => 2 ), 
    1872   array( 'lhs' => 109, 'rhs' => 2 ), 
    1873   array( 'lhs' => 109, 'rhs' => 4 ), 
    1874   array( 'lhs' => 109, 'rhs' => 3 ), 
    1875   array( 'lhs' => 109, 'rhs' => 5 ), 
    1876   array( 'lhs' => 109, 'rhs' => 3 ), 
    1877   array( 'lhs' => 109, 'rhs' => 2 ), 
    1878   array( 'lhs' => 95, 'rhs' => 1 ), 
    1879   array( 'lhs' => 95, 'rhs' => 2 ), 
    1880   array( 'lhs' => 110, 'rhs' => 1 ), 
    1881   array( 'lhs' => 110, 'rhs' => 3 ), 
    1882   array( 'lhs' => 107, 'rhs' => 2 ), 
    1883   array( 'lhs' => 111, 'rhs' => 1 ), 
    1884   array( 'lhs' => 111, 'rhs' => 2 ), 
    1885   array( 'lhs' => 112, 'rhs' => 3 ), 
    1886   array( 'lhs' => 112, 'rhs' => 4 ), 
    1887   array( 'lhs' => 112, 'rhs' => 5 ), 
    1888   array( 'lhs' => 112, 'rhs' => 6 ), 
     1922  array( 'lhs' => 112, 'rhs' => 1 ), 
    18891923  array( 'lhs' => 112, 'rhs' => 2 ), 
    1890   array( 'lhs' => 104, 'rhs' => 4 ), 
     1924  array( 'lhs' => 113, 'rhs' => 3 ), 
    18911925  array( 'lhs' => 113, 'rhs' => 4 ), 
    18921926  array( 'lhs' => 113, 'rhs' => 5 ), 
    1893   array( 'lhs' => 114, 'rhs' => 3 ), 
    1894   array( 'lhs' => 114, 'rhs' => 1 ), 
    1895   array( 'lhs' => 114, 'rhs' => 0 ), 
    1896   array( 'lhs' => 88, 'rhs' => 3 ), 
    1897   array( 'lhs' => 88, 'rhs' => 2 ), 
     1927  array( 'lhs' => 113, 'rhs' => 6 ), 
     1928  array( 'lhs' => 113, 'rhs' => 2 ), 
     1929  array( 'lhs' => 105, 'rhs' => 4 ), 
     1930  array( 'lhs' => 114, 'rhs' => 4 ), 
     1931  array( 'lhs' => 114, 'rhs' => 5 ), 
    18981932  array( 'lhs' => 115, 'rhs' => 3 ), 
    1899   array( 'lhs' => 115, 'rhs' => 2 ), 
    1900   array( 'lhs' => 97, 'rhs' => 2 ), 
    1901   array( 'lhs' => 97, 'rhs' => 0 ), 
     1933  array( 'lhs' => 115, 'rhs' => 1 ), 
     1934  array( 'lhs' => 115, 'rhs' => 0 ), 
     1935  array( 'lhs' => 89, 'rhs' => 3 ), 
     1936  array( 'lhs' => 89, 'rhs' => 2 ), 
     1937  array( 'lhs' => 116, 'rhs' => 3 ), 
    19021938  array( 'lhs' => 116, 'rhs' => 2 ), 
    1903   array( 'lhs' => 116, 'rhs' => 2 ), 
    1904   array( 'lhs' => 106, 'rhs' => 1 ), 
    1905   array( 'lhs' => 106, 'rhs' => 2 ), 
    1906   array( 'lhs' => 106, 'rhs' => 1 ), 
    1907   array( 'lhs' => 106, 'rhs' => 3 ), 
    1908   array( 'lhs' => 106, 'rhs' => 4 ), 
    1909   array( 'lhs' => 101, 'rhs' => 1 ), 
    1910   array( 'lhs' => 101, 'rhs' => 1 ), 
    1911   array( 'lhs' => 101, 'rhs' => 1 ), 
    1912   array( 'lhs' => 101, 'rhs' => 1 ), 
    1913   array( 'lhs' => 101, 'rhs' => 1 ), 
    1914   array( 'lhs' => 101, 'rhs' => 1 ), 
    1915   array( 'lhs' => 101, 'rhs' => 1 ), 
    1916   array( 'lhs' => 101, 'rhs' => 1 ), 
    1917   array( 'lhs' => 101, 'rhs' => 1 ), 
     1939  array( 'lhs' => 98, 'rhs' => 2 ), 
     1940  array( 'lhs' => 98, 'rhs' => 0 ), 
     1941  array( 'lhs' => 117, 'rhs' => 2 ), 
     1942  array( 'lhs' => 117, 'rhs' => 2 ), 
     1943  array( 'lhs' => 107, 'rhs' => 1 ), 
     1944  array( 'lhs' => 107, 'rhs' => 2 ), 
     1945  array( 'lhs' => 107, 'rhs' => 1 ), 
     1946  array( 'lhs' => 107, 'rhs' => 3 ), 
     1947  array( 'lhs' => 107, 'rhs' => 4 ), 
    19181948  array( 'lhs' => 102, 'rhs' => 1 ), 
    19191949  array( 'lhs' => 102, 'rhs' => 1 ), 
    19201950  array( 'lhs' => 102, 'rhs' => 1 ), 
    1921   array( 'lhs' => 100, 'rhs' => 3 ), 
    1922   array( 'lhs' => 117, 'rhs' => 1 ), 
    1923   array( 'lhs' => 117, 'rhs' => 3 ), 
    1924   array( 'lhs' => 117, 'rhs' => 0 ), 
     1951  array( 'lhs' => 102, 'rhs' => 1 ), 
     1952  array( 'lhs' => 102, 'rhs' => 1 ), 
     1953  array( 'lhs' => 102, 'rhs' => 1 ), 
     1954  array( 'lhs' => 102, 'rhs' => 1 ), 
     1955  array( 'lhs' => 102, 'rhs' => 1 ), 
     1956  array( 'lhs' => 102, 'rhs' => 1 ), 
     1957  array( 'lhs' => 103, 'rhs' => 1 ), 
     1958  array( 'lhs' => 103, 'rhs' => 1 ), 
     1959  array( 'lhs' => 103, 'rhs' => 1 ), 
     1960  array( 'lhs' => 101, 'rhs' => 3 ), 
     1961  array( 'lhs' => 118, 'rhs' => 1 ), 
    19251962  array( 'lhs' => 118, 'rhs' => 3 ), 
    1926   array( 'lhs' => 118, 'rhs' => 3 ), 
    1927   array( 'lhs' => 118, 'rhs' => 1 ), 
    1928   array( 'lhs' => 105, 'rhs' => 2 ), 
    1929   array( 'lhs' => 105, 'rhs' => 3 ), 
    1930   array( 'lhs' => 119, 'rhs' => 2 ), 
     1963  array( 'lhs' => 118, 'rhs' => 0 ), 
     1964  array( 'lhs' => 119, 'rhs' => 3 ), 
     1965  array( 'lhs' => 119, 'rhs' => 3 ), 
    19311966  array( 'lhs' => 119, 'rhs' => 1 ), 
    1932   array( 'lhs' => 120, 'rhs' => 3 ), 
    1933   array( 'lhs' => 120, 'rhs' => 3 ), 
     1967  array( 'lhs' => 106, 'rhs' => 2 ), 
     1968  array( 'lhs' => 106, 'rhs' => 3 ), 
     1969  array( 'lhs' => 120, 'rhs' => 2 ), 
    19341970  array( 'lhs' => 120, 'rhs' => 1 ), 
    1935   array( 'lhs' => 120, 'rhs' => 3 ), 
    1936   array( 'lhs' => 120, 'rhs' => 3 ), 
    1937   array( 'lhs' => 120, 'rhs' => 1 ), 
    1938   array( 'lhs' => 120, 'rhs' => 1 ), 
    1939   array( 'lhs' => 94, 'rhs' => 1 ), 
    1940   array( 'lhs' => 94, 'rhs' => 0 ), 
     1971  array( 'lhs' => 121, 'rhs' => 3 ), 
     1972  array( 'lhs' => 121, 'rhs' => 3 ), 
     1973  array( 'lhs' => 121, 'rhs' => 1 ), 
     1974  array( 'lhs' => 121, 'rhs' => 3 ), 
     1975  array( 'lhs' => 121, 'rhs' => 3 ), 
     1976  array( 'lhs' => 121, 'rhs' => 1 ), 
     1977  array( 'lhs' => 121, 'rhs' => 1 ), 
     1978  array( 'lhs' => 95, 'rhs' => 1 ), 
     1979  array( 'lhs' => 95, 'rhs' => 0 ), 
    19411980    ); 
    19421981 
     
    19571996        14 => 14, 
    19581997        15 => 15, 
    1959         18 => 15, 
    1960         200 => 15, 
    19611998        16 => 16, 
    1962         75 => 16, 
     1999        19 => 16, 
     2000        201 => 16, 
    19632001        17 => 17, 
    1964         103 => 17, 
    1965         105 => 17, 
    1966         106 => 17, 
    1967         127 => 17, 
    1968         165 => 17, 
    1969         19 => 19, 
    1970         20 => 19, 
    1971         46 => 19, 
    1972         68 => 19, 
    1973         69 => 19, 
    1974         76 => 19, 
    1975         77 => 19, 
    1976         82 => 19, 
    1977         102 => 19, 
    1978         107 => 19, 
    1979         108 => 19, 
    1980         113 => 19, 
    1981         115 => 19, 
    1982         116 => 19, 
    1983         123 => 19, 
    1984         138 => 19, 
    1985         164 => 19, 
    1986         166 => 19, 
    1987         182 => 19, 
    1988         187 => 19, 
    1989         199 => 19, 
    1990         21 => 21, 
    1991         22 => 21, 
    1992         23 => 23, 
     2002        76 => 17, 
     2003        18 => 18, 
     2004        104 => 18, 
     2005        106 => 18, 
     2006        107 => 18, 
     2007        128 => 18, 
     2008        166 => 18, 
     2009        20 => 20, 
     2010        21 => 20, 
     2011        47 => 20, 
     2012        69 => 20, 
     2013        70 => 20, 
     2014        77 => 20, 
     2015        78 => 20, 
     2016        83 => 20, 
     2017        103 => 20, 
     2018        108 => 20, 
     2019        109 => 20, 
     2020        114 => 20, 
     2021        116 => 20, 
     2022        117 => 20, 
     2023        124 => 20, 
     2024        139 => 20, 
     2025        165 => 20, 
     2026        167 => 20, 
     2027        183 => 20, 
     2028        188 => 20, 
     2029        200 => 20, 
     2030        22 => 22, 
     2031        23 => 22, 
    19932032        24 => 24, 
    19942033        25 => 25, 
     
    19962035        27 => 27, 
    19972036        28 => 28, 
    1998         30 => 28, 
    19992037        29 => 29, 
    2000         31 => 31, 
    2001         32 => 31, 
    2002         33 => 33, 
     2038        31 => 29, 
     2039        30 => 30, 
     2040        32 => 32, 
     2041        33 => 32, 
    20032042        34 => 34, 
    20042043        35 => 35, 
     
    20092048        40 => 40, 
    20102049        41 => 41, 
    2011         43 => 41, 
    20122050        42 => 42, 
    2013         44 => 44, 
     2051        44 => 42, 
     2052        43 => 43, 
    20142053        45 => 45, 
    2015         47 => 47, 
     2054        46 => 46, 
    20162055        48 => 48, 
    20172056        49 => 49, 
     
    20292068        61 => 61, 
    20302069        62 => 62, 
    2031         71 => 62, 
    2032         154 => 62, 
    2033         158 => 62, 
    2034         162 => 62, 
    2035         163 => 62, 
    20362070        63 => 63, 
     2071        72 => 63, 
    20372072        155 => 63, 
    2038         161 => 63, 
     2073        159 => 63, 
     2074        163 => 63, 
     2075        164 => 63, 
    20392076        64 => 64, 
     2077        156 => 64, 
     2078        162 => 64, 
    20402079        65 => 65, 
    2041         66 => 65, 
    2042         70 => 65, 
    2043         67 => 67, 
    2044         72 => 72, 
     2080        66 => 66, 
     2081        67 => 66, 
     2082        71 => 66, 
     2083        68 => 68, 
    20452084        73 => 73, 
    2046         74 => 73, 
    2047         78 => 78, 
     2085        74 => 74, 
     2086        75 => 74, 
    20482087        79 => 79, 
    2049         80 => 79, 
    2050         81 => 79, 
    2051         83 => 83, 
    2052         120 => 83, 
     2088        80 => 80, 
     2089        81 => 80, 
     2090        82 => 80, 
    20532091        84 => 84, 
    2054         87 => 84, 
    2055         98 => 84, 
     2092        121 => 84, 
    20562093        85 => 85, 
     2094        88 => 85, 
     2095        99 => 85, 
    20572096        86 => 86, 
    2058         88 => 88, 
     2097        87 => 87, 
    20592098        89 => 89, 
    20602099        90 => 90, 
    2061         95 => 90, 
    20622100        91 => 91, 
    2063         94 => 91, 
     2101        96 => 91, 
    20642102        92 => 92, 
    2065         97 => 92, 
     2103        95 => 92, 
    20662104        93 => 93, 
    2067         96 => 93, 
    2068         99 => 99, 
     2105        98 => 93, 
     2106        94 => 94, 
     2107        97 => 94, 
    20692108        100 => 100, 
    20702109        101 => 101, 
    2071         104 => 104, 
    2072         109 => 109, 
     2110        102 => 102, 
     2111        105 => 105, 
    20732112        110 => 110, 
    20742113        111 => 111, 
    20752114        112 => 112, 
    2076         114 => 114, 
    2077         117 => 117, 
     2115        113 => 113, 
     2116        115 => 115, 
    20782117        118 => 118, 
    20792118        119 => 119, 
    2080         121 => 121, 
     2119        120 => 120, 
    20812120        122 => 122, 
    2082         124 => 124, 
     2121        123 => 123, 
    20832122        125 => 125, 
    20842123        126 => 126, 
    2085         128 => 128, 
    2086         184 => 128, 
     2124        127 => 127, 
    20872125        129 => 129, 
     2126        185 => 129, 
    20882127        130 => 130, 
    20892128        131 => 131, 
    20902129        132 => 132, 
    20912130        133 => 133, 
    2092         136 => 133, 
    20932131        134 => 134, 
     2132        137 => 134, 
    20942133        135 => 135, 
    2095         137 => 137, 
    2096         139 => 139, 
     2134        136 => 136, 
     2135        138 => 138, 
    20972136        140 => 140, 
    20982137        141 => 141, 
     
    21092148        152 => 152, 
    21102149        153 => 153, 
    2111         156 => 156, 
     2150        154 => 154, 
    21122151        157 => 157, 
    2113         159 => 159, 
     2152        158 => 158, 
    21142153        160 => 160, 
    2115         167 => 167, 
     2154        161 => 161, 
    21162155        168 => 168, 
    21172156        169 => 169, 
     
    21282167        180 => 180, 
    21292168        181 => 181, 
    2130         183 => 183, 
    2131         185 => 185, 
     2169        182 => 182, 
     2170        184 => 184, 
    21322171        186 => 186, 
    2133         188 => 188, 
     2172        187 => 187, 
    21342173        189 => 189, 
    21352174        190 => 190, 
    21362175        191 => 191, 
    21372176        192 => 192, 
    2138         193 => 192, 
    2139         195 => 192, 
    2140         194 => 194, 
    2141         196 => 196, 
     2177        193 => 193, 
     2178        194 => 193, 
     2179        196 => 193, 
     2180        195 => 195, 
    21422181        197 => 197, 
    21432182        198 => 198, 
     2183        199 => 199, 
    21442184    ); 
    2145 #line 94 "smarty_internal_templateparser.y" 
     2185#line 95 "smarty_internal_templateparser.y" 
    21462186    function yy_r0(){ 
    21472187    $this->_retvalue = $this->root_buffer->to_smarty_php(); 
    21482188    } 
    2149 #line 2145 "smarty_internal_templateparser.php" 
    2150 #line 102 "smarty_internal_templateparser.y" 
     2189#line 2185 "smarty_internal_templateparser.php" 
     2190#line 103 "smarty_internal_templateparser.y" 
    21512191    function yy_r1(){ 
    21522192    $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor); 
    21532193    } 
    2154 #line 2150 "smarty_internal_templateparser.php" 
    2155 #line 118 "smarty_internal_templateparser.y" 
     2194#line 2190 "smarty_internal_templateparser.php" 
     2195#line 119 "smarty_internal_templateparser.y" 
    21562196    function yy_r4(){ 
    21572197    if ($this->compiler->has_code) { 
     
    21642204    $this->block_nesting_level = count($this->compiler->_tag_stack); 
    21652205    } 
    2166 #line 2162 "smarty_internal_templateparser.php" 
    2167 #line 130 "smarty_internal_templateparser.y" 
     2206#line 2202 "smarty_internal_templateparser.php" 
     2207#line 131 "smarty_internal_templateparser.y" 
    21682208    function yy_r5(){ 
    21692209    $this->_retvalue = new _smarty_tag($this, ''); 
    21702210    } 
    2171 #line 2167 "smarty_internal_templateparser.php" 
    2172 #line 135 "smarty_internal_templateparser.y" 
     2211#line 2207 "smarty_internal_templateparser.php" 
     2212#line 136 "smarty_internal_templateparser.y" 
    21732213    function yy_r6(){ 
    21742214    $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor); 
    21752215    } 
    2176 #line 2172 "smarty_internal_templateparser.php" 
    2177 #line 140 "smarty_internal_templateparser.y" 
     2216#line 2212 "smarty_internal_templateparser.php" 
     2217#line 141 "smarty_internal_templateparser.y" 
    21782218    function yy_r7(){ 
    21792219    if ($this->php_handling == Smarty::PHP_PASSTHRU) { 
     
    21902230    } 
    21912231    } 
    2192 #line 2188 "smarty_internal_templateparser.php" 
    2193 #line 156 "smarty_internal_templateparser.y" 
     2232#line 2228 "smarty_internal_templateparser.php" 
     2233#line 157 "smarty_internal_templateparser.y" 
    21942234    function yy_r8(){ 
    21952235    if ($this->is_xml) { 
     
    22092249    } 
    22102250    } 
    2211 #line 2207 "smarty_internal_templateparser.php" 
    2212 #line 175 "smarty_internal_templateparser.y" 
     2251#line 2247 "smarty_internal_templateparser.php" 
     2252#line 176 "smarty_internal_templateparser.y" 
    22132253    function yy_r9(){ 
    22142254    if ($this->php_handling == Smarty::PHP_PASSTHRU) { 
     
    22332273    } 
    22342274    } 
    2235 #line 2231 "smarty_internal_templateparser.php" 
    2236 #line 199 "smarty_internal_templateparser.y" 
     2275#line 2271 "smarty_internal_templateparser.php" 
     2276#line 200 "smarty_internal_templateparser.y" 
    22372277    function yy_r10(){ 
    22382278    if ($this->php_handling == Smarty::PHP_PASSTHRU) { 
     
    22542294    } 
    22552295    } 
    2256 #line 2252 "smarty_internal_templateparser.php" 
    2257 #line 219 "smarty_internal_templateparser.y" 
     2296#line 2292 "smarty_internal_templateparser.php" 
     2297#line 220 "smarty_internal_templateparser.y" 
    22582298    function yy_r11(){ 
    2259     if ($this->lex->strip) { 
    2260         $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))); 
     2299    if ($this->strip) { 
     2300        $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor))); 
    22612301    } else { 
    2262         $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)); 
    2263     } 
    2264     } 
    2265 #line 2261 "smarty_internal_templateparser.php" 
    2266 #line 228 "smarty_internal_templateparser.y" 
     2302        $this->_retvalue = new _smarty_text($this, self::escape_start_tag(ö)); 
     2303    } 
     2304    } 
     2305#line 2301 "smarty_internal_templateparser.php" 
     2306#line 229 "smarty_internal_templateparser.y" 
    22672307    function yy_r12(){ 
    22682308    $this->compiler->tag_nocache = true; 
     
    22722312    $this->template->has_nocache_code = $save; 
    22732313    } 
    2274 #line 2270 "smarty_internal_templateparser.php" 
    2275 #line 237 "smarty_internal_templateparser.y" 
     2314#line 2310 "smarty_internal_templateparser.php" 
     2315#line 238 "smarty_internal_templateparser.y" 
    22762316    function yy_r13(){ 
    2277     if ($this->lex->strip) { 
     2317    if ($this->strip) { 
    22782318        $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor)); 
    22792319    } else { 
     
    22812321    } 
    22822322    } 
    2283 #line 2279 "smarty_internal_templateparser.php" 
    2284 #line 245 "smarty_internal_templateparser.y" 
     2323#line 2319 "smarty_internal_templateparser.php" 
     2324#line 247 "smarty_internal_templateparser.y" 
    22852325    function yy_r14(){ 
    2286     $this->_retvalue = new _smarty_linebreak($this, $this->yystack[$this->yyidx + 0]->minor); 
    2287     } 
    2288 #line 2284 "smarty_internal_templateparser.php" 
    2289 #line 250 "smarty_internal_templateparser.y" 
     2326    $this->strip = true; 
     2327    $this->_retvalue = new _smarty_text($this, ''); 
     2328    } 
     2329#line 2325 "smarty_internal_templateparser.php" 
     2330#line 252 "smarty_internal_templateparser.y" 
    22902331    function yy_r15(){ 
     2332    $this->strip = false; 
     2333    $this->_retvalue = new _smarty_text($this, ''); 
     2334    } 
     2335#line 2331 "smarty_internal_templateparser.php" 
     2336#line 258 "smarty_internal_templateparser.y" 
     2337    function yy_r16(){ 
    22912338    $this->_retvalue = ''; 
    22922339    } 
    2293 #line 2289 "smarty_internal_templateparser.php" 
    2294 #line 254 "smarty_internal_templateparser.y" 
    2295     function yy_r16(){ 
     2340#line 2336 "smarty_internal_templateparser.php" 
     2341#line 262 "smarty_internal_templateparser.y" 
     2342    function yy_r17(){ 
    22962343    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; 
    22972344    } 
    2298 #line 2294 "smarty_internal_templateparser.php" 
    2299 #line 258 "smarty_internal_templateparser.y" 
    2300     function yy_r17(){ 
     2345#line 2341 "smarty_internal_templateparser.php" 
     2346#line 266 "smarty_internal_templateparser.y" 
     2347    function yy_r18(){ 
    23012348    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; 
    23022349    } 
    2303 #line 2299 "smarty_internal_templateparser.php" 
    2304 #line 266 "smarty_internal_templateparser.y" 
    2305     function yy_r19(){ 
     2350#line 2346 "smarty_internal_templateparser.php" 
     2351#line 274 "smarty_internal_templateparser.y" 
     2352    function yy_r20(){ 
    23062353    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; 
    23072354    } 
    2308 #line 2304 "smarty_internal_templateparser.php" 
    2309 #line 274 "smarty_internal_templateparser.y" 
    2310     function yy_r21(){ 
     2355#line 2351 "smarty_internal_templateparser.php" 
     2356#line 282 "smarty_internal_templateparser.y" 
     2357    function yy_r22(){ 
    23112358    $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor); 
    23122359    } 
    2313 #line 2309 "smarty_internal_templateparser.php" 
    2314 #line 282 "smarty_internal_templateparser.y" 
    2315     function yy_r23(){ 
     2360#line 2356 "smarty_internal_templateparser.php" 
     2361#line 290 "smarty_internal_templateparser.y" 
     2362    function yy_r24(){ 
    23162363    $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor); 
    23172364    } 
    2318 #line 2314 "smarty_internal_templateparser.php" 
    2319 #line 286 "smarty_internal_templateparser.y" 
    2320     function yy_r24(){ 
     2365#line 2361 "smarty_internal_templateparser.php" 
     2366#line 294 "smarty_internal_templateparser.y" 
     2367    function yy_r25(){ 
    23212368    $this->_retvalue = '<<?php ?>%'; 
    23222369    } 
    2323 #line 2319 "smarty_internal_templateparser.php" 
    2324 #line 290 "smarty_internal_templateparser.y" 
    2325     function yy_r25(){ 
     2370#line 2366 "smarty_internal_templateparser.php" 
     2371#line 298 "smarty_internal_templateparser.y" 
     2372    function yy_r26(){ 
    23262373    $this->_retvalue = '%<?php ?>>'; 
    23272374    } 
    2328 #line 2324 "smarty_internal_templateparser.php" 
    2329 #line 300 "smarty_internal_templateparser.y" 
    2330     function yy_r26(){ 
     2375#line 2371 "smarty_internal_templateparser.php" 
     2376#line 307 "smarty_internal_templateparser.y" 
     2377    function yy_r27(){ 
    23312378    $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor)); 
    23322379    } 
    2333 #line 2329 "smarty_internal_templateparser.php" 
    2334 #line 304 "smarty_internal_templateparser.y" 
    2335     function yy_r27(){ 
     2380#line 2376 "smarty_internal_templateparser.php" 
     2381#line 311 "smarty_internal_templateparser.y" 
     2382    function yy_r28(){ 
    23362383    $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)); 
    23372384    } 
    2338 #line 2334 "smarty_internal_templateparser.php" 
    2339 #line 308 "smarty_internal_templateparser.y" 
    2340     function yy_r28(){ 
     2385#line 2381 "smarty_internal_templateparser.php" 
     2386#line 315 "smarty_internal_templateparser.y" 
     2387    function yy_r29(){ 
    23412388    $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor)); 
    23422389    } 
    2343 #line 2339 "smarty_internal_templateparser.php" 
    2344 #line 312 "smarty_internal_templateparser.y" 
    2345     function yy_r29(){ 
     2390#line 2386 "smarty_internal_templateparser.php" 
     2391#line 319 "smarty_internal_templateparser.y" 
     2392    function yy_r30(){ 
    23462393    $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)); 
    23472394    } 
    2348 #line 2344 "smarty_internal_templateparser.php" 
    2349 #line 325 "smarty_internal_templateparser.y" 
    2350     function yy_r31(){ 
     2395#line 2391 "smarty_internal_templateparser.php" 
     2396#line 332 "smarty_internal_templateparser.y" 
     2397    function yy_r32(){ 
    23512398    $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'"))); 
    23522399    } 
    2353 #line 2349 "smarty_internal_templateparser.php" 
    2354 #line 333 "smarty_internal_templateparser.y" 
    2355     function yy_r33(){ 
     2400#line 2396 "smarty_internal_templateparser.php" 
     2401#line 340 "smarty_internal_templateparser.y" 
     2402    function yy_r34(){ 
    23562403    $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)); 
    23572404    } 
    2358 #line 2354 "smarty_internal_templateparser.php" 
    2359 #line 337 "smarty_internal_templateparser.y" 
    2360     function yy_r34(){ 
     2405#line 2401 "smarty_internal_templateparser.php" 
     2406#line 344 "smarty_internal_templateparser.y" 
     2407    function yy_r35(){ 
    23612408    $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'])); 
    23622409    } 
    2363 #line 2359 "smarty_internal_templateparser.php" 
    2364 #line 342 "smarty_internal_templateparser.y" 
    2365     function yy_r35(){ 
     2410#line 2406 "smarty_internal_templateparser.php" 
     2411#line 349 "smarty_internal_templateparser.y" 
     2412    function yy_r36(){ 
    23662413    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor); 
    23672414    } 
    2368 #line 2364 "smarty_internal_templateparser.php" 
    2369 #line 346 "smarty_internal_templateparser.y" 
    2370     function yy_r36(){ 
     2415#line 2411 "smarty_internal_templateparser.php" 
     2416#line 353 "smarty_internal_templateparser.y" 
     2417    function yy_r37(){ 
    23712418    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array()); 
    23722419    } 
    2373 #line 2369 "smarty_internal_templateparser.php" 
    2374 #line 351 "smarty_internal_templateparser.y" 
    2375     function yy_r37(){ 
     2420#line 2416 "smarty_internal_templateparser.php" 
     2421#line 358 "smarty_internal_templateparser.y" 
     2422    function yy_r38(){ 
    23762423    $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)); 
    23772424    } 
    2378 #line 2374 "smarty_internal_templateparser.php" 
    2379 #line 356 "smarty_internal_templateparser.y" 
    2380     function yy_r38(){ 
     2425#line 2421 "smarty_internal_templateparser.php" 
     2426#line 363 "smarty_internal_templateparser.y" 
     2427    function yy_r39(){ 
    23812428    $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo '; 
    23822429    $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>'; 
    23832430    } 
    2384 #line 2380 "smarty_internal_templateparser.php" 
    2385 #line 362 "smarty_internal_templateparser.y" 
    2386     function yy_r39(){ 
     2431#line 2427 "smarty_internal_templateparser.php" 
     2432#line 369 "smarty_internal_templateparser.y" 
     2433    function yy_r40(){ 
    23872434    $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 '; 
    23882435    $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>'; 
    23892436    } 
    2390 #line 2386 "smarty_internal_templateparser.php" 
    2391 #line 368 "smarty_internal_templateparser.y" 
    2392     function yy_r40(){ 
     2437#line 2433 "smarty_internal_templateparser.php" 
     2438#line 375 "smarty_internal_templateparser.y" 
     2439    function yy_r41(){ 
    23932440    $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->lex->ldel_length)); 
    23942441    $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); 
    23952442    } 
    2396 #line 2392 "smarty_internal_templateparser.php" 
    2397 #line 373 "smarty_internal_templateparser.y" 
    2398     function yy_r41(){ 
     2443#line 2439 "smarty_internal_templateparser.php" 
     2444#line 380 "smarty_internal_templateparser.y" 
     2445    function yy_r42(){ 
    23992446    $tag = trim(substr($this->yystack[$this->yyidx + -3]->minor,$this->lex->ldel_length)); 
    24002447    $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)); 
    24012448    } 
    2402 #line 2398 "smarty_internal_templateparser.php" 
    2403 #line 378 "smarty_internal_templateparser.y" 
    2404     function yy_r42(){ 
     2449#line 2445 "smarty_internal_templateparser.php" 
     2450#line 385 "smarty_internal_templateparser.y" 
     2451    function yy_r43(){ 
    24052452    $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->lex->ldel_length)); 
    24062453    $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); 
    24072454    } 
    2408 #line 2404 "smarty_internal_templateparser.php" 
    2409 #line 389 "smarty_internal_templateparser.y" 
    2410     function yy_r44(){ 
     2455#line 2451 "smarty_internal_templateparser.php" 
     2456#line 396 "smarty_internal_templateparser.y" 
     2457    function yy_r45(){ 
    24112458    $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); 
    24122459    } 
    2413 #line 2409 "smarty_internal_templateparser.php" 
    2414 #line 393 "smarty_internal_templateparser.y" 
    2415     function yy_r45(){ 
     2460#line 2456 "smarty_internal_templateparser.php" 
     2461#line 400 "smarty_internal_templateparser.y" 
     2462    function yy_r46(){ 
    24162463    $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; 
    24172464    } 
    2418 #line 2414 "smarty_internal_templateparser.php" 
    2419 #line 401 "smarty_internal_templateparser.y" 
    2420     function yy_r47(){ 
     2465#line 2461 "smarty_internal_templateparser.php" 
     2466#line 408 "smarty_internal_templateparser.y" 
     2467    function yy_r48(){ 
    24212468    $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); 
    24222469    } 
    2423 #line 2419 "smarty_internal_templateparser.php" 
    2424 #line 405 "smarty_internal_templateparser.y" 
    2425     function yy_r48(){ 
     2470#line 2466 "smarty_internal_templateparser.php" 
     2471#line 412 "smarty_internal_templateparser.y" 
     2472    function yy_r49(){ 
    24262473    $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); 
    24272474    } 
    2428 #line 2424 "smarty_internal_templateparser.php" 
    2429 #line 410 "smarty_internal_templateparser.y" 
    2430     function yy_r49(){ 
     2475#line 2471 "smarty_internal_templateparser.php" 
     2476#line 417 "smarty_internal_templateparser.y" 
     2477    function yy_r50(){ 
    24312478    $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + -1]->minor); 
    24322479    } 
    2433 #line 2429 "smarty_internal_templateparser.php" 
    2434 #line 415 "smarty_internal_templateparser.y" 
    2435     function yy_r50(){ 
     2480#line 2476 "smarty_internal_templateparser.php" 
     2481#line 422 "smarty_internal_templateparser.y" 
     2482    function yy_r51(){ 
    24362483    $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)))); 
    24372484    } 
    2438 #line 2434 "smarty_internal_templateparser.php" 
    2439 #line 419 "smarty_internal_templateparser.y" 
    2440     function yy_r51(){ 
     2485#line 2481 "smarty_internal_templateparser.php" 
     2486#line 426 "smarty_internal_templateparser.y" 
     2487    function yy_r52(){ 
    24412488    $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)))); 
    24422489    } 
    2443 #line 2439 "smarty_internal_templateparser.php" 
    2444 #line 423 "smarty_internal_templateparser.y" 
    2445     function yy_r52(){ 
     2490#line 2486 "smarty_internal_templateparser.php" 
     2491#line 430 "smarty_internal_templateparser.y" 
     2492    function yy_r53(){ 
    24462493    $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)))); 
    24472494    } 
    2448 #line 2444 "smarty_internal_templateparser.php" 
    2449 #line 427 "smarty_internal_templateparser.y" 
    2450     function yy_r53(){ 
     2495#line 2491 "smarty_internal_templateparser.php" 
     2496#line 434 "smarty_internal_templateparser.y" 
     2497    function yy_r54(){ 
    24512498    $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)))); 
    24522499    } 
    2453 #line 2449 "smarty_internal_templateparser.php" 
    2454 #line 432 "smarty_internal_templateparser.y" 
    2455     function yy_r54(){ 
     2500#line 2496 "smarty_internal_templateparser.php" 
     2501#line 439 "smarty_internal_templateparser.y" 
     2502    function yy_r55(){ 
    24562503    $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)))); 
    24572504    } 
    2458 #line 2454 "smarty_internal_templateparser.php" 
    2459 #line 436 "smarty_internal_templateparser.y" 
    2460     function yy_r55(){ 
     2505#line 2501 "smarty_internal_templateparser.php" 
     2506#line 443 "smarty_internal_templateparser.y" 
     2507    function yy_r56(){ 
    24612508    $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -3]->minor),$this->yystack[$this->yyidx + -2]->minor)),$this->yystack[$this->yyidx + -1]->minor))); 
    24622509    } 
    2463 #line 2459 "smarty_internal_templateparser.php" 
    2464 #line 441 "smarty_internal_templateparser.y" 
    2465     function yy_r56(){ 
     2510#line 2506 "smarty_internal_templateparser.php" 
     2511#line 448 "smarty_internal_templateparser.y" 
     2512    function yy_r57(){ 
    24662513    $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler); 
    24672514    } 
    2468 #line 2464 "smarty_internal_templateparser.php" 
    2469 #line 447 "smarty_internal_templateparser.y" 
    2470     function yy_r57(){ 
     2515#line 2511 "smarty_internal_templateparser.php" 
     2516#line 454 "smarty_internal_templateparser.y" 
     2517    function yy_r58(){ 
    24712518    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array()); 
    24722519    } 
    2473 #line 2469 "smarty_internal_templateparser.php" 
    2474 #line 451 "smarty_internal_templateparser.y" 
    2475     function yy_r58(){ 
     2520#line 2516 "smarty_internal_templateparser.php" 
     2521#line 458 "smarty_internal_templateparser.y" 
     2522    function yy_r59(){ 
    24762523    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + -1]->minor)); 
    24772524    } 
    2478 #line 2474 "smarty_internal_templateparser.php" 
    2479 #line 456 "smarty_internal_templateparser.y" 
    2480     function yy_r59(){ 
     2525#line 2521 "smarty_internal_templateparser.php" 
     2526#line 463 "smarty_internal_templateparser.y" 
     2527    function yy_r60(){ 
    24812528    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor)); 
    24822529    } 
    2483 #line 2479 "smarty_internal_templateparser.php" 
    2484 #line 460 "smarty_internal_templateparser.y" 
    2485     function yy_r60(){ 
     2530#line 2526 "smarty_internal_templateparser.php" 
     2531#line 467 "smarty_internal_templateparser.y" 
     2532    function yy_r61(){ 
    24862533    $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)); 
    24872534    } 
    2488 #line 2484 "smarty_internal_templateparser.php" 
    2489 #line 468 "smarty_internal_templateparser.y" 
    2490     function yy_r61(){ 
     2535#line 2531 "smarty_internal_templateparser.php" 
     2536#line 475 "smarty_internal_templateparser.y" 
     2537    function yy_r62(){ 
    24912538    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; 
    24922539    $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor; 
    24932540    } 
    2494 #line 2490 "smarty_internal_templateparser.php" 
    2495 #line 474 "smarty_internal_templateparser.y" 
    2496     function yy_r62(){ 
     2541#line 2537 "smarty_internal_templateparser.php" 
     2542#line 481 "smarty_internal_templateparser.y" 
     2543    function yy_r63(){ 
    24972544    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); 
    24982545    } 
    2499 #line 2495 "smarty_internal_templateparser.php" 
    2500 #line 479 "smarty_internal_templateparser.y" 
    2501     function yy_r63(){ 
     2546#line 2542 "smarty_internal_templateparser.php" 
     2547#line 486 "smarty_internal_templateparser.y" 
     2548    function yy_r64(){ 
    25022549    $this->_retvalue = array(); 
    25032550    } 
    2504 #line 2500 "smarty_internal_templateparser.php" 
    2505 #line 484 "smarty_internal_templateparser.y" 
    2506     function yy_r64(){ 
     2551#line 2547 "smarty_internal_templateparser.php" 
     2552#line 491 "smarty_internal_templateparser.y" 
     2553    function yy_r65(){ 
    25072554    if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) { 
    25082555        $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'true'); 
     
    25152562    } 
    25162563    } 
    2517 #line 2513 "smarty_internal_templateparser.php" 
    2518 #line 496 "smarty_internal_templateparser.y" 
    2519     function yy_r65(){ 
     2564#line 2560 "smarty_internal_templateparser.php" 
     2565#line 503 "smarty_internal_templateparser.y" 
     2566    function yy_r66(){ 
    25202567    $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); 
    25212568    } 
    2522 #line 2518 "smarty_internal_templateparser.php" 
    2523 #line 504 "smarty_internal_templateparser.y" 
    2524     function yy_r67(){ 
     2569#line 2565 "smarty_internal_templateparser.php" 
     2570#line 511 "smarty_internal_templateparser.y" 
     2571    function yy_r68(){ 
    25252572    $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'"; 
    25262573    } 
    2527 #line 2523 "smarty_internal_templateparser.php" 
    2528 #line 529 "smarty_internal_templateparser.y" 
    2529     function yy_r72(){ 
     2574#line 2570 "smarty_internal_templateparser.php" 
     2575#line 536 "smarty_internal_templateparser.y" 
     2576    function yy_r73(){ 
    25302577    $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; 
    25312578    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; 
    25322579    } 
    2533 #line 2529 "smarty_internal_templateparser.php" 
    2534 #line 534 "smarty_internal_templateparser.y" 
    2535     function yy_r73(){ 
     2580#line 2576 "smarty_internal_templateparser.php" 
     2581#line 541 "smarty_internal_templateparser.y" 
     2582    function yy_r74(){ 
    25362583    $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); 
    25372584    } 
    2538 #line 2534 "smarty_internal_templateparser.php" 
    2539 #line 562 "smarty_internal_templateparser.y" 
    2540     function yy_r78(){ 
     2585#line 2581 "smarty_internal_templateparser.php" 
     2586#line 569 "smarty_internal_templateparser.y" 
     2587    function yy_r79(){ 
    25412588    $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')'; 
    25422589    } 
    2543 #line 2539 "smarty_internal_templateparser.php" 
    2544 #line 567 "smarty_internal_templateparser.y" 
    2545     function yy_r79(){ 
     2590#line 2586 "smarty_internal_templateparser.php" 
     2591#line 574 "smarty_internal_templateparser.y" 
     2592    function yy_r80(){ 
    25462593    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor; 
    25472594    } 
    2548 #line 2544 "smarty_internal_templateparser.php" 
    2549 #line 586 "smarty_internal_templateparser.y" 
    2550     function yy_r83(){ 
     2595#line 2591 "smarty_internal_templateparser.php" 
     2596#line 593 "smarty_internal_templateparser.y" 
     2597    function yy_r84(){ 
    25512598    $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor)); 
    25522599    } 
    2553 #line 2549 "smarty_internal_templateparser.php" 
    2554 #line 592 "smarty_internal_templateparser.y" 
    2555     function yy_r84(){ 
     2600#line 2596 "smarty_internal_templateparser.php" 
     2601#line 599 "smarty_internal_templateparser.y" 
     2602    function yy_r85(){ 
    25562603    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; 
    25572604    } 
    2558 #line 2554 "smarty_internal_templateparser.php" 
    2559 #line 596 "smarty_internal_templateparser.y" 
    2560     function yy_r85(){ 
     2605#line 2601 "smarty_internal_templateparser.php" 
     2606#line 603 "smarty_internal_templateparser.y" 
     2607    function yy_r86(){ 
    25612608    $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; 
    25622609    } 
    2563 #line 2559 "smarty_internal_templateparser.php" 
    2564 #line 600 "smarty_internal_templateparser.y" 
    2565     function yy_r86(){ 
     2610#line 2606 "smarty_internal_templateparser.php" 
     2611#line 607 "smarty_internal_templateparser.y" 
     2612    function yy_r87(){ 
    25662613    $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; 
    25672614    } 
    2568 #line 2564 "smarty_internal_templateparser.php" 
    2569 #line 608 "smarty_internal_templateparser.y" 
    2570     function yy_r88(){ 
     2615#line 2611 "smarty_internal_templateparser.php" 
     2616#line 615 "smarty_internal_templateparser.y" 
     2617    function yy_r89(){ 
    25712618    $this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; 
    25722619    } 
    2573 #line 2569 "smarty_internal_templateparser.php" 
    2574 #line 612 "smarty_internal_templateparser.y" 
    2575     function yy_r89(){ 
     2620#line 2616 "smarty_internal_templateparser.php" 
     2621#line 619 "smarty_internal_templateparser.y" 
     2622    function yy_r90(){ 
    25762623    $this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; 
    25772624    } 
    2578 #line 2574 "smarty_internal_templateparser.php" 
    2579 #line 616 "smarty_internal_templateparser.y" 
    2580     function yy_r90(){ 
     2625#line 2621 "smarty_internal_templateparser.php" 
     2626#line 623 "smarty_internal_templateparser.y" 
     2627    function yy_r91(){ 
    25812628    $this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; 
    25822629    } 
    2583 #line 2579 "smarty_internal_templateparser.php" 
    2584 #line 620 "smarty_internal_templateparser.y" 
    2585     function yy_r91(){ 
     2630#line 2626 "smarty_internal_templateparser.php" 
     2631#line 627 "smarty_internal_templateparser.y" 
     2632    function yy_r92(){ 
    25862633    $this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; 
    25872634    } 
    2588 #line 2584 "smarty_internal_templateparser.php" 
    2589 #line 624 "smarty_internal_templateparser.y" 
    2590     function yy_r92(){ 
     2635#line 2631 "smarty_internal_templateparser.php" 
     2636#line 631 "smarty_internal_templateparser.y" 
     2637    function yy_r93(){ 
    25912638    $this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; 
    25922639    } 
    2593 #line 2589 "smarty_internal_templateparser.php" 
    2594 #line 628 "smarty_internal_templateparser.y" 
    2595     function yy_r93(){ 
     2640#line 2636 "smarty_internal_templateparser.php" 
     2641#line 635 "smarty_internal_templateparser.y" 
     2642    function yy_r94(){ 
    25962643    $this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; 
    25972644    } 
    2598 #line 2594 "smarty_internal_templateparser.php" 
    2599 #line 652 "smarty_internal_templateparser.y" 
    2600     function yy_r99(){ 
     2645#line 2641 "smarty_internal_templateparser.php" 
     2646#line 659 "smarty_internal_templateparser.y" 
     2647    function yy_r100(){ 
    26012648    $this->prefix_number++; 
    26022649    $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; 
    26032650    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number; 
    26042651    } 
    2605 #line 2601 "smarty_internal_templateparser.php" 
    2606 #line 661 "smarty_internal_templateparser.y" 
    2607     function yy_r100(){ 
     2652#line 2648 "smarty_internal_templateparser.php" 
     2653#line 668 "smarty_internal_templateparser.y" 
     2654    function yy_r101(){ 
    26082655    $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.' ? '. $this->compileVariable("'".$this->yystack[$this->yyidx + -2]->minor."'") . ' : '.$this->yystack[$this->yyidx + 0]->minor; 
    26092656    } 
    2610 #line 2606 "smarty_internal_templateparser.php" 
    2611 #line 665 "smarty_internal_templateparser.y" 
    2612     function yy_r101(){ 
     2657#line 2653 "smarty_internal_templateparser.php" 
     2658#line 672 "smarty_internal_templateparser.y" 
     2659    function yy_r102(){ 
    26132660    $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; 
    26142661    } 
    2615 #line 2611 "smarty_internal_templateparser.php" 
    2616 #line 680 "smarty_internal_templateparser.y" 
    2617     function yy_r104(){ 
     2662#line 2658 "smarty_internal_templateparser.php" 
     2663#line 687 "smarty_internal_templateparser.y" 
     2664    function yy_r105(){ 
    26182665    $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; 
    26192666    } 
    2620 #line 2616 "smarty_internal_templateparser.php" 
    2621 #line 701 "smarty_internal_templateparser.y" 
    2622     function yy_r109(){ 
     2667#line 2663 "smarty_internal_templateparser.php" 
     2668#line 708 "smarty_internal_templateparser.y" 
     2669    function yy_r110(){ 
    26232670    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; 
    26242671    } 
    2625 #line 2621 "smarty_internal_templateparser.php" 
    2626 #line 705 "smarty_internal_templateparser.y" 
    2627     function yy_r110(){ 
     2672#line 2668 "smarty_internal_templateparser.php" 
     2673#line 712 "smarty_internal_templateparser.y" 
     2674    function yy_r111(){ 
    26282675    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'; 
    26292676    } 
    2630 #line 2626 "smarty_internal_templateparser.php" 
    2631 #line 709 "smarty_internal_templateparser.y" 
    2632     function yy_r111(){ 
     2677#line 2673 "smarty_internal_templateparser.php" 
     2678#line 716 "smarty_internal_templateparser.y" 
     2679    function yy_r112(){ 
    26332680    $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor; 
    26342681    } 
    2635 #line 2631 "smarty_internal_templateparser.php" 
    2636 #line 714 "smarty_internal_templateparser.y" 
    2637     function yy_r112(){ 
     2682#line 2678 "smarty_internal_templateparser.php" 
     2683#line 721 "smarty_internal_templateparser.y" 
     2684    function yy_r113(){ 
    26382685    if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) { 
    26392686        $this->_retvalue = 'true'; 
     
    26462693    } 
    26472694    } 
    2648 #line 2644 "smarty_internal_templateparser.php" 
    2649 #line 732 "smarty_internal_templateparser.y" 
    2650     function yy_r114(){ 
     2695#line 2691 "smarty_internal_templateparser.php" 
     2696#line 739 "smarty_internal_templateparser.y" 
     2697    function yy_r115(){ 
    26512698    $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; 
    26522699    } 
    2653 #line 2649 "smarty_internal_templateparser.php" 
    2654 #line 747 "smarty_internal_templateparser.y" 
    2655     function yy_r117(){ 
     2700#line 2696 "smarty_internal_templateparser.php" 
     2701#line 754 "smarty_internal_templateparser.y" 
     2702    function yy_r118(){ 
    26562703    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)) { 
    26572704        if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { 
     
    26642711    } 
    26652712    } 
    2666 #line 2662 "smarty_internal_templateparser.php" 
    2667 #line 759 "smarty_internal_templateparser.y" 
    2668     function yy_r118(){ 
     2713#line 2709 "smarty_internal_templateparser.php" 
     2714#line 766 "smarty_internal_templateparser.y" 
     2715    function yy_r119(){ 
    26692716    if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') { 
    26702717        $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).'::'.$this->yystack[$this->yyidx + 0]->minor; 
     
    26732720    } 
    26742721    } 
    2675 #line 2671 "smarty_internal_templateparser.php" 
    2676 #line 768 "smarty_internal_templateparser.y" 
    2677     function yy_r119(){ 
     2722#line 2718 "smarty_internal_templateparser.php" 
     2723#line 775 "smarty_internal_templateparser.y" 
     2724    function yy_r120(){ 
    26782725    $this->prefix_number++; 
    26792726    $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; 
    26802727    $this->_retvalue = '$_tmp'.$this->prefix_number; 
    26812728    } 
    2682 #line 2678 "smarty_internal_templateparser.php" 
    2683 #line 783 "smarty_internal_templateparser.y" 
    2684     function yy_r121(){ 
     2729#line 2725 "smarty_internal_templateparser.php" 
     2730#line 790 "smarty_internal_templateparser.y" 
     2731    function yy_r122(){ 
    26852732    if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { 
    26862733        $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']); 
     
    26932740    } 
    26942741    } 
    2695 #line 2691 "smarty_internal_templateparser.php" 
    2696 #line 796 "smarty_internal_templateparser.y" 
    2697     function yy_r122(){ 
     2742#line 2738 "smarty_internal_templateparser.php" 
     2743#line 803 "smarty_internal_templateparser.y" 
     2744    function yy_r123(){ 
    26982745    $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor; 
    26992746    } 
    2700 #line 2696 "smarty_internal_templateparser.php" 
    2701 #line 806 "smarty_internal_templateparser.y" 
    2702     function yy_r124(){ 
     2747#line 2743 "smarty_internal_templateparser.php" 
     2748#line 813 "smarty_internal_templateparser.y" 
     2749    function yy_r125(){ 
    27032750    $this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')'; 
    27042751    } 
    2705 #line 2701 "smarty_internal_templateparser.php" 
    2706 #line 810 "smarty_internal_templateparser.y" 
    2707     function yy_r125(){ 
     2752#line 2748 "smarty_internal_templateparser.php" 
     2753#line 817 "smarty_internal_templateparser.y" 
     2754    function yy_r126(){ 
    27082755    $this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')'; 
    27092756    } 
    2710 #line 2706 "smarty_internal_templateparser.php" 
    2711 #line 814 "smarty_internal_templateparser.y" 
    2712     function yy_r126(){ 
     2757#line 2753 "smarty_internal_templateparser.php" 
     2758#line 821 "smarty_internal_templateparser.y" 
     2759    function yy_r127(){ 
    27132760    $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); 
    27142761    } 
    2715 #line 2711 "smarty_internal_templateparser.php" 
    2716 #line 827 "smarty_internal_templateparser.y" 
    2717     function yy_r128(){ 
     2762#line 2758 "smarty_internal_templateparser.php" 
     2763#line 834 "smarty_internal_templateparser.y" 
     2764    function yy_r129(){ 
    27182765    return; 
    27192766    } 
    2720 #line 2716 "smarty_internal_templateparser.php" 
    2721 #line 833 "smarty_internal_templateparser.y" 
    2722     function yy_r129(){ 
     2767#line 2763 "smarty_internal_templateparser.php" 
     2768#line 840 "smarty_internal_templateparser.y" 
     2769    function yy_r130(){ 
    27232770    $this->_retvalue = '['.$this->compileVariable($this->yystack[$this->yyidx + 0]->minor).']'; 
    27242771    } 
    2725 #line 2721 "smarty_internal_templateparser.php" 
    2726 #line 837 "smarty_internal_templateparser.y" 
    2727     function yy_r130(){ 
     2772#line 2768 "smarty_internal_templateparser.php" 
     2773#line 844 "smarty_internal_templateparser.y" 
     2774    function yy_r131(){ 
    27282775    $this->_retvalue = '['.$this->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']'; 
    27292776    } 
    2730 #line 2726 "smarty_internal_templateparser.php" 
    2731 #line 841 "smarty_internal_templateparser.y" 
    2732     function yy_r131(){ 
     2777#line 2773 "smarty_internal_templateparser.php" 
     2778#line 848 "smarty_internal_templateparser.y" 
     2779    function yy_r132(){ 
    27332780    $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; 
    27342781    } 
    2735 #line 2731 "smarty_internal_templateparser.php" 
    2736 #line 845 "smarty_internal_templateparser.y" 
    2737     function yy_r132(){ 
     2782#line 2778 "smarty_internal_templateparser.php" 
     2783#line 852 "smarty_internal_templateparser.y" 
     2784    function yy_r133(){ 
    27382785    $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; 
    27392786    } 
    2740 #line 2736 "smarty_internal_templateparser.php" 
    2741 #line 849 "smarty_internal_templateparser.y" 
    2742     function yy_r133(){ 
     2787#line 2783 "smarty_internal_templateparser.php" 
     2788#line 856 "smarty_internal_templateparser.y" 
     2789    function yy_r134(){ 
    27432790    $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; 
    27442791    } 
    2745 #line 2741 "smarty_internal_templateparser.php" 
    2746 #line 854 "smarty_internal_templateparser.y" 
    2747     function yy_r134(){ 
     2792#line 2788 "smarty_internal_templateparser.php" 
     2793#line 861 "smarty_internal_templateparser.y" 
     2794    function yy_r135(){ 
    27482795    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; 
    27492796    } 
    2750 #line 2746 "smarty_internal_templateparser.php" 
    2751 #line 858 "smarty_internal_templateparser.y" 
    2752     function yy_r135(){ 
     2797#line 2793 "smarty_internal_templateparser.php" 
     2798#line 865 "smarty_internal_templateparser.y" 
     2799    function yy_r136(){ 
    27532800    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; 
    27542801    } 
    2755 #line 2751 "smarty_internal_templateparser.php" 
    2756 #line 868 "smarty_internal_templateparser.y" 
    2757     function yy_r137(){ 
     2802#line 2798 "smarty_internal_templateparser.php" 
     2803#line 875 "smarty_internal_templateparser.y" 
     2804    function yy_r138(){ 
    27582805    $this->_retvalue = '[]'; 
    27592806    } 
    2760 #line 2756 "smarty_internal_templateparser.php" 
    2761 #line 881 "smarty_internal_templateparser.y" 
    2762     function yy_r139(){ 
     2807#line 2803 "smarty_internal_templateparser.php" 
     2808#line 888 "smarty_internal_templateparser.y" 
     2809    function yy_r140(){ 
    27632810    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; 
    27642811    } 
    2765 #line 2761 "smarty_internal_templateparser.php" 
    2766 #line 886 "smarty_internal_templateparser.y" 
    2767     function yy_r140(){ 
     2812#line 2808 "smarty_internal_templateparser.php" 
     2813#line 893 "smarty_internal_templateparser.y" 
     2814    function yy_r141(){ 
    27682815    $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; 
    27692816    } 
    2770 #line 2766 "smarty_internal_templateparser.php" 
    2771 #line 891 "smarty_internal_templateparser.y" 
    2772     function yy_r141(){ 
    2773     $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; 
    2774     } 
    2775 #line 2771 "smarty_internal_templateparser.php" 
     2817#line 2813 "smarty_internal_templateparser.php" 
    27762818#line 898 "smarty_internal_templateparser.y" 
    27772819    function yy_r142(){ 
     2820    $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; 
     2821    } 
     2822#line 2818 "smarty_internal_templateparser.php" 
     2823#line 905 "smarty_internal_templateparser.y" 
     2824    function yy_r143(){ 
    27782825    if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') { 
    27792826        $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor; 
     
    27822829    } 
    27832830    } 
    2784 #line 2780 "smarty_internal_templateparser.php" 
    2785 #line 907 "smarty_internal_templateparser.y" 
    2786     function yy_r143(){ 
     2831#line 2827 "smarty_internal_templateparser.php" 
     2832#line 914 "smarty_internal_templateparser.y" 
     2833    function yy_r144(){ 
    27872834    $this->_retvalue  = $this->yystack[$this->yyidx + 0]->minor; 
    27882835    } 
    2789 #line 2785 "smarty_internal_templateparser.php" 
    2790 #line 912 "smarty_internal_templateparser.y" 
    2791     function yy_r144(){ 
     2836#line 2832 "smarty_internal_templateparser.php" 
     2837#line 919 "smarty_internal_templateparser.y" 
     2838    function yy_r145(){ 
    27922839    $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; 
    27932840    } 
    2794 #line 2790 "smarty_internal_templateparser.php" 
    2795 #line 917 "smarty_internal_templateparser.y" 
    2796     function yy_r145(){ 
     2841#line 2837 "smarty_internal_templateparser.php" 
     2842#line 924 "smarty_internal_templateparser.y" 
     2843    function yy_r146(){ 
    27972844    if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '_') { 
    27982845        $this->compiler->trigger_template_error (self::Err1); 
     
    28002847    $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; 
    28012848    } 
    2802 #line 2798 "smarty_internal_templateparser.php" 
    2803 #line 924 "smarty_internal_templateparser.y" 
    2804     function yy_r146(){ 
    2805     if ($this->security) { 
    2806         $this->compiler->trigger_template_error (self::Err2); 
    2807     } 
    2808     $this->_retvalue = '->{'.$this->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}'; 
    2809     } 
    2810 #line 2806 "smarty_internal_templateparser.php" 
     2849#line 2845 "smarty_internal_templateparser.php" 
    28112850#line 931 "smarty_internal_templateparser.y" 
    28122851    function yy_r147(){ 
     
    28142853        $this->compiler->trigger_template_error (self::Err2); 
    28152854    } 
    2816     $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; 
    2817     } 
    2818 #line 2814 "smarty_internal_templateparser.php" 
     2855    $this->_retvalue = '->{'.$this->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}'; 
     2856    } 
     2857#line 2853 "smarty_internal_templateparser.php" 
    28192858#line 938 "smarty_internal_templateparser.y" 
    28202859    function yy_r148(){ 
     
    28222861        $this->compiler->trigger_template_error (self::Err2); 
    28232862    } 
     2863    $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; 
     2864    } 
     2865#line 2861 "smarty_internal_templateparser.php" 
     2866#line 945 "smarty_internal_templateparser.y" 
     2867    function yy_r149(){ 
     2868    if ($this->security) { 
     2869        $this->compiler->trigger_template_error (self::Err2); 
     2870    } 
    28242871    $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; 
    28252872    } 
    2826 #line 2822 "smarty_internal_templateparser.php" 
    2827 #line 946 "smarty_internal_templateparser.y" 
    2828     function yy_r149(){ 
     2873#line 2869 "smarty_internal_templateparser.php" 
     2874#line 953 "smarty_internal_templateparser.y" 
     2875    function yy_r150(){ 
    28292876    $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; 
    28302877    } 
    2831 #line 2827 "smarty_internal_templateparser.php" 
    2832 #line 954 "smarty_internal_templateparser.y" 
    2833     function yy_r150(){ 
     2878#line 2874 "smarty_internal_templateparser.php" 
     2879#line 961 "smarty_internal_templateparser.y" 
     2880    function yy_r151(){ 
    28342881    if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) { 
    28352882        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)) { 
     
    28652912    } 
    28662913    } 
    2867 #line 2863 "smarty_internal_templateparser.php" 
    2868 #line 992 "smarty_internal_templateparser.y" 
    2869     function yy_r151(){ 
     2914#line 2910 "smarty_internal_templateparser.php" 
     2915#line 999 "smarty_internal_templateparser.y" 
     2916    function yy_r152(){ 
    28702917    if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') { 
    28712918        $this->compiler->trigger_template_error (self::Err1); 
     
    28732920    $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")"; 
    28742921    } 
    2875 #line 2871 "smarty_internal_templateparser.php" 
    2876 #line 999 "smarty_internal_templateparser.y" 
    2877     function yy_r152(){ 
     2922#line 2918 "smarty_internal_templateparser.php" 
     2923#line 1006 "smarty_internal_templateparser.y" 
     2924    function yy_r153(){ 
    28782925    if ($this->security) { 
    28792926        $this->compiler->trigger_template_error (self::Err2); 
     
    28832930    $this->_retvalue = '$_tmp'.$this->prefix_number.'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; 
    28842931    } 
    2885 #line 2881 "smarty_internal_templateparser.php" 
    2886 #line 1010 "smarty_internal_templateparser.y" 
    2887     function yy_r153(){ 
     2932#line 2928 "smarty_internal_templateparser.php" 
     2933#line 1017 "smarty_internal_templateparser.y" 
     2934    function yy_r154(){ 
    28882935    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor)); 
    28892936    } 
    2890 #line 2886 "smarty_internal_templateparser.php" 
    2891 #line 1027 "smarty_internal_templateparser.y" 
    2892     function yy_r156(){ 
     2937#line 2933 "smarty_internal_templateparser.php" 
     2938#line 1034 "smarty_internal_templateparser.y" 
     2939    function yy_r157(){ 
    28932940    $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))); 
    28942941    } 
    2895 #line 2891 "smarty_internal_templateparser.php" 
    2896 #line 1031 "smarty_internal_templateparser.y" 
    2897     function yy_r157(){ 
     2942#line 2938 "smarty_internal_templateparser.php" 
     2943#line 1038 "smarty_internal_templateparser.y" 
     2944    function yy_r158(){ 
    28982945    $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)); 
    28992946    } 
    2900 #line 2896 "smarty_internal_templateparser.php" 
    2901 #line 1039 "smarty_internal_templateparser.y" 
    2902     function yy_r159(){ 
     2947#line 2943 "smarty_internal_templateparser.php" 
     2948#line 1046 "smarty_internal_templateparser.y" 
     2949    function yy_r160(){ 
    29032950    $this->_retvalue =  array($this->yystack[$this->yyidx + 0]->minor); 
    29042951    } 
    2905 #line 2901 "smarty_internal_templateparser.php" 
    2906 #line 1047 "smarty_internal_templateparser.y" 
    2907     function yy_r160(){ 
     2952#line 2948 "smarty_internal_templateparser.php" 
     2953#line 1054 "smarty_internal_templateparser.y" 
     2954    function yy_r161(){ 
    29082955    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); 
    29092956    } 
    2910 #line 2906 "smarty_internal_templateparser.php" 
    2911 #line 1081 "smarty_internal_templateparser.y" 
    2912     function yy_r167(){ 
     2957#line 2953 "smarty_internal_templateparser.php" 
     2958#line 1088 "smarty_internal_templateparser.y" 
     2959    function yy_r168(){ 
    29132960    $this->_retvalue = '$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; 
    29142961    } 
    2915 #line 2911 "smarty_internal_templateparser.php" 
    2916 #line 1086 "smarty_internal_templateparser.y" 
    2917     function yy_r168(){ 
     2962#line 2958 "smarty_internal_templateparser.php" 
     2963#line 1093 "smarty_internal_templateparser.y" 
     2964    function yy_r169(){ 
    29182965    $this->_retvalue = '$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; 
    29192966    } 
    2920 #line 2916 "smarty_internal_templateparser.php" 
    2921 #line 1092 "smarty_internal_templateparser.y" 
    2922     function yy_r169(){ 
     2967#line 2963 "smarty_internal_templateparser.php" 
     2968#line 1099 "smarty_internal_templateparser.y" 
     2969    function yy_r170(){ 
    29232970    $this->_retvalue = '=='; 
    29242971    } 
    2925 #line 2921 "smarty_internal_templateparser.php" 
    2926 #line 1096 "smarty_internal_templateparser.y" 
    2927     function yy_r170(){ 
     2972#line 2968 "smarty_internal_templateparser.php" 
     2973#line 1103 "smarty_internal_templateparser.y" 
     2974    function yy_r171(){ 
    29282975    $this->_retvalue = '!='; 
    29292976    } 
    2930 #line 2926 "smarty_internal_templateparser.php" 
    2931 #line 1100 "smarty_internal_templateparser.y" 
    2932     function yy_r171(){ 
     2977#line 2973 "smarty_internal_templateparser.php" 
     2978#line 1107 "smarty_internal_templateparser.y" 
     2979    function yy_r172(){ 
    29332980    $this->_retvalue = '>'; 
    29342981    } 
    2935 #line 2931 "smarty_internal_templateparser.php" 
    2936 #line 1104 "smarty_internal_templateparser.y" 
    2937     function yy_r172(){ 
     2982#line 2978 "smarty_internal_templateparser.php" 
     2983#line 1111 "smarty_internal_templateparser.y" 
     2984    function yy_r173(){ 
    29382985    $this->_retvalue = '<'; 
    29392986    } 
    2940 #line 2936 "smarty_internal_templateparser.php" 
    2941 #line 1108 "smarty_internal_templateparser.y" 
    2942     function yy_r173(){ 
     2987#line 2983 "smarty_internal_templateparser.php" 
     2988#line 1115 "smarty_internal_templateparser.y" 
     2989    function yy_r174(){ 
    29432990    $this->_retvalue = '>='; 
    29442991    } 
    2945 #line 2941 "smarty_internal_templateparser.php" 
    2946 #line 1112 "smarty_internal_templateparser.y" 
    2947     function yy_r174(){ 
     2992#line 2988 "smarty_internal_templateparser.php" 
     2993#line 1119 "smarty_internal_templateparser.y" 
     2994    function yy_r175(){ 
    29482995    $this->_retvalue = '<='; 
    29492996    } 
    2950 #line 2946 "smarty_internal_templateparser.php" 
    2951 #line 1116 "smarty_internal_templateparser.y" 
    2952     function yy_r175(){ 
     2997#line 2993 "smarty_internal_templateparser.php" 
     2998#line 1123 "smarty_internal_templateparser.y" 
     2999    function yy_r176(){ 
    29533000    $this->_retvalue = '==='; 
    29543001    } 
    2955 #line 2951 "smarty_internal_templateparser.php" 
    2956 #line 1120 "smarty_internal_templateparser.y" 
    2957     function yy_r176(){ 
     3002#line 2998 "smarty_internal_templateparser.php" 
     3003#line 1127 "smarty_internal_templateparser.y" 
     3004    function yy_r177(){ 
    29583005    $this->_retvalue = '!=='; 
    29593006    } 
    2960 #line 2956 "smarty_internal_templateparser.php" 
    2961 #line 1124 "smarty_internal_templateparser.y" 
    2962     function yy_r177(){ 
     3007#line 3003 "smarty_internal_templateparser.php" 
     3008#line 1131 "smarty_internal_templateparser.y" 
     3009    function yy_r178(){ 
    29633010    $this->_retvalue = '%'; 
    29643011    } 
    2965 #line 2961 "smarty_internal_templateparser.php" 
    2966 #line 1128 "smarty_internal_templateparser.y" 
    2967     function yy_r178(){ 
     3012#line 3008 "smarty_internal_templateparser.php" 
     3013#line 1135 "smarty_internal_templateparser.y" 
     3014    function yy_r179(){ 
    29683015    $this->_retvalue = '&&'; 
    29693016    } 
    2970 #line 2966 "smarty_internal_templateparser.php" 
    2971 #line 1132 "smarty_internal_templateparser.y" 
    2972     function yy_r179(){ 
     3017#line 3013 "smarty_internal_templateparser.php" 
     3018#line 1139 "smarty_internal_templateparser.y" 
     3019    function yy_r180(){ 
    29733020    $this->_retvalue = '||'; 
    29743021    } 
    2975 #line 2971 "smarty_internal_templateparser.php" 
    2976 #line 1136 "smarty_internal_templateparser.y" 
    2977     function yy_r180(){ 
    2978     $this->_retvalue = ' XOR '; 
    2979     } 
    2980 #line 2976 "smarty_internal_templateparser.php" 
     3022#line 3018 "smarty_internal_templateparser.php" 
    29813023#line 1143 "smarty_internal_templateparser.y" 
    29823024    function yy_r181(){ 
     3025    $this->_retvalue = ' XOR '; 
     3026    } 
     3027#line 3023 "smarty_internal_templateparser.php" 
     3028#line 1150 "smarty_internal_templateparser.y" 
     3029    function yy_r182(){ 
    29833030    $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; 
    29843031    } 
    2985 #line 2981 "smarty_internal_templateparser.php" 
    2986 #line 1151 "smarty_internal_templateparser.y" 
    2987     function yy_r183(){ 
     3032#line 3028 "smarty_internal_templateparser.php" 
     3033#line 1158 "smarty_internal_templateparser.y" 
     3034    function yy_r184(){ 
    29883035    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; 
    29893036    } 
    2990 #line 2986 "smarty_internal_templateparser.php" 
    2991 #line 1159 "smarty_internal_templateparser.y" 
    2992     function yy_r185(){ 
     3037#line 3033 "smarty_internal_templateparser.php" 
     3038#line 1166 "smarty_internal_templateparser.y" 
     3039    function yy_r186(){ 
    29933040    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; 
    29943041    } 
    2995 #line 2991 "smarty_internal_templateparser.php" 
    2996 #line 1163 "smarty_internal_templateparser.y" 
    2997     function yy_r186(){ 
     3042#line 3038 "smarty_internal_templateparser.php" 
     3043#line 1170 "smarty_internal_templateparser.y" 
     3044    function yy_r187(){ 
    29983045    $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; 
    29993046    } 
    3000 #line 2996 "smarty_internal_templateparser.php" 
    3001 #line 1175 "smarty_internal_templateparser.y" 
    3002     function yy_r188(){ 
     3047#line 3043 "smarty_internal_templateparser.php" 
     3048#line 1182 "smarty_internal_templateparser.y" 
     3049    function yy_r189(){ 
    30033050    $this->_retvalue = "''"; 
    30043051    } 
    3005 #line 3001 "smarty_internal_templateparser.php" 
    3006 #line 1179 "smarty_internal_templateparser.y" 
    3007     function yy_r189(){ 
     3052#line 3048 "smarty_internal_templateparser.php" 
     3053#line 1186 "smarty_internal_templateparser.y" 
     3054    function yy_r190(){ 
    30083055    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php(); 
    30093056    } 
    3010 #line 3006 "smarty_internal_templateparser.php" 
    3011 #line 1184 "smarty_internal_templateparser.y" 
    3012     function yy_r190(){ 
     3057#line 3053 "smarty_internal_templateparser.php" 
     3058#line 1191 "smarty_internal_templateparser.y" 
     3059    function yy_r191(){ 
    30133060    $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); 
    30143061    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; 
    30153062    } 
    3016 #line 3012 "smarty_internal_templateparser.php" 
    3017 #line 1189 "smarty_internal_templateparser.y" 
    3018     function yy_r191(){ 
     3063#line 3059 "smarty_internal_templateparser.php" 
     3064#line 1196 "smarty_internal_templateparser.y" 
     3065    function yy_r192(){ 
    30193066    $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor); 
    30203067    } 
    3021 #line 3017 "smarty_internal_templateparser.php" 
    3022 #line 1193 "smarty_internal_templateparser.y" 
    3023     function yy_r192(){ 
     3068#line 3064 "smarty_internal_templateparser.php" 
     3069#line 1200 "smarty_internal_templateparser.y" 
     3070    function yy_r193(){ 
    30243071    $this->_retvalue = new _smarty_code($this, $this->yystack[$this->yyidx + -1]->minor); 
    30253072    } 
    3026 #line 3022 "smarty_internal_templateparser.php" 
    3027 #line 1201 "smarty_internal_templateparser.y" 
    3028     function yy_r194(){ 
     3073#line 3069 "smarty_internal_templateparser.php" 
     3074#line 1208 "smarty_internal_templateparser.y" 
     3075    function yy_r195(){ 
    30293076    $this->_retvalue = new _smarty_code($this, '$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value'); 
    30303077    } 
    3031 #line 3027 "smarty_internal_templateparser.php" 
    3032 #line 1209 "smarty_internal_templateparser.y" 
    3033     function yy_r196(){ 
     3078#line 3074 "smarty_internal_templateparser.php" 
     3079#line 1216 "smarty_internal_templateparser.y" 
     3080    function yy_r197(){ 
    30343081    $this->_retvalue = new _smarty_code($this, '('.$this->yystack[$this->yyidx + -1]->minor.')'); 
    30353082    } 
    3036 #line 3032 "smarty_internal_templateparser.php" 
    3037 #line 1213 "smarty_internal_templateparser.y" 
    3038     function yy_r197(){ 
     3083#line 3079 "smarty_internal_templateparser.php" 
     3084#line 1220 "smarty_internal_templateparser.y" 
     3085    function yy_r198(){ 
    30393086    $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor); 
    30403087    } 
    3041 #line 3037 "smarty_internal_templateparser.php" 
    3042 #line 1217 "smarty_internal_templateparser.y" 
    3043     function yy_r198(){ 
     3088#line 3084 "smarty_internal_templateparser.php" 
     3089#line 1224 "smarty_internal_templateparser.y" 
     3090    function yy_r199(){ 
    30443091    $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor); 
    30453092    } 
    3046 #line 3042 "smarty_internal_templateparser.php" 
     3093#line 3089 "smarty_internal_templateparser.php" 
    30473094 
    30483095    private $_retvalue; 
     
    31013148    function yy_syntax_error($yymajor, $TOKEN) 
    31023149    { 
    3103 #line 76 "smarty_internal_templateparser.y" 
     3150#line 77 "smarty_internal_templateparser.y" 
    31043151 
    31053152    $this->internalError = true; 
    31063153    $this->yymajor = $yymajor; 
    31073154    $this->compiler->trigger_template_error(); 
    3108 #line 3105 "smarty_internal_templateparser.php" 
     3155#line 3152 "smarty_internal_templateparser.php" 
    31093156    } 
    31103157 
     
    31173164            $stack = $this->yy_pop_parser_stack(); 
    31183165        } 
    3119 #line 68 "smarty_internal_templateparser.y" 
     3166#line 69 "smarty_internal_templateparser.y" 
    31203167 
    31213168    $this->successful = !$this->internalError; 
     
    31233170    $this->retvalue = $this->_retvalue; 
    31243171    //echo $this->retvalue."\n\n"; 
    3125 #line 3123 "smarty_internal_templateparser.php" 
     3172#line 3170 "smarty_internal_templateparser.php" 
    31263173    } 
    31273174 
  • vendors/smarty/current/sysplugins/smarty_resource.php

    r5823 r6008  
    9191        // intentionally left blank 
    9292    } 
    93      
    94      
     93 
     94 
    9595    /** 
    9696     * modify resource_name according to resource handlers specifications 
     
    104104        return get_class($this) . '#' . $smarty->joined_template_dir . '#' . $resource_name; 
    105105    } 
    106      
     106 
    107107    /** 
    108108     * populate Compiled Object with compiled filepath 
     
    266266                    // try PHP include_path 
    267267                    if (($_filepath = Smarty_Internal_Get_Include_Path::getIncludePath($_filepath)) !== false) { 
    268                         return $_filepath; 
     268                        if ($this->fileExists($source, $_filepath)) { 
     269                            return $_filepath; 
     270                        } 
    269271                    } 
    270272                } 
     
    350352                return $smarty->_resource_handlers[$type]; 
    351353            } 
    352              
     354 
    353355            if (!isset(self::$resources['registered'])) { 
    354356                self::$resources['registered'] = new Smarty_Internal_Resource_Registered(); 
     
    357359                $smarty->_resource_handlers[$type] = self::$resources['registered']; 
    358360            } 
    359              
     361 
    360362            return $smarty->_resource_handlers[$type]; 
    361363        } 
     
    376378                return $smarty->_resource_handlers[$type] = self::$resources[$type]; 
    377379            } 
    378              
     380 
    379381            if (class_exists($_resource_class, false)) { 
    380382                self::$resources[$type] = new $_resource_class(); 
     
    411413        throw new SmartyException("Unkown resource type '{$type}'"); 
    412414    } 
    413      
     415 
    414416    /** 
    415417     * extract resource_type and resource_name from template_resource and config_resource 
     
    435437        } 
    436438    } 
    437      
    438      
     439 
     440 
    439441    /** 
    440442     * modify resource_name according to resource handlers specifications 
     
    444446     * @return string unique resource name 
    445447     */ 
    446       
     448 
    447449    /** 
    448450     * modify template_resource according to resource handlers specifications 
    449451     * 
    450      * @param string $smarty            Smarty instance  
     452     * @param string $smarty            Smarty instance 
    451453     * @param string $template_resource template_resource to extracate resource handler and name of 
    452454     * @return string unique resource name 
     
    459461        return $resource->buildUniqueResourceName($smarty, $name); 
    460462    } 
    461      
     463 
    462464    /** 
    463465     * initialize Source Object for given resource 
     
    476478            $template_resource = $_template->template_resource; 
    477479        } 
    478          
     480 
    479481        // parse resource_name, load resource handler, identify unique resource name 
    480482        self::parseResourceName($template_resource, $smarty->default_resource_type, $name, $type); 
     
    487489            return self::$sources[$_cache_key]; 
    488490        } 
    489          
     491 
    490492        // create source 
    491493        $source = new Smarty_Template_Source($resource, $smarty, $template_resource, $type, $name, $unique_resource_name); 
     
    508510        $config_resource = $_config->config_resource; 
    509511        $smarty = $_config->smarty; 
    510          
     512 
    511513        // parse resource_name 
    512514        self::parseResourceName($config_resource, $smarty->default_config_type, $name, $type); 
    513          
     515 
    514516        // make sure configs are not loaded via anything smarty can't handle 
    515517        if (isset($_incompatible_resources[$type])) { 
     
    520522        $resource = Smarty_Resource::load($smarty, $type); 
    521523        $unique_resource_name = $resource->buildUniqueResourceName($smarty, $name); 
    522          
     524 
    523525        // check runtime cache 
    524526        $_cache_key = 'config|' . $unique_resource_name; 
     
    526528            return self::$sources[$_cache_key]; 
    527529        } 
    528          
     530 
    529531        // create source 
    530532        $source = new Smarty_Config_Source($resource, $smarty, $config_resource, $type, $name, $unique_resource_name); 
    531533        $resource->populate($source, null); 
    532          
     534 
    533535        // runtime cache 
    534536        self::$sources[$_cache_key] = $source; 
     
    595597     */ 
    596598    public $name = null; 
    597      
     599 
    598600    /** 
    599601     * Unique Resource Name 
  • vendors/smarty/current/sysplugins/smarty_security.php

    r5765 r6008  
    5050    public $trusted_dir = array(); 
    5151    /** 
     52     * List of regular expressions (PCRE) that include trusted URIs 
     53     * 
     54     * @var array 
     55     */ 
     56    public $trusted_uri = array(); 
     57    /** 
    5258     * This is an array of trusted static classes. 
    5359     * 
     
    375381        throw new SmartyException("directory '{$_filepath}' not allowed by security setting"); 
    376382    } 
    377  
     383     
     384    /** 
     385     * Check if URI (e.g. {fetch} or {html_image}) is trusted 
     386     * 
     387     * To simplify things, isTrustedUri() resolves all input to "{$PROTOCOL}://{$HOSTNAME}". 
     388     * So "http://username:password@hello.world.example.org:8080/some-path?some=query-string" 
     389     * is reduced to "http://hello.world.example.org" prior to applying the patters from {@link $trusted_uri}. 
     390     * @param string $uri  
     391     * @return boolean true if URI is trusted 
     392     * @throws SmartyException if URI is not trusted 
     393     * @uses $trusted_uri for list of patterns to match against $uri 
     394     */ 
     395    public function isTrustedUri($uri) 
     396    { 
     397        $_uri = parse_url($uri); 
     398        if (!empty($_uri['scheme']) && !empty($_uri['host'])) { 
     399            $_uri = $_uri['scheme'] . '://' . $_uri['host']; 
     400            foreach ($this->trusted_uri as $pattern) { 
     401                if (preg_match($pattern, $_uri)) { 
     402                    return true; 
     403                } 
     404            } 
     405        } 
     406         
     407        throw new SmartyException("URI '{$uri}' not allowed by security setting"); 
     408    } 
     409     
    378410    /** 
    379411     * Check if directory of file resource is trusted. 
Note: See TracChangeset for help on using the changeset viewer.