diff --git a/inc/geshi.php b/inc/geshi.php
index a05e1685fb8ebee88fe40688aa03592030d17362..8cf1f9a8d23a79b4159412478b4b9da5e2605776 100644
--- a/inc/geshi.php
+++ b/inc/geshi.php
@@ -41,7 +41,7 @@
 //
 
 /** The version of this GeSHi file */
-define('GESHI_VERSION', '1.0.8');
+define('GESHI_VERSION', '1.0.8.3');
 
 // Define the root directory for the GeSHi code tree
 if (!defined('GESHI_ROOT')) {
@@ -52,6 +52,11 @@ if (!defined('GESHI_ROOT')) {
     @access private */
 define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR);
 
+// Define if GeSHi should be paranoid about security
+if (!defined('GESHI_SECURITY_PARANOID')) {
+    /** Tells GeSHi to be paranoid about security settings */
+    define('GESHI_SECURITY_PARANOID', false);
+}
 
 // Line numbers - use with enable_line_numbers()
 /** Use no line numbers when building the result */
@@ -180,9 +185,14 @@ if (!function_exists('stripos')) {
 /** some old PHP / PCRE subpatterns only support up to xxx subpatterns in
     regular expressions. Set this to false if your PCRE lib is up to date
     @see GeSHi->optimize_regexp_list()
-    TODO: are really the subpatterns the culprit or the overall length of the pattern?
     **/
 define('GESHI_MAX_PCRE_SUBPATTERNS', 500);
+/** it's also important not to generate too long regular expressions
+    be generous here... but keep in mind, that when reaching this limit we
+    still have to close open patterns. 12k should do just fine on a 16k limit.
+    @see GeSHi->optimize_regexp_list()
+    **/
+define('GESHI_MAX_PCRE_LENGTH', 12288);
 
 //Number format specification
 /** Basic number format for integers */
@@ -435,7 +445,7 @@ class GeSHi {
      *  The style for the actual code
      * @var string
      */
-    var $code_style = 'font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;';
+    var $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;';
 
     /**
      * The overall class for this code block
@@ -453,19 +463,19 @@ class GeSHi {
      * Line number styles
      * @var string
      */
-    var $line_style1 = 'font-weight: normal;';
+    var $line_style1 = 'font-weight: normal; vertical-align:top;';
 
     /**
      * Line number styles for fancy lines
      * @var string
      */
-    var $line_style2 = 'font-weight: bold;';
+    var $line_style2 = 'font-weight: bold; vertical-align:top;';
 
     /**
      * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen
      * @var string
      */
-    var $table_linenumber_style = 'width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;';
+    var $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;';
 
     /**
      * Flag for how line numbers are displayed
@@ -691,9 +701,31 @@ class GeSHi {
      *             so this method will disappear in 1.2.0.
      */
     function set_language_path($path) {
+        if(strpos($path,':')) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            if(DIRECTORY_SEPARATOR == "\\") {
+                if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) {
+                    return;
+                }
+            } else {
+                return;
+            }
+        }
+        if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            return;
+        }
+        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            return;
+        }
+        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            return;
+        }
         if ($path) {
             $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/';
-            $this->set_language($this->language);        // otherwise set_language_path has no effect
+            $this->set_language($this->language); // otherwise set_language_path has no effect
         }
     }
 
@@ -951,11 +983,11 @@ class GeSHi {
      *                to overwrite them
      * @since 1.0.0
      */
-    function set_escape_characters_style($style, $preserve_defaults = false) {
+    function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
         if (!$preserve_defaults) {
-            $this->language_data['STYLES']['ESCAPE_CHAR'][0] = $style;
+            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style;
         } else {
-            $this->language_data['STYLES']['ESCAPE_CHAR'][0] .= $style;
+            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style;
         }
     }
 
@@ -1300,44 +1332,68 @@ class GeSHi {
                 'actionscript' => array('as'),
                 'ada' => array('a', 'ada', 'adb', 'ads'),
                 'apache' => array('conf'),
-                'asm' => array('ash', 'asm'),
+                'asm' => array('ash', 'asm', 'inc'),
                 'asp' => array('asp'),
                 'bash' => array('sh'),
+                'bf' => array('bf'),
                 'c' => array('c', 'h'),
                 'c_mac' => array('c', 'h'),
                 'caddcl' => array(),
                 'cadlisp' => array(),
                 'cdfg' => array('cdfg'),
                 'cobol' => array('cbl'),
-                'cpp' => array('cpp', 'h', 'hpp'),
-                'csharp' => array(),
+                'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'),
+                'csharp' => array('cs'),
                 'css' => array('css'),
+                'd' => array('d'),
                 'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
+                'diff' => array('diff', 'patch'),
                 'dos' => array('bat', 'cmd'),
                 'gettext' => array('po', 'pot'),
+                'gml' => array('gml'),
+                'gnuplot' => array('plt'),
+                'groovy' => array('groovy'),
+                'haskell' => array('hs'),
                 'html4strict' => array('html', 'htm'),
+                'ini' => array('ini', 'desktop'),
                 'java' => array('java'),
                 'javascript' => array('js'),
                 'klonec' => array('kl1'),
                 'klonecpp' => array('klx'),
+                'latex' => array('tex'),
                 'lisp' => array('lisp'),
                 'lua' => array('lua'),
+                'matlab' => array('m'),
                 'mpasm' => array(),
+                'mysql' => array('sql'),
                 'nsis' => array(),
                 'objc' => array(),
                 'oobas' => array(),
                 'oracle8' => array(),
-                'pascal' => array(),
+                'oracle10' => array(),
+                'pascal' => array('pas'),
                 'perl' => array('pl', 'pm'),
                 'php' => array('php', 'php5', 'phtml', 'phps'),
+                'povray' => array('pov'),
+                'providex' => array('pvc', 'pvx'),
+                'prolog' => array('pl'),
                 'python' => array('py'),
                 'qbasic' => array('bi'),
+                'reg' => array('reg'),
+                'ruby' => array('rb'),
                 'sas' => array('sas'),
+                'scala' => array('scala'),
+                'scheme' => array('scm'),
+                'scilab' => array('sci'),
+                'smalltalk' => array('st'),
                 'smarty' => array(),
+                'tcl' => array('tcl'),
                 'vb' => array('bas'),
                 'vbnet' => array(),
                 'visualfoxpro' => array(),
-                'xml' => array('xml')
+                'whitespace' => array('ws'),
+                'xml' => array('xml', 'svg'),
+                'z80' => array('z80', 'asm', 'inc')
             );
         }
 
@@ -1473,6 +1529,25 @@ class GeSHi {
     function optimize_keyword_group($key) {
         $this->language_data['CACHED_KEYWORD_LISTS'][$key] =
             $this->optimize_regexp_list($this->language_data['KEYWORDS'][$key]);
+        $space_as_whitespace = false;
+        if(isset($this->language_data['PARSER_CONTROL'])) {
+            if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
+                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) {
+                    $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'];
+                }
+                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
+                    if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
+                        $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'];
+                    }
+                }
+            }
+        }
+        if($space_as_whitespace) {
+            foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) {
+                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] =
+                    str_replace(" ", "\\s+", $rxv);
+            }
+        }
     }
 
     /**
@@ -1561,7 +1636,7 @@ class GeSHi {
         if (!$target) {
             $this->link_target = '';
         } else {
-            $this->link_target = ' target="' . $target . '" ';
+            $this->link_target = ' target="' . $target . '"';
         }
     }
 
@@ -1812,12 +1887,14 @@ class GeSHi {
             //
             //Now we need to rewrite our array to get a search string that
             $symbol_preg = array();
-            if (!empty($symbol_preg_single)) {
-                $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']';
-            }
             if (!empty($symbol_preg_multi)) {
+                rsort($symbol_preg_multi);
                 $symbol_preg[] = implode('|', $symbol_preg_multi);
             }
+            if (!empty($symbol_preg_single)) {
+                rsort($symbol_preg_single);
+                $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']';
+            }
             $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg);
         }
 
@@ -1868,9 +1945,9 @@ class GeSHi {
             //All this formats are matched case-insensitively!
             static $numbers_format = array(
                 GESHI_NUMBER_INT_BASIC =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])[1-9]\d*?(?![0-9a-z\.])',
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z\.])',
                 GESHI_NUMBER_INT_CSTYLE =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])[1-9]\d*?l(?![0-9a-z\.])',
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z\.])',
                 GESHI_NUMBER_BIN_SUFFIX =>
                     '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?b(?![0-9a-z\.])',
                 GESHI_NUMBER_BIN_PREFIX_PERCENT =>
@@ -2233,7 +2310,7 @@ class GeSHi {
                 // parse_non_string_part).
 
                 // cache comment regexps incrementally
-                $comment_regexp_cache = array();
+                $next_comment_regexp_key = '';
                 $next_comment_regexp_pos = -1;
                 $next_comment_multi_pos = -1;
                 $next_comment_single_pos = -1;
@@ -2242,6 +2319,9 @@ class GeSHi {
                 $comment_single_cache_per_key = array();
                 $next_open_comment_multi = '';
                 $next_comment_single_key = '';
+                $escape_regexp_cache_per_key = array();
+                $next_escape_regexp_key = '';
+                $next_escape_regexp_pos = -1;
 
                 $length = strlen($part);
                 for ($i = 0; $i < $length; ++$i) {
@@ -2249,6 +2329,50 @@ class GeSHi {
                     $char = $part[$i];
                     $char_len = 1;
 
+                    // update regexp comment cache if needed
+                    if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) {
+                        $next_comment_regexp_pos = $length;
+                        foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) {
+                            $match_i = false;
+                            if (isset($comment_regexp_cache_per_key[$comment_key]) &&
+                                ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i ||
+                                 $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) {
+                                // we have already matched something
+                                if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) {
+                                    // this comment is never matched
+                                    continue;
+                                }
+                                $match_i = $comment_regexp_cache_per_key[$comment_key]['pos'];
+                            } else if (
+                                //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
+                                (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $i), $match, PREG_OFFSET_CAPTURE)) ||
+                                (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i))
+                                ) {
+                                $match_i = $match[0][1];
+                                if (GESHI_PHP_PRE_433) {
+                                    $match_i += $i;
+                                }
+
+                                $comment_regexp_cache_per_key[$comment_key] = array(
+                                    'key' => $comment_key,
+                                    'length' => strlen($match[0][0]),
+                                    'pos' => $match_i
+                                );
+                            } else {
+                                $comment_regexp_cache_per_key[$comment_key]['pos'] = false;
+                                continue;
+                            }
+
+                            if ($match_i !== false && $match_i < $next_comment_regexp_pos) {
+                                $next_comment_regexp_pos = $match_i;
+                                $next_comment_regexp_key = $comment_key;
+                                if ($match_i === $i) {
+                                    break;
+                                }
+                            }
+                        }
+                    }
+
                     $string_started = false;
 
                     if (isset($is_string_starter[$char])) {
@@ -2278,7 +2402,7 @@ class GeSHi {
                         $char_len = strlen($char);
                     }
 
-                    if ($string_started) {
+                    if ($string_started && $i != $next_comment_regexp_pos) {
                         // Hand out the correct style information for this string
                         $string_key = array_search($char, $this->language_data['QUOTEMARKS']);
                         if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) ||
@@ -2286,70 +2410,123 @@ class GeSHi {
                             $string_key = 0;
                         }
 
+                        // parse the stuff before this
+                        $result .= $this->parse_non_string_part($stuff_to_parse);
+                        $stuff_to_parse = '';
+
                         if (!$this->use_classes) {
                             $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"';
-                            $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$string_key] . '"';
                         } else {
                             $string_attributes = ' class="st'.$string_key.'"';
-                            $escape_char_attributes = ' class="es'.$string_key.'"';
                         }
 
-                        // parse the stuff before this
-                        $result .= $this->parse_non_string_part($stuff_to_parse);
-                        $stuff_to_parse = '';
-
                         // now handle the string
-                        $string = '';
+                        $string = "<span$string_attributes>" . GeSHi::hsc($char);
+                        $start = $i + $char_len;
+                        $string_open = true;
 
-                        // look for closing quote
-                        $start = $i;
-                        while ($close_pos = strpos($part, $char, $start + $char_len)) {
-                            $start = $close_pos;
-                            if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['ESCAPE_CHAR']) {
-                                // check wether this quote is escaped or if it is something like '\\'
-                                $escape_char_pos = $close_pos - 1;
-                                while ($escape_char_pos > 0 &&
-                                        $part[$escape_char_pos - 1] == $this->language_data['ESCAPE_CHAR']) {
-                                    --$escape_char_pos;
+                        if(empty($this->language_data['ESCAPE_REGEXP'])) {
+                            $next_escape_regexp_pos = $length;
+                        }
+
+                        do {
+                            //Get the regular ending pos ...
+                            $close_pos = strpos($part, $char, $start);
+                            if(false === $close_pos) {
+                                $close_pos = $length;
+                            }
+
+                            if($this->lexic_permissions['ESCAPE_CHAR']) {
+                                // update escape regexp cache if needed
+                                if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) {
+                                    $next_escape_regexp_pos = $length;
+                                    foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) {
+                                        $match_i = false;
+                                        if (isset($escape_regexp_cache_per_key[$escape_key]) &&
+                                            ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start ||
+                                             $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) {
+                                            // we have already matched something
+                                            if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) {
+                                                // this comment is never matched
+                                                continue;
+                                            }
+                                            $match_i = $escape_regexp_cache_per_key[$escape_key]['pos'];
+                                        } else if (
+                                            //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
+                                            (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $start), $match, PREG_OFFSET_CAPTURE)) ||
+                                            (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start))
+                                            ) {
+                                            $match_i = $match[0][1];
+                                            if (GESHI_PHP_PRE_433) {
+                                                $match_i += $start;
+                                            }
+
+                                            $escape_regexp_cache_per_key[$escape_key] = array(
+                                                'key' => $escape_key,
+                                                'length' => strlen($match[0][0]),
+                                                'pos' => $match_i
+                                            );
+                                        } else {
+                                            $escape_regexp_cache_per_key[$escape_key]['pos'] = false;
+                                            continue;
+                                        }
+
+                                        if ($match_i !== false && $match_i < $next_escape_regexp_pos) {
+                                            $next_escape_regexp_pos = $match_i;
+                                            $next_escape_regexp_key = $escape_key;
+                                            if ($match_i === $start) {
+                                                break;
+                                            }
+                                        }
+                                    }
                                 }
-                                if (($close_pos - $escape_char_pos) & 1) {
-                                    // uneven number of escape chars => this quote is escaped
-                                    continue;
+
+                                //Find the next simple escape position
+                                if('' != $this->language_data['ESCAPE_CHAR']) {
+                                    $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start);
+                                    if(false === $simple_escape) {
+                                        $simple_escape = $length;
+                                    }
+                                } else {
+                                    $simple_escape = $length;
                                 }
+                            } else {
+                                $next_escape_regexp_pos = $length;
+                                $simple_escape = $length;
                             }
 
-                            // found closing quote
-                            break;
-                        }
+                            if($simple_escape < $next_escape_regexp_pos &&
+                                $simple_escape < $length &&
+                                $simple_escape < $close_pos) {
+                                //The nexxt escape sequence is a simple one ...
+                                $es_pos = $simple_escape;
 
-                        //Found the closing delimiter?
-                        if (!$close_pos) {
-                            // span till the end of this $part when no closing delimiter is found
-                            $close_pos = $length;
-                        }
+                                //Add the stuff not in the string yet ...
+                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
 
-                        //Get the actual string
-                        $string = substr($part, $i, $close_pos - $i + $char_len);
-                        $i = $close_pos + $char_len - 1;
+                                //Get the style for this escaped char ...
+                                if (!$this->use_classes) {
+                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"';
+                                } else {
+                                    $escape_char_attributes = ' class="es0"';
+                                }
 
-                        // handle escape chars and encode html chars
-                        // (special because when we have escape chars within our string they may not be escaped)
-                        if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) {
-                            $start = 0;
-                            $new_string = '';
-                            while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) {
-                                $new_string .= $this->hsc(substr($string, $start, $es_pos - $start))
-                                              . "<span$escape_char_attributes>" . $escaped_escape_char;
-                                $es_char = $string[$es_pos + 1];
+                                //Add the style for the escape char ...
+                                $string .= "<span$escape_char_attributes>" .
+                                    GeSHi::hsc($this->language_data['ESCAPE_CHAR']);
+
+                                //Get the byte AFTER the ESCAPE_CHAR we just found
+                                $es_char = $part[$es_pos + 1];
                                 if ($es_char == "\n") {
                                     // don't put a newline around newlines
-                                    $new_string .= "</span>\n";
+                                    $string .= "</span>\n";
+                                    $start = $es_pos + 2;
                                 } else if (ord($es_char) >= 128) {
                                     //This is an non-ASCII char (UTF8 or single byte)
                                     //This code tries to work around SF#2037598 ...
                                     if(function_exists('mb_substr')) {
-                                        $es_char_m = mb_substr(substr($string, $es_pos+1, 16), 0, 1, $this->encoding);
-                                        $new_string .= $es_char_m . '</span>';
+                                        $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding);
+                                        $string .= $es_char_m . '</span>';
                                     } else if (!GESHI_PHP_PRE_433 && 'utf-8' == $this->encoding) {
                                         if(preg_match("/[\xC2-\xDF][\x80-\xBF]".
                                             "|\xE0[\xA0-\xBF][\x80-\xBF]".
@@ -2358,26 +2535,50 @@ class GeSHi {
                                             "|\xF0[\x90-\xBF][\x80-\xBF]{2}".
                                             "|[\xF1-\xF3][\x80-\xBF]{3}".
                                             "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s",
-                                            $string, $es_char_m, null, $es_pos + 1)) {
+                                            $part, $es_char_m, null, $es_pos + 1)) {
                                             $es_char_m = $es_char_m[0];
                                         } else {
                                             $es_char_m = $es_char;
                                         }
-                                        $new_string .= $this->hsc($es_char_m) . '</span>';
+                                        $string .= $this->hsc($es_char_m) . '</span>';
                                     } else {
                                         $es_char_m = $this->hsc($es_char);
                                     }
-                                    $es_pos += strlen($es_char_m) - 1;
+                                    $start = $es_pos + strlen($es_char_m) + 1;
+                                } else {
+                                    $string .= $this->hsc($es_char) . '</span>';
+                                    $start = $es_pos + 2;
+                                }
+                            } else if ($next_escape_regexp_pos < $length &&
+                                $next_escape_regexp_pos < $close_pos) {
+                                $es_pos = $next_escape_regexp_pos;
+                                //Add the stuff not in the string yet ...
+                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
+
+                                //Get the key and length of this match ...
+                                $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key];
+                                $escape_str = substr($part, $es_pos, $escape['length']);
+                                $escape_key = $escape['key'];
+
+                                //Get the style for this escaped char ...
+                                if (!$this->use_classes) {
+                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"';
                                 } else {
-                                    $new_string .= $this->hsc($es_char) . '</span>';
+                                    $escape_char_attributes = ' class="es' . $escape_key . '"';
                                 }
-                                $start = $es_pos + 2;
+
+                                //Add the style for the escape char ...
+                                $string .= "<span$escape_char_attributes>" .
+                                    $this->hsc($escape_str) . '</span>';
+
+                                $start = $es_pos + $escape['length'];
+                            } else {
+                                //Copy the remainder of the string ...
+                                $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . '</span>';
+                                $start = $close_pos + $char_len;
+                                $string_open = false;
                             }
-                            $string = $new_string . $this->hsc(substr($string, $start));
-                            $new_string = '';
-                        } else {
-                            $string = $this->hsc($string);
-                        }
+                        } while($string_open);
 
                         if ($check_linenumbers) {
                             // Are line numbers used? If, we should end the string before
@@ -2388,15 +2589,16 @@ class GeSHi {
                             $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
                         }
 
-                        $result .= "<span$string_attributes>" . $string . '</span>';
+                        $result .= $string;
                         $string = '';
+                        $i = $start - 1;
                         continue;
                     } else if ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char &&
                         substr($part, $i, $hq_strlen) == $hq) {
                         // The start of a hard quoted string
                         if (!$this->use_classes) {
-                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARDQUOTE'] . '"';
-                            $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARDESCAPE'] . '"';
+                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"';
+                            $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"';
                         } else {
                             $string_attributes = ' class="st_h"';
                             $escape_char_attributes = ' class="es_h"';
@@ -2412,14 +2614,14 @@ class GeSHi {
                         $start = $i + $hq_strlen;
                         while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) {
                             $start = $close_pos + 1;
-                            if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['ESCAPE_CHAR']) {
+                            if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR']) {
                                 // make sure this quote is not escaped
                                 foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
                                     if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) {
                                         // check wether this quote is escaped or if it is something like '\\'
                                         $escape_char_pos = $close_pos - 1;
                                         while ($escape_char_pos > 0
-                                                && $part[$escape_char_pos - 1] == $this->language_data['ESCAPE_CHAR']) {
+                                                && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) {
                                             --$escape_char_pos;
                                         }
                                         if (($close_pos - $escape_char_pos) & 1) {
@@ -2499,48 +2701,10 @@ class GeSHi {
                         $string = '';
                         continue;
                     } else {
-                        // update regexp comment cache if needed
-                        if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) {
-                            $next_comment_regexp_pos = $length;
-                            foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) {
-                                $match_i = false;
-                                if (isset($comment_regexp_cache_per_key[$comment_key]) &&
-                                    $comment_regexp_cache_per_key[$comment_key] >= $i) {
-                                    // we have already matched something
-                                    $match_i = $comment_regexp_cache_per_key[$comment_key];
-                                } else if (
-                                    //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
-                                    (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $i), $match, PREG_OFFSET_CAPTURE)) ||
-                                    (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i))
-                                    ) {
-                                    $match_i = $match[0][1];
-                                    if (GESHI_PHP_PRE_433) {
-                                        $match_i += $i;
-                                    }
-
-                                    $comment_regexp_cache[$match_i] = array(
-                                        'key' => $comment_key,
-                                        'length' => strlen($match[0][0]),
-                                    );
-
-                                    $comment_regexp_cache_per_key[$comment_key] = $match_i;
-                                } else {
-                                    $comment_regexp_cache_per_key[$comment_key] = false;
-                                    continue;
-                                }
-
-                                if ($match_i !== false && $match_i < $next_comment_regexp_pos) {
-                                    $next_comment_regexp_pos = $match_i;
-                                    if ($match_i === $i) {
-                                        break;
-                                    }
-                                }
-                            }
-                        }
                         //Have a look for regexp comments
                         if ($i == $next_comment_regexp_pos) {
                             $COMMENT_MATCHED = true;
-                            $comment = $comment_regexp_cache[$next_comment_regexp_pos];
+                            $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key];
                             $test_str = $this->hsc(substr($part, $i, $comment['length']));
 
                             //@todo If remove important do remove here
@@ -2578,8 +2742,13 @@ class GeSHi {
                                 foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) {
                                     $match_i = false;
                                     if (isset($comment_multi_cache_per_key[$open]) &&
-                                        $comment_multi_cache_per_key[$open] >= $i) {
+                                        ($comment_multi_cache_per_key[$open] >= $i ||
+                                         $comment_multi_cache_per_key[$open] === false)) {
                                         // we have already matched something
+                                        if ($comment_multi_cache_per_key[$open] === false) {
+                                            // this comment is never matched
+                                            continue;
+                                        }
                                         $match_i = $comment_multi_cache_per_key[$open];
                                     } else if (($match_i = stripos($part, $open, $i)) !== false) {
                                         $comment_multi_cache_per_key[$open] = $match_i;
@@ -2670,8 +2839,13 @@ class GeSHi {
                                 foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) {
                                     $match_i = false;
                                     if (isset($comment_single_cache_per_key[$comment_key]) &&
-                                        $comment_single_cache_per_key[$comment_key] >= $i) {
+                                        ($comment_single_cache_per_key[$comment_key] >= $i ||
+                                         $comment_single_cache_per_key[$comment_key] === false)) {
                                         // we have already matched something
+                                        if ($comment_single_cache_per_key[$comment_key] === false) {
+                                            // this comment is never matched
+                                            continue;
+                                        }
                                         $match_i = $comment_single_cache_per_key[$comment_key];
                                     } else if (
                                         // case sensitive comments
@@ -2948,9 +3122,16 @@ class GeSHi {
 
                 $before = '<|UR1|"' .
                     str_replace(
-                        array('{FNAME}', '{FNAMEL}', '{FNAMEU}', '.'),
-                        array($this->hsc($word), $this->hsc(strtolower($word)),
-                            $this->hsc(strtoupper($word)), '<DOT>'),
+                        array(
+                            '{FNAME}',
+                            '{FNAMEL}',
+                            '{FNAMEU}',
+                            '.'),
+                        array(
+                            str_replace('+', '%20', urlencode($this->hsc($word))),
+                            str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))),
+                            str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))),
+                            '<DOT>'),
                         $this->language_data['URLS'][$k]
                     ) . '">';
                 $after = '</a>';
@@ -3231,8 +3412,13 @@ class GeSHi {
                 if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) {
                     // already highlighted blocks _must_ include either < or >
                     // so if this conditional applies, we have to skip this match
-                    continue;
+                    // BenBE: UNLESS the block contains <SEMI> or <PIPE>
+                    if(strpos($symbol_match, '<SEMI>') === false &&
+                        strpos($symbol_match, '<PIPE>') === false) {
+                        continue;
+                    }
                 }
+
                 // if we reach this point, we have a valid match which needs to be highlighted
 
                 $symbol_length = strlen($symbol_match);
@@ -3278,7 +3464,6 @@ class GeSHi {
                     $symbol_hl .= $symbol_match . '|>';
                 }
 
-
                 $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length);
 
                 // since we replace old text with something of different size,
@@ -3472,6 +3657,12 @@ class GeSHi {
             unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']);
         }
 
+        //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given
+        //You need to set one for HARDESCAPES only in this case.
+        if(!isset($this->language_data['HARDCHAR'])) {
+            $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR'];
+        }
+
         //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults
         $style_filename = substr($file_name, 0, -4) . '.style.php';
         if (is_readable($style_filename)) {
@@ -3489,9 +3680,6 @@ class GeSHi {
                     $this->merge_arrays($this->language_data['STYLES'], $style_data);
             }
         }
-
-        // Set default class for CSS
-        $this->overall_class = $this->language;
     }
 
     /**
@@ -3635,17 +3823,50 @@ class GeSHi {
                     } else {
                         $attrs = ' style="'. $this->table_linenumber_style .'"';
                     }
-                    $parsed_code .= '<td'.$attrs.'><pre>';
+                    $parsed_code .= '<td'.$attrs.'><pre'.$attributes.'>';
                     // get linenumbers
                     // we don't merge it with the for below, since it should be better for
                     // memory consumption this way
-                    for ($i = 1; $i <= $n; ++$i) {
-                        $parsed_code .= $i;
-                        if ($i != $n) {
+                    // @todo: but... actually it would still be somewhat nice to merge the two loops
+                    //        the mem peaks are at different positions
+                    for ($i = 0; $i < $n; ++$i) {
+                        $close = 0;
+                        // fancy lines
+                        if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
+                            $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
+                            // Set the attributes to style the line
+                            if ($this->use_classes) {
+                                $parsed_code .= '<span class="xtra li2"><span class="de2">';
+                            } else {
+                                // This style "covers up" the special styles set for special lines
+                                // so that styles applied to special lines don't apply to the actual
+                                // code on that line
+                                $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
+                                                  .'<span style="' . $this->code_style .'">';
+                            }
+                            $close += 2;
+                        }
+                        //Is this some line with extra styles???
+                        if (in_array($i + 1, $this->highlight_extra_lines)) {
+                            if ($this->use_classes) {
+                                if (isset($this->highlight_extra_lines_styles[$i])) {
+                                    $parsed_code .= "<span class=\"xtra lx$i\">";
+                                } else {
+                                    $parsed_code .= "<span class=\"xtra ln-xtra\">";
+                                }
+                            } else {
+                                $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
+                            }
+                            ++$close;
+                        }
+                        $parsed_code .= $this->line_numbers_start + $i;
+                        if ($close) {
+                            $parsed_code .= str_repeat('</span>', $close);
+                        } else if ($i != $n) {
                             $parsed_code .= "\n";
                         }
                     }
-                    $parsed_code .= '</pre></td><td>';
+                    $parsed_code .= '</pre></td><td'.$attributes.'>';
                 }
                 $parsed_code .= '<pre'. $attributes .'>';
             }
@@ -3810,7 +4031,7 @@ class GeSHi {
             } else {
                 $attr = " style=\"{$this->footer_content_style}\"";
             }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->linenumbers != GESHI_NO_LINE_NUMBERS) {
+            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
                 $footer = "<tfoot><tr><td colspan=\"2\">$footer</td></tr></tfoot>";
             } else {
                 $footer = "<div$attr>$footer</div>";
@@ -4108,7 +4329,7 @@ class GeSHi {
         foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) {
             if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) {
                 // NEW: since 1.0.8 we have to handle hardescapes
-                if ($group == 'HARD') {
+                if ($group === 'HARD') {
                     $group = '_h';
                 }
                 $stylesheet .= "$selector.es$group {{$styles}}\n";
@@ -4221,7 +4442,15 @@ class GeSHi {
         $tokens = array();
         $prev_keys = array();
         // go through all entries of the list and generate the token list
+        $cur_len = 0;
         for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) {
+            if ($cur_len > GESHI_MAX_PCRE_LENGTH) {
+                // seems like the length of this pcre is growing exorbitantly
+                $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens);
+                $num_subpatterns = substr_count($regexp_list[$list_key], '(?:');
+                $tokens = array();
+                $cur_len = 0;
+            }
             $level = 0;
             $entry = preg_quote((string) $list[$i], $regexp_delimiter);
             $pointer = &$tokens;
@@ -4248,11 +4477,13 @@ class GeSHi {
                             // only part of the keys match
                             $new_key_part1 = substr($prev_keys[$level], 0, $char);
                             $new_key_part2 = substr($prev_keys[$level], $char);
+
                             if (in_array($new_key_part1[0], $regex_chars)
                                 || in_array($new_key_part2[0], $regex_chars)) {
                                 // this is bad, a regex char as first character
                                 $pointer[$entry] = array('' => true);
                                 array_splice($prev_keys, $level, count($prev_keys), $entry);
+                                $cur_len += strlen($entry);
                                 continue;
                             } else {
                                 // relocate previous tokens
@@ -4261,6 +4492,7 @@ class GeSHi {
                                 $pointer = &$pointer[$new_key_part1];
                                 // recreate key index
                                 array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2));
+                                $cur_len += strlen($new_key_part2);
                             }
                         }
                         ++$level;
@@ -4284,10 +4516,13 @@ class GeSHi {
                         $num_subpatterns += $new_subpatterns;
                     }
                     $tokens = array();
+                    $cur_len = 0;
                 }
                 // no further common denominator found
                 $pointer[$entry] = array('' => true);
                 array_splice($prev_keys, $level, count($prev_keys), $entry);
+
+                $cur_len += strlen($entry);
                 break;
             }
             unset($list[$i]);
@@ -4381,4 +4616,4 @@ if (!function_exists('geshi_highlight')) {
     }
 }
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/abap.php b/inc/geshi/abap.php
index fae63babd841a695846c725aca7b6fd1efd93741..ffd8d10ea5c508c70f0923c13ace34778c63f0a4 100644
--- a/inc/geshi/abap.php
+++ b/inc/geshi/abap.php
@@ -3,19 +3,72 @@
  * abap.php
  * --------
  * Author: Andres Picazo (andres@andrespicazo.com)
+ * Contributors:
+ *  - Sandra Rossi (sandra.rossi@gmail.com)
+ *  - Jacob Laursen (jlu@kmd.dk)
  * Copyright: (c) 2007 Andres Picazo
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * ABAP language file for GeSHi.
  *
+ * Reference abap language documentation (abap 7.1) : http://help.sap.com/abapdocu/en/ABENABAP_INDEX.htm
+ *
+ * ABAP syntax is highly complex, several problems could not be addressed, see TODO below if you dare ;-)
+ * Be aware that in ABAP language, keywords may be composed of several tokens,
+ *    separated by one or more spaces or carriage returns
+ *    (for example CONCATENATE 'hello' 'world' INTO string SEPARATED  BY ' ')
+ *    it's why we must decode them with REGEXPS. As there are many keywords with several tokens,
+ *    I had to create a separate section in the code to simplify the reading.
+ * Be aware that some words may be highlighted several times like for "ref to data", which is first
+ *    highlighted for "ref to data", then secondly for "ref to". It is very important to
+ *    position "ref to" after "ref to data" otherwise "data" wouldn't be highlighted because
+ *    of the previous highlight.
+ * Styles used : keywords are all displayed in upper case, and they are organized into 4 categories :
+ *    1) control statements (blue), 2) declarative statements (red-maroon),
+ *    3) other statements (blue-green), 4) keywords (violet).
+ *    + GeSHi : literals (red) + symbols (green) + methods/attributes (mauve)
+ *    + unchanged style for other words.
+ * Control, declarative and other statements are assigned URLs to sap documentation website:
+ *    http://help.sap.com/abapdocu/en/ABAP<statement_name>.htm
+ *
  * CHANGES
  * -------
+ * 2009/02/25 (1.0.8.3)
+ *   -  Some more rework of the language file
+ * 2009/01/04 (1.0.8.2)
+ *   -  Major Release, more than 1000 statements and keywords added = whole abap 7.1 (Sandra Rossi)
  * 2007/06/27 (1.0.0)
  *   -  First Release
  *
  * TODO
  * ----
+ *   - in DATA data TYPE type, 2nd "data" and 2nd "type" are highlighted with data
+ *     style, but should be ignored. Same problem for all words!!! This is quite impossible to
+ *     solve it as we should define syntaxes of all statements (huge effort!) and use a lex
+ *     or something like that instead of regexp I guess.
+ *   - Some words are considered as being statement names (report, tables, etc.) though they
+ *     are used as keyword in some statements. For example: FORM xxxx TABLES itab. It was
+ *     arbitrary decided to define them as statement instead of keyword, because it may be
+ *     useful to have the URL to SAP help for some of them.
+ *   - if a comment is between 2 words of a keyword (for example SEPARATED "comment \n BY),
+ *     it is not considered as a keyword, but it should!
+ *   - for statements like "READ DATASET", GeSHi does not allow to set URLs because these
+ *     statements are determined by REGEXPS. For "READ DATASET", the URL should be
+ *     ABAPREAD_DATASET.htm. If a technical solution is found, be careful : URLs
+ *     are sometimes not valid because the URL does not exist. For example, for "AT NEW"
+ *     statement, the URL should be ABAPAT_ITAB.htm (not ABAPAT_NEW.htm).
+ *     There are many other exceptions.
+ *     Note: for adding this functionality within your php program, you can execute this code:
+ *       function add_urls_to_multi_tokens( $matches ) {
+ *           $url = preg_replace( "/[ \n]+/" , "_" , $matches[3] );
+ *           if( $url == $matches[3] ) return $matches[0] ;
+ *           else return $matches[1]."<a href=\"http://help.sap.com/abapdocu/en/ABAP".strtoupper($url).".htm\">".$matches[3]."</a>".$matches[4];
+ *           }
+ *       $html = $geshi->parse_code();
+ *       $html = preg_replace_callback( "£(zzz:(control|statement|data);\">)(.+?)(</span>)£s", "add_urls_to_multi_tokens", $html );
+ *       echo $html;
+ *   - Numbers followed by a dot terminating the statement are not properly recognized
  *
  *************************************************************************************
  *
@@ -37,39 +90,1238 @@
  *
  ************************************************************************************/
 
-$language_data = array (
+$language_data = array(
     'LANG_NAME' => 'ABAP',
-    'COMMENT_SINGLE' => array(1 => '"', 2 => '*'),
+    'COMMENT_SINGLE' => array(
+        1 => '"'
+        ),
     'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        // lines beginning with star at 1st position are comments
+        // (star anywhere else is not a comment, especially be careful with
+        // "assign dref->* to <fs>" statement)
+        2 => '/^\*.*?$/m'
+        ),
     'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array("'"),
+    'QUOTEMARKS' => array(
+        1 => "'",
+        2 => "`"
+        ),
     'ESCAPE_CHAR' => '',
+
     'KEYWORDS' => array(
-        1 => array(
-            'if', 'return', 'while', 'case', 'default',
-            'do', 'else', 'for', 'endif', 'elseif', 'eq',
-            'not', 'and'
+        //***********************************************
+        // Section 2 : process sequences of several tokens
+        //***********************************************
+
+        7 => array(
+            'at new',
+            'at end of',
+            'at first',
+            'at last',
+            'loop at',
+            'loop at screen',
             ),
-        2 => array(
-            'data', 'types', 'seletion-screen', 'parameters', 'field-symbols', 'extern', 'inline'
+
+        8 => array(
+            'private section',
+            'protected section',
+            'public section',
+            'at line-selection',
+            'at selection-screen',
+            'at user-command',
+            'assign component',
+            'assign table field',
+            'call badi',
+            'call customer-function',
+            'call customer subscreen',
+            'call dialog',
+            'call function',
+            'call method',
+            'call screen',
+            'call selection-screen',
+            'call transaction',
+            'call transformation',
+            'close cursor',
+            'close dataset',
+            'commit work',
+            'convert date',
+            'convert text',
+            'convert time stamp',
+            'create data',
+            'create object',
+            'delete dataset',
+            'delete from',
+            'describe distance',
+            'describe field',
+            'describe list',
+            'describe table',
+            'exec sql',
+            'exit from sql',
+            'exit from step-loop',
+            'export dynpro',
+            'export nametab',
+            'free memory',
+            'generate subroutine-pool',
+            'get badi',
+            'get bit',
+            'get cursor',
+            'get dataset',
+            'get locale',
+            'get parameter',
+            'get pf-status',
+            'get property',
+            'get reference',
+            'get run time',
+            'get time',
+            'get time stamp',
+            'import directory',
+            'insert report',
+            'insert text-pool',
+            'leave list-processing',
+            'leave program',
+            'leave screen',
+            'leave to list-processing',
+            'leave to transaction',
+            'modify line',
+            'modify screen',
+            'move percentage',
+            'open cursor',
+            'open dataset',
+            'raise event',
+            'raise exception',
+            'read dataset',
+            'read line',
+            'read report',
+            'read table',
+            'read textpool',
+            'receive results from function',
+            'refresh control',
+            'rollback work',
+            'set bit',
+            'set blank lines',
+            'set country',
+            'set cursor',
+            'set dataset',
+            'set extended check',
+            'set handler',
+            'set hold data',
+            'set language',
+            'set left scroll-boundary',
+            'set locale',
+            'set margin',
+            'set parameter',
+            'set pf-status',
+            'set property',
+            'set run time analyzer',
+            'set run time clock',
+            'set screen',
+            'set titlebar',
+            'set update task',
+            'set user-command',
+            'suppress dialog',
+            'truncate dataset',
+            'wait until',
+            'wait up to',
+            ),
+
+        9 => array(
+            'accepting duplicate keys',
+            'accepting padding',
+            'accepting truncation',
+            'according to',
+            'actual length',
+            'adjacent duplicates',
+            'after input',
+            'all blob columns',
+            'all clob columns',
+            'all fields',
+            'all methods',
+            'all other columns',
+            'and mark',
+            'and return to screen',
+            'and return',
+            'and skip first screen',
+            'and wait',
+            'any table',
+            'appendage type',
+            'archive mode',
+            'archiving parameters',
+            'area handle',
+            'as checkbox',
+            'as icon',
+            'as line',
+            'as listbox',
+            'as person table',
+            'as search patterns',
+            'as separate unit',
+            'as subscreen',
+            'as symbol',
+            'as text',
+            'as window',
+            'at cursor-selection',
+            'at exit-command',
+            'at next application statement',
+            'at position',
+
+            'backup into',
+            'before output',
+            'before unwind',
+            'begin of block',
+            'begin of common part',
+            'begin of line',
+            'begin of screen',
+            'begin of tabbed block',
+            'begin of version',
+            'begin of',
+            'big endian',
+            'binary mode',
+            'binary search',
+            'by kernel module',
+            'bypassing buffer',
+
+            'client specified',
+            'code page',
+            'code page hint',
+            'code page into',
+            'color black',
+            'color blue',
+            'color green',
+            'color pink',
+            'color red',
+            'color yellow',
+            'compression off',
+            'compression on',
+            'connect to',
+            'corresponding fields of table',
+            'corresponding fields of',
+            'cover page',
+            'cover text',
+            'create package',
+            'create private',
+            'create protected',
+            'create public',
+            'current position',
+
+            'data buffer',
+            'data values',
+            'dataset expiration',
+            'daylight saving time',
+            'default key',
+            'default program',
+            'default screen',
+            'defining database',
+            'deleting leading',
+            'deleting trailing',
+            'directory entry',
+            'display like',
+            'display offset',
+            'during line-selection',
+            'dynamic selections',
+
+            'edit mask',
+            'end of block',
+            'end of common part',
+            'end of file',
+            'end of line',
+            'end of screen',
+            'end of tabbed block',
+            'end of version',
+            'end of',
+            'endian into',
+            'ending at',
+            'enhancement options into',
+            'enhancement into',
+            'environment time format',
+            'execute procedure',
+            'exporting list to memory',
+            'extension type',
+
+            'field format',
+            'field selection',
+            'field value into',
+            'final methods',
+            'first occurrence of',
+            'fixed-point arithmetic',
+            'for all entries',
+            'for all instances',
+            'for appending',
+            'for columns',
+            'for event of',
+            'for field',
+            'for high',
+            'for input',
+            'for lines',
+            'for low',
+            'for node',
+            'for output',
+            'for select',
+            'for table',
+            'for testing',
+            'for update',
+            'for user',
+            'frame entry',
+            'frame program from',
+            'from code page',
+            'from context',
+            'from database',
+            'from logfile id',
+            'from number format',
+            'from screen',
+            'from table',
+            'function key',
+
+            'get connection',
+            'global friends',
+            'group by',
+
+            'hashed table of',
+            'hashed table',
+
+            'if found',
+            'ignoring case',
+            'ignoring conversion errors',
+            'ignoring structure boundaries',
+            'implementations from',
+            'in background',
+            'in background task',
+            'in background unit',
+            'in binary mode',
+            'in byte mode',
+            'in char-to-hex mode',
+            'in character mode',
+            'in group',
+            'in legacy binary mode',
+            'in legacy text mode',
+            'in program',
+            'in remote task',
+            'in text mode',
+            'in table',
+            'in update task',
+            'include bound',
+            'include into',
+            'include program from',
+            'include structure',
+            'include type',
+            'including gaps',
+            'index table',
+            'inheriting from',
+            'init destination',
+            'initial line of',
+            'initial line',
+            'initial size',
+            'internal table',
+            'into sortable code',
+
+            'keep in spool',
+            'keeping directory entry',
+            'keeping logical unit of work',
+            'keeping task',
+            'keywords from',
+
+            'left margin',
+            'left outer',
+            'levels into',
+            'line format',
+            'line into',
+            'line of',
+            'line page',
+            'line value from',
+            'line value into',
+            'lines of',
+            'list authority',
+            'list dataset',
+            'list name',
+            'little endian',
+            'lob handle for',
+            'local friends',
+            'locator for',
+            'lower case',
+
+            'main table field',
+            'match count',
+            'match length',
+            'match line',
+            'match offset',
+            'matchcode object',
+            'maximum length',
+            'maximum width into',
+            'memory id',
+            'message into',
+            'messages into',
+            'modif id',
+
+            'nesting level',
+            'new list identification',
+            'next cursor',
+            'no database selection',
+            'no dialog',
+            'no end of line',
+            'no fields',
+            'no flush',
+            'no intervals',
+            'no intervals off',
+            'no standard page heading',
+            'no-extension off',
+            'non-unique key',
+            'non-unique sorted key',
+            'not at end of mode',
+            'number of lines',
+            'number of pages',
+
+            'object key',
+            'obligatory off',
+            'of current page',
+            'of page',
+            'of program',
+            'offset into',
+            'on block',
+            'on commit',
+            'on end of task',
+            'on end of',
+            'on exit-command',
+            'on help-request for',
+            'on radiobutton group',
+            'on rollback',
+            'on value-request for',
+            'open for package',
+            'option class-coding',
+            'option class',
+            'option coding',
+            'option expand',
+            'option syncpoints',
+            'options from',
+            'order by',
+            'overflow into',
+
+            'package section',
+            'package size',
+            'preferred parameter',
+            'preserving identifier escaping',
+            'primary key',
+            'print off',
+            'print on',
+            'program from',
+            'program type',
+
+            'radiobutton groups',
+            'radiobutton group',
+            'range of',
+            'reader for',
+            'receive buffer',
+            'reduced functionality',
+            'ref to data',
+            'ref to object',
+            'ref to',
+
+            'reference into',
+            'renaming with suffix',
+            'replacement character',
+            'replacement count',
+            'replacement length',
+            'replacement line',
+            'replacement offset',
+            'respecting blanks',
+            'respecting case',
+            'result into',
+            'risk level',
+
+            'sap cover page',
+            'search fkeq',
+            'search fkge',
+            'search gkeq',
+            'search gkge',
+            'section of',
+            'send buffer',
+            'separated by',
+            'shared buffer',
+            'shared memory',
+            'shared memory enabled',
+            'skipping byte-order mark',
+            'sorted by',
+            'sorted table of',
+            'sorted table',
+            'spool parameters',
+            'standard table of',
+            'standard table',
+            'starting at',
+            'starting new task',
+            'statements into',
+            'structure default',
+            'structures into',
+
+            'table field',
+            'table of',
+            'text mode',
+            'time stamp',
+            'time zone',
+            'to code page',
+            'to column',
+            'to context',
+            'to first page',
+            'to last page',
+            'to last line',
+            'to line',
+            'to lower case',
+            'to number format',
+            'to page',
+            'to sap spool',
+            'to upper case',
+            'tokens into',
+            'transporting no fields',
+            'type tableview',
+            'type tabstrip',
+
+            'unicode enabling',
+            'up to',
+            'upper case',
+            'using edit mask',
+            'using key',
+            'using no edit mask',
+            'using screen',
+            'using selection-screen',
+            'using selection-set',
+            'using selection-sets of program',
+
+            'valid between',
+            'valid from',
+            'value check',
+            'via job',
+            'via selection-screen',
+            'visible length',
+
+            'whenever found',
+            'with analysis',
+            'with byte-order mark',
+            'with comments',
+            'with current switchstates',
+            'with explicit enhancements',
+            'with frame',
+            'with free selections',
+            'with further secondary keys',
+            'with header line',
+            'with hold',
+            'with implicit enhancements',
+            'with inactive enhancements',
+            'with includes',
+            'with key',
+            'with linefeed',
+            'with list tokenization',
+            'with native linefeed',
+            'with non-unique key',
+            'with null',
+            'with pragmas',
+            'with precompiled headers',
+            'with selection-table',
+            'with smart linefeed',
+            'with table key',
+            'with test code',
+            'with type-pools',
+            'with unique key',
+            'with unix linefeed',
+            'with windows linefeed',
+            'without further secondary keys',
+            'without selection-screen',
+            'without spool dynpro',
+            'without trmac',
+            'word into',
+            'writer for'
             ),
+
+        //**********************************************************
+        // Other abap statements
+        //**********************************************************
         3 => array(
-            'report', 'write', 'append', 'select', 'endselect', 'call method', 'call function',
-            'loop', 'endloop', 'raise', 'read table', 'concatenate', 'split', 'shift',
-            'condense', 'describe', 'clear', 'endfunction', 'assign', 'create data', 'translate',
-            'continue', 'start-of-selection', 'at selection-screen', 'modify', 'call screen',
-            'create object', 'perform', 'form', 'endform',
-            'reuse_alv_block_list_init', 'zbcialv', 'include'
+            'add',
+            'add-corresponding',
+            'aliases',
+            'append',
+            'assign',
+            'at',
+            'authority-check',
+
+            'break-point',
+
+            'clear',
+            'collect',
+            'compute',
+            'concatenate',
+            'condense',
+            'class',
+            'class-events',
+            'class-methods',
+            'class-pool',
+
+            'define',
+            'delete',
+            'demand',
+            'detail',
+            'divide',
+            'divide-corresponding',
+
+            'editor-call',
+            'end-of-file',
+            'end-enhancement-section',
+            'end-of-definition',
+            'end-of-page',
+            'end-of-selection',
+            'endclass',
+            'endenhancement',
+            'endexec',
+            'endform',
+            'endfunction',
+            'endinterface',
+            'endmethod',
+            'endmodule',
+            'endon',
+            'endprovide',
+            'endselect',
+            'enhancement',
+            'enhancement-point',
+            'enhancement-section',
+            'export',
+            'extract',
+            'events',
+
+            'fetch',
+            'field-groups',
+            'find',
+            'format',
+            'form',
+            'free',
+            'function-pool',
+            'function',
+
+            'get',
+
+            'hide',
+
+            'import',
+            'infotypes',
+            'input',
+            'insert',
+            'include',
+            'initialization',
+            'interface',
+            'interface-pool',
+            'interfaces',
+
+            'leave',
+            'load-of-program',
+            'log-point',
+
+            'maximum',
+            'message',
+            'methods',
+            'method',
+            'minimum',
+            'modify',
+            'move',
+            'move-corresponding',
+            'multiply',
+            'multiply-corresponding',
+
+            'new-line',
+            'new-page',
+            'new-section',
+
+            'overlay',
+
+            'pack',
+            'perform',
+            'position',
+            'print-control',
+            'program',
+            'provide',
+            'put',
+
+            'raise',
+            'refresh',
+            'reject',
+            'replace',
+            'report',
+            'reserve',
+
+            'scroll',
+            'search',
+            'select',
+            'selection-screen',
+            'shift',
+            'skip',
+            'sort',
+            'split',
+            'start-of-selection',
+            'submit',
+            'subtract',
+            'subtract-corresponding',
+            'sum',
+            'summary',
+            'summing',
+            'supply',
+            'syntax-check',
+
+            'top-of-page',
+            'transfer',
+            'translate',
+            'type-pool',
+
+            'uline',
+            'unpack',
+            'update',
+
+            'window',
+            'write'
+
             ),
+
+        //**********************************************************
+        // keywords
+        //**********************************************************
+
         4 => array(
-            'type ref to', 'type', 'begin of',  'end of', 'like', 'into',
-            'from', 'where', 'order by', 'with key', 'string', 'separated by',
-            'exporting', 'importing', 'to upper case', 'to', 'exceptions', 'tables',
-            'using', 'changing'
+            'abbreviated',
+            'abstract',
+            'accept',
+            'acos',
+            'activation',
+            'alias',
+            'align',
+            'all',
+            'allocate',
+            'and',
+            'assigned',
+            'any',
+            'appending',
+            'area',
+            'as',
+            'ascending',
+            'asin',
+            'assigning',
+            'atan',
+            'attributes',
+            'avg',
+
+            'backward',
+            'between',
+            'bit-and',
+            'bit-not',
+            'bit-or',
+            'bit-set',
+            'bit-xor',
+            'boolc',
+            'boolx',
+            'bound',
+            'bt',
+            'blocks',
+            'bounds',
+            'boxed',
+            'by',
+            'byte-ca',
+            'byte-cn',
+            'byte-co',
+            'byte-cs',
+            'byte-na',
+            'byte-ns',
+
+            'c',
+            'ca',
+            'calling',
+            'casting',
+            'ceil',
+            'center',
+            'centered',
+            'changing',
+            'char_off',
+            'charlen',
+            'circular',
+            'class_constructor',
+            'client',
+            'clike',
+            'close',
+            'cmax',
+            'cmin',
+            'cn',
+            'cnt',
+            'co',
+            'col_background',
+            'col_group',
+            'col_heading',
+            'col_key',
+            'col_negative',
+            'col_normal',
+            'col_positive',
+            'col_total',
+            'color',
+            'column',
+            'comment',
+            'comparing',
+            'components',
+            'condition',
+            'constructor',
+            'context',
+            'copies',
+            'count',
+            'country',
+            'cpi',
+            'creating',
+            'critical',
+            'concat_lines_of',
+            'cos',
+            'cosh',
+            'count_any_not_of',
+            'count_any_of',
+            'cp',
+            'cs',
+            'csequence',
+            'currency',
+            'current',
+            'cx_static_check',
+            'cx_root',
+            'cx_dynamic_check',
+
+            'd',
+            'dangerous',
+            'database',
+            'datainfo',
+            'date',
+            'dbmaxlen',
+            'dd/mm/yy',
+            'dd/mm/yyyy',
+            'ddmmyy',
+            'deallocate',
+            'decfloat',
+            'decfloat16',
+            'decfloat34',
+            'decimals',
+            'default',
+            'deferred',
+            'definition',
+            'department',
+            'descending',
+            'destination',
+            'disconnect',
+            'display-mode',
+            'distance',
+            'distinct',
+            'div',
+            'dummy',
+
+            'e',
+            'encoding',
+            'end-lines',
+            'engineering',
+            'environment',
+            'eq',
+            'equiv',
+            'error_message',
+            'errormessage',
+            'escape',
+            'exact',
+            'exception-table',
+            'exceptions',
+            'exclude',
+            'excluding',
+            'exists',
+            'exp',
+            'exponent',
+            'exporting',
+            'extended_monetary',
+
+            'field',
+            'filter-table',
+            'filters',
+            'filter',
+            'final',
+            'find_any_not_of',
+            'find_any_of',
+            'find_end',
+            'floor',
+            'first-line',
+            'font',
+            'forward',
+            'for',
+            'frac',
+            'from_mixed',
+            'friends',
+            'from',
+            'f',
+
+            'giving',
+            'ge',
+            'gt',
+
+            'handle',
+            'harmless',
+            'having',
+            'head-lines',
+            'help-id',
+            'help-request',
+            'high',
+            'hold',
+            'hotspot',
+
+            'i',
+            'id',
+            'ids',
+            'immediately',
+            'implementation',
+            'importing',
+            'in',
+            'initial',
+            'incl',
+            'including',
+            'increment',
+            'index',
+            'index-line',
+            'inner',
+            'inout',
+            'intensified',
+            'into',
+            'inverse',
+            'is',
+            'iso',
+
+            'join',
+
+            'key',
+            'kind',
+
+            'log10',
+            'language',
+            'late',
+            'layout',
+            'le',
+            'lt',
+            'left-justified',
+            'leftplus',
+            'leftspace',
+            'left',
+            'length',
+            'level',
+            'like',
+            'line-count',
+            'line-size',
+            'lines',
+            'line',
+            'load',
+            'long',
+            'lower',
+            'low',
+            'lpi',
+
+            'matches',
+            'match',
+            'mail',
+            'major-id',
+            'max',
+            'medium',
+            'memory',
+            'message-id',
+            'module',
+            'minor-id',
+            'min',
+            'mm/dd/yyyy',
+            'mm/dd/yy',
+            'mmddyy',
+            'mode',
+            'modifier',
+            'mod',
+            'monetary',
+
+            'name',
+            'nb',
+            'ne',
+            'next',
+            'no-display',
+            'no-extension',
+            'no-gap',
+            'no-gaps',
+            'no-grouping',
+            'no-heading',
+            'no-scrolling',
+            'no-sign',
+            'no-title',
+            'no-topofpage',
+            'no-zero',
+            'nodes',
+            'non-unicode',
+            'no',
+            'number',
+            'n',
+            'nmax',
+            'nmin',
+            'not',
+            'null',
+            'numeric',
+            'numofchar',
+
+            'o',
+            'objects',
+            'obligatory',
+            'occurs',
+            'offset',
+            'off',
+            'of',
+            'only',
+            'open',
+            'option',
+            'optional',
+            'options',
+            'output-length',
+            'output',
+            'out',
+            'on change of',
+            'or',
+            'others',
+
+            'pad',
+            'page',
+            'pages',
+            'parameter-table',
+            'part',
+            'performing',
+            'pos_high',
+            'pos_low',
+            'priority',
+            'public',
+            'pushbutton',
+            'p',
+
+            'queue-only',
+            'quickinfo',
+
+            'raising',
+            'range',
+            'read-only',
+            'received',
+            'receiver',
+            'receiving',
+            'redefinition',
+            'reference',
+            'regex',
+            'replacing',
+            'reset',
+            'responsible',
+            'result',
+            'results',
+            'resumable',
+            'returncode',
+            'returning',
+            'right',
+            'right-specified',
+            'rightplus',
+            'rightspace',
+            'round',
+            'rows',
+            'repeat',
+            'requested',
+            'rescale',
+            'reverse',
+
+            'scale_preserving',
+            'scale_preserving_scientific',
+            'scientific',
+            'scientific_with_leading_zero',
+            'screen',
+            'scrolling',
+            'seconds',
+            'segment',
+            'shift_left',
+            'shift_right',
+            'sign',
+            'simple',
+            'sin',
+            'sinh',
+            'short',
+            'shortdump-id',
+            'sign_as_postfix',
+            'single',
+            'size',
+            'some',
+            'source',
+            'space',
+            'spots',
+            'stable',
+            'state',
+            'static',
+            'statusinfo',
+            'sqrt',
+            'string',
+            'strlen',
+            'structure',
+            'style',
+            'subkey',
+            'submatches',
+            'substring',
+            'substring_after',
+            'substring_before',
+            'substring_from',
+            'substring_to',
+            'super',
+            'supplied',
+            'switch',
+
+            't',
+            'tan',
+            'tanh',
+            'table_line',
+            'table',
+            'tab',
+            'then',
+            'timestamp',
+            'times',
+            'time',
+            'timezone',
+            'title-lines',
+            'title',
+            'top-lines',
+            'to',
+            'to_lower',
+            'to_mixed',
+            'to_upper',
+            'trace-file',
+            'trace-table',
+            'transporting',
+            'trunc',
+            'type',
+
+            'under',
+            'unique',
+            'unit',
+            'user-command',
+            'using',
+            'utf-8',
+
+            'valid',
+            'value',
+            'value-request',
+            'values',
+            'vary',
+            'varying',
+            'version',
+
+            'warning',
+            'where',
+            'width',
+            'with',
+            'word',
+            'with-heading',
+            'with-title',
+
+            'x',
+            'xsequence',
+            'xstring',
+            'xstrlen',
+
+            'yes',
+            'yymmdd',
+
+            'z',
+            'zero'
+
             ),
+
+        //**********************************************************
+        // screen statements
+        //**********************************************************
+
+        5 => array(
+            'call subscreen',
+            'chain',
+            'endchain',
+            'on chain-input',
+            'on chain-request',
+            'on help-request',
+            'on input',
+            'on request',
+            'on value-request',
+            'process'
+            ),
+
+        //**********************************************************
+        // internal statements
+        //**********************************************************
+
+        6 => array(
+            'generate dynpro',
+            'generate report',
+            'import dynpro',
+            'import nametab',
+            'include methods',
+            'load report',
+            'scan abap-source',
+            'scan and check abap-source',
+            'syntax-check for dynpro',
+            'syntax-check for program',
+            'syntax-trace',
+            'system-call',
+            'system-exit',
+            'verification-message'
+            ),
+
+        //**********************************************************
+        // Control statements
+        //**********************************************************
+
+        1 => array(
+            'assert',
+            'case',
+            'catch',
+            'check',
+            'cleanup',
+            'continue',
+            'do',
+            'else',
+            'elseif',
+            'endat',
+            'endcase',
+            'endcatch',
+            'endif',
+            'enddo',
+            'endloop',
+            'endtry',
+            'endwhile',
+            'exit',
+            'if',
+            'loop',
+            'resume',
+            'retry',
+            'return',
+            'stop',
+            'try',
+            'when',
+            'while'
+
+            ),
+
+        //**********************************************************
+        // variable declaration statements
+        //**********************************************************
+
+        2 => array(
+            'class-data',
+            'controls',
+            'constants',
+            'data',
+            'field-symbols',
+            'fields',
+            'local',
+            'parameters',
+            'ranges',
+            'select-options',
+            'statics',
+            'tables',
+            'type-pools',
+            'types'
+            )
         ),
     'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
+        0 => array(
+            '='
+            ),
+        1 => array(
+            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':'
+            )
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -77,13 +1329,23 @@ $language_data = array (
         2 => false,
         3 => false,
         4 => false,
+        5 => false,
+        6 => false,
+        7 => false,
+        8 => false,
+        9 => false,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #993333;'
+            1 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', //control statements
+            2 => 'color: #cc4050; text-transform: uppercase; font-weight: bold; zzz:data;', //data statements
+            3 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', //first token of other statements
+            4 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords")
+            5 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;',
+            6 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;',
+            7 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;',
+            8 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;',
+            9 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;'
             ),
         'COMMENTS' => array(
             1 => 'color: #808080; font-style: italic;',
@@ -94,20 +1356,21 @@ $language_data = array (
             0 => 'color: #000099; font-weight: bold;'
             ),
         'BRACKETS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #808080;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #4da619;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
+            0 => 'color: #3399ff;'
             ),
         'METHODS' => array(
             1 => 'color: #202020;',
             2 => 'color: #202020;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #800080;',
+            1 => 'color: #808080;'
             ),
         'REGEXPS' => array(
             ),
@@ -115,15 +1378,20 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://sap4.com/wiki/index.php?title={FNAMEL}',
-        4 => ''
+        1 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm',
+        2 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm',
+        3 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => '',
+        9 => ''
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
+        1 => '-&gt;',
+        2 => '=&gt;'
         ),
     'REGEXPS' => array(
         ),
@@ -131,7 +1399,21 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
+        ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            7 => array(
+                'SPACE_AS_WHITESPACE' => true
+                ),
+            8 => array(
+                'SPACE_AS_WHITESPACE' => true
+                ),
+            9 => array(
+                'SPACE_AS_WHITESPACE' => true
+                )
+            )
+        ),
+    'TAB_WIDTH' => 4
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/actionscript.php b/inc/geshi/actionscript.php
index 007137dc8fe4f09a327fa0160bccbf29ac6b0d90..658491daed2f1c3e9f0b7fb20efd2bdca86cee1e 100644
--- a/inc/geshi/actionscript.php
+++ b/inc/geshi/actionscript.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Steffen Krause (Steffen.krause@muse.de)
  * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/20
  *
  * Actionscript language file for GeSHi.
diff --git a/inc/geshi/actionscript3.php b/inc/geshi/actionscript3.php
index d109be1a2aadf6ccbf79f8546cc597f43b722a07..b98002f986253c98be2a5f3ef97e07040b182eb1 100644
--- a/inc/geshi/actionscript3.php
+++ b/inc/geshi/actionscript3.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Jordi Boggiano (j.boggiano@seld.be)
  * Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/11/26
  *
  * ActionScript3 language file for GeSHi.
@@ -78,54 +78,6 @@ $language_data = array (
         4 => array(
             'class', 'package'
             ),
-        5 => array(
-            'uint', 'int', 'arguments', 'XMLSocket', 'XMLNodeType', 'XMLNode',
-            'XMLList', 'XMLDocument', 'XML', 'Video', 'VerifyError',
-            'URLVariables', 'URLStream', 'URLRequestMethod', 'URLRequestHeader',
-            'URLRequest', 'URLLoaderDataFormat', 'URLLoader', 'URIError',
-            'TypeError', 'Transform', 'TimerEvent', 'Timer', 'TextSnapshot',
-            'TextRenderer', 'TextLineMetrics', 'TextFormatAlign', 'TextFormat',
-            'TextFieldType', 'TextFieldAutoSize', 'TextField', 'TextEvent',
-            'TextDisplayMode', 'TextColorType', 'System', 'SyntaxError',
-            'SyncEvent', 'StyleSheet', 'String', 'StatusEvent', 'StaticText',
-            'StageScaleMode', 'StageQuality', 'StageAlign', 'Stage',
-            'StackOverflowError', 'Sprite', 'SpreadMethod', 'SoundTransform',
-            'SoundMixer', 'SoundLoaderContext', 'SoundChannel', 'Sound',
-            'Socket', 'SimpleButton', 'SharedObjectFlushStatus', 'SharedObject',
-            'Shape', 'SecurityPanel', 'SecurityErrorEvent', 'SecurityError',
-            'SecurityDomain', 'Security', 'ScriptTimeoutError', 'Scene',
-            'SWFVersion', 'Responder', 'RegExp', 'ReferenceError', 'Rectangle',
-            'RangeError', 'QName', 'Proxy', 'ProgressEvent',
-            'PrintJobOrientation', 'PrintJobOptions', 'PrintJob', 'Point',
-            'PixelSnapping', 'ObjectEncoding', 'Object', 'Number', 'NetStream',
-            'NetStatusEvent', 'NetConnection', 'Namespace', 'MovieClip',
-            'MouseEvent', 'Mouse', 'MorphShape', 'Microphone', 'MemoryError',
-            'Matrix', 'Math', 'LocalConnection', 'LoaderInfo', 'LoaderContext',
-            'Loader', 'LineScaleMode', 'KeyboardEvent', 'Keyboard',
-            'KeyLocation', 'JointStyle', 'InvalidSWFError',
-            'InterpolationMethod', 'InteractiveObject', 'IllegalOperationError',
-            'IOErrorEvent', 'IOError', 'IMEEvent', 'IMEConversionMode', 'IME',
-            'IExternalizable', 'IEventDispatcher', 'IDynamicPropertyWriter',
-            'IDynamicPropertyOutput', 'IDataOutput', 'IDataInput', 'ID3Info',
-            'IBitmapDrawable', 'HTTPStatusEvent', 'GridFitType', 'Graphics',
-            'GradientType', 'GradientGlowFilter', 'GradientBevelFilter',
-            'GlowFilter', 'Function', 'FrameLabel', 'FontType', 'FontStyle',
-            'Font', 'FocusEvent', 'FileReferenceList', 'FileReference',
-            'FileFilter', 'ExternalInterface', 'EventPhase', 'EventDispatcher',
-            'Event', 'EvalError', 'ErrorEvent', 'Error', 'Endian', 'EOFError',
-            'DropShadowFilter', 'DisplayObjectContainer', 'DisplayObject',
-            'DisplacementMapFilterMode', 'DisplacementMapFilter', 'Dictionary',
-            'DefinitionError', 'Date', 'DataEvent', 'ConvolutionFilter',
-            'ContextMenuItem', 'ContextMenuEvent', 'ContextMenuBuiltInItems',
-            'ContextMenu', 'ColorTransform', 'ColorMatrixFilter', 'Class',
-            'CapsStyle', 'Capabilities', 'Camera', 'CSMSettings', 'ByteArray',
-            'Boolean', 'BlurFilter', 'BlendMode', 'BitmapFilterType',
-            'BitmapFilterQuality', 'BitmapFilter', 'BitmapDataChannel',
-            'BitmapData', 'Bitmap', 'BevelFilter', 'AsyncErrorEvent', 'Array',
-            'ArgumentError', 'ApplicationDomain', 'AntiAliasType',
-            'ActivityEvent', 'ActionScriptVersion', 'AccessibilityProperties',
-            'Accessibility', 'AVM1Movie'
-            ),
         6 => array(
             'flash.xml', 'flash.utils', 'flash.ui', 'flash.text',
             'flash.system', 'flash.profiler', 'flash.printing', 'flash.net',
@@ -384,6 +336,57 @@ $language_data = array (
             'AMF0', 'ALWAYS', 'ALPHANUMERIC_HALF', 'ALPHANUMERIC_FULL', 'ALPHA',
             'ADVANCED', 'ADDED_TO_STAGE', 'ADDED', 'ADD', 'ACTIVITY',
             'ACTIONSCRIPT3', 'ACTIONSCRIPT2'
+            ),
+        //FIX: Must be last in order to avoid conflicts with keywords present
+        //in other keyword groups, that might get highlighted as part of the URL.
+        //I know this is not a proper work-around, but should do just fine.
+        5 => array(
+            'uint', 'int', 'arguments', 'XMLSocket', 'XMLNodeType', 'XMLNode',
+            'XMLList', 'XMLDocument', 'XML', 'Video', 'VerifyError',
+            'URLVariables', 'URLStream', 'URLRequestMethod', 'URLRequestHeader',
+            'URLRequest', 'URLLoaderDataFormat', 'URLLoader', 'URIError',
+            'TypeError', 'Transform', 'TimerEvent', 'Timer', 'TextSnapshot',
+            'TextRenderer', 'TextLineMetrics', 'TextFormatAlign', 'TextFormat',
+            'TextFieldType', 'TextFieldAutoSize', 'TextField', 'TextEvent',
+            'TextDisplayMode', 'TextColorType', 'System', 'SyntaxError',
+            'SyncEvent', 'StyleSheet', 'String', 'StatusEvent', 'StaticText',
+            'StageScaleMode', 'StageQuality', 'StageAlign', 'Stage',
+            'StackOverflowError', 'Sprite', 'SpreadMethod', 'SoundTransform',
+            'SoundMixer', 'SoundLoaderContext', 'SoundChannel', 'Sound',
+            'Socket', 'SimpleButton', 'SharedObjectFlushStatus', 'SharedObject',
+            'Shape', 'SecurityPanel', 'SecurityErrorEvent', 'SecurityError',
+            'SecurityDomain', 'Security', 'ScriptTimeoutError', 'Scene',
+            'SWFVersion', 'Responder', 'RegExp', 'ReferenceError', 'Rectangle',
+            'RangeError', 'QName', 'Proxy', 'ProgressEvent',
+            'PrintJobOrientation', 'PrintJobOptions', 'PrintJob', 'Point',
+            'PixelSnapping', 'ObjectEncoding', 'Object', 'Number', 'NetStream',
+            'NetStatusEvent', 'NetConnection', 'Namespace', 'MovieClip',
+            'MouseEvent', 'Mouse', 'MorphShape', 'Microphone', 'MemoryError',
+            'Matrix', 'Math', 'LocalConnection', 'LoaderInfo', 'LoaderContext',
+            'Loader', 'LineScaleMode', 'KeyboardEvent', 'Keyboard',
+            'KeyLocation', 'JointStyle', 'InvalidSWFError',
+            'InterpolationMethod', 'InteractiveObject', 'IllegalOperationError',
+            'IOErrorEvent', 'IOError', 'IMEEvent', 'IMEConversionMode', 'IME',
+            'IExternalizable', 'IEventDispatcher', 'IDynamicPropertyWriter',
+            'IDynamicPropertyOutput', 'IDataOutput', 'IDataInput', 'ID3Info',
+            'IBitmapDrawable', 'HTTPStatusEvent', 'GridFitType', 'Graphics',
+            'GradientType', 'GradientGlowFilter', 'GradientBevelFilter',
+            'GlowFilter', 'Function', 'FrameLabel', 'FontType', 'FontStyle',
+            'Font', 'FocusEvent', 'FileReferenceList', 'FileReference',
+            'FileFilter', 'ExternalInterface', 'EventPhase', 'EventDispatcher',
+            'Event', 'EvalError', 'ErrorEvent', 'Error', 'Endian', 'EOFError',
+            'DropShadowFilter', 'DisplayObjectContainer', 'DisplayObject',
+            'DisplacementMapFilterMode', 'DisplacementMapFilter', 'Dictionary',
+            'DefinitionError', 'Date', 'DataEvent', 'ConvolutionFilter',
+            'ContextMenuItem', 'ContextMenuEvent', 'ContextMenuBuiltInItems',
+            'ContextMenu', 'ColorTransform', 'ColorMatrixFilter', 'Class',
+            'CapsStyle', 'Capabilities', 'Camera', 'CSMSettings', 'ByteArray',
+            'Boolean', 'BlurFilter', 'BlendMode', 'BitmapFilterType',
+            'BitmapFilterQuality', 'BitmapFilter', 'BitmapDataChannel',
+            'BitmapData', 'Bitmap', 'BevelFilter', 'AsyncErrorEvent', 'Array',
+            'ArgumentError', 'ApplicationDomain', 'AntiAliasType',
+            'ActivityEvent', 'ActionScriptVersion', 'AccessibilityProperties',
+            'Accessibility', 'AVM1Movie'
             )
         ),
     'SYMBOLS' => array(
diff --git a/inc/geshi/ada.php b/inc/geshi/ada.php
index 36040283aafc498457ab26ab0a137049191d23c7..1013883e453460c7c391d7b4d8471efd35db5c59 100644
--- a/inc/geshi/ada.php
+++ b/inc/geshi/ada.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/29
  *
  * Ada language file for GeSHi.
diff --git a/inc/geshi/apache.php b/inc/geshi/apache.php
index 6f6e394bef9c4a39adfa7359c583813ecc2866da..fa06afeb017f2d7532992de6131e165dc6cd39ef 100644
--- a/inc/geshi/apache.php
+++ b/inc/geshi/apache.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/29/07
  *
  * Apache language file for GeSHi.
@@ -88,8 +88,8 @@ $language_data = array (
             'limitrequestfieldsize','limitrequestline','listen','listenbacklog',
             'loadfile','loadmodule','location','locationmatch',
             'lockfile','logformat','loglevel','maxclients',
-            'maxkeepaliverequests','maxrequestsperchild','maxspareservers','metadir',
-            'metafiles','metasuffix','mimemagicfile','minspareservers',
+            'maxkeepaliverequests','maxrequestsperchild','maxspareservers','maxsparethreads','metadir',
+            'metafiles','metasuffix','mimemagicfile','minspareservers','minsparethreads',
             'mmapfile','namevirtualhost','nocache','options','order',
             'passenv','php_admin_value','php_admin_flag','php_value','pidfile','port','proxyblock','proxydomain',
             'proxypass','proxypassreverse','proxyreceivebuffersize','proxyremote',
diff --git a/inc/geshi/applescript.php b/inc/geshi/applescript.php
index 9d22b5041ac1d4c6ee03075a99c24b00de34f788..395bba7d112a05609cd530d18f35c6caeaca9908 100644
--- a/inc/geshi/applescript.php
+++ b/inc/geshi/applescript.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Stephan Klimek (http://www.initware.org)
  * Copyright: Stephan Klimek (http://www.initware.org)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/07/20
  *
  * AppleScript language file for GeSHi.
@@ -51,27 +51,33 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            'script','property','prop','end','to','set','global','local','on','of',
-            'in','given','with','without','return','continue','tell','if','then','else','repeat',
-            'times','while','until','from','exit','try','error','considering','ignoring','timeout',
-            'transaction','my','get','put','into','is'
+            'application','close','count','delete','duplicate','exists','launch','make','move','open',
+            'print','quit','reopen','run','save','saving', 'idle', 'path to', 'number', 'alias', 'list', 'text', 'string',
+            'integer', 'it','me','version','pi','result','space','tab','anything','case','diacriticals','expansion',
+            'hyphens','punctuation','bold','condensed','expanded','hidden','italic','outline','plain',
+            'shadow','strikethrough','subscript','superscript','underline','ask','no','yes','false', 'id',
+            'true','weekday','monday','mon','tuesday','tue','wednesday','wed','thursday','thu','friday',
+            'fri','saturday','sat','sunday','sun','month','january','jan','february','feb','march',
+            'mar','april','apr','may','june','jun','july','jul','august','aug','september', 'quote', 'do JavaScript',
+            'sep','october','oct','november','nov','december','dec','minutes','hours', 'name', 'default answer',
+            'days','weeks', 'folder', 'folders', 'file', 'files', 'window', 'eject', 'disk', 'reveal', 'sleep',
+            'shut down', 'restart', 'display dialog', 'buttons', 'invisibles', 'item', 'items', 'delimiters', 'offset of',
+            'AppleScript\'s', 'choose file', 'choose folder', 'choose from list', 'beep', 'contents', 'do shell script',
+            'paragraph', 'paragraphs', 'missing value', 'quoted form', 'desktop', 'POSIX path', 'POSIX file',
+            'activate', 'document', 'adding', 'receiving', 'content', 'new', 'properties', 'info for', 'bounds',
+            'selection', 'extension', 'into', 'onto', 'by', 'between', 'against', 'set the clipboard to', 'the clipboard'
             ),
         2 => array(
-            'each','some','every','whose','where','id','index','first','second','third','fourth',
+            'each','some','every','whose','where','index','first','second','third','fourth',
             'fifth','sixth','seventh','eighth','ninth','tenth','last','front','back','st','nd',
-            'rd','th','middle','named','through','thru','before','after','beginning','the'
+            'rd','th','middle','named','through','thru','before','after','beginning','the', 'as',
+            'div','mod','and','not','or','contains','equal','equals','isnt', 'less', 'greater'
             ),
         3 => array(
-            'close','copy','count','delete','duplicate','exists','launch','make','move','open',
-            'print','quit','reopen','run','save','saving',
-            'it','me','version','pi','result','space','tab','anything','case','diacriticals','expansion',
-            'hyphens','punctuation','bold','condensed','expanded','hidden','italic','outline','plain',
-            'shadow','strikethrough','subscript','superscript','underline','ask','no','yes','false',
-            'true','weekday','monday','mon','tuesday','tue','wednesday','wed','thursday','thu','friday',
-            'fri','saturday','sat','sunday','sun','month','january','jan','february','feb','march',
-            'mar','april','apr','may','june','jun','july','jul','august','aug','september',
-            'sep','october','oct','november','nov','december','dec','minutes','hours',
-            'days','weeks','div','mod','and','not','or','as','contains','equal','equals','isnt'
+            'script','property','prop','end','to','set','global','local','on','of',
+            'in','given','with','without','return','continue','tell','if','then','else','repeat',
+            'times','while','until','from','exit','try','error','considering','ignoring','timeout',
+            'transaction','my','get','put','is', 'copy'
             )
         ),
     'SYMBOLS' => array(
@@ -85,9 +91,9 @@ $language_data = array (
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
+            1 => 'color: #0066ff;',
+            2 => 'color: #ff0033;',
+            3 => 'color: #ff0033; font-weight: bold;'
             ),
         'COMMENTS' => array(
             1 => 'color: #808080; font-style: italic;',
@@ -96,27 +102,27 @@ $language_data = array (
             'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            0 => 'color: #000000; font-weight: bold;'
             ),
         'BRACKETS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #000000;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #009900;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
+            0 => 'color: #000000;'
             ),
         'METHODS' => array(
             1 => 'color: #006600;',
             2 => 'color: #006600;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #000000;'
             ),
         'REGEXPS' => array(
-            0 => 'color: #0000ff;',
-            4 => 'color: #009999;',
+            0 => 'color: #339933;',
+            4 => 'color: #0066ff;',
             ),
         'SCRIPT' => array(
             )
@@ -140,7 +146,12 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'SPACE_AS_WHITESPACE' => true
+            )
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/apt_sources.php b/inc/geshi/apt_sources.php
index 322e66b595a21cb23b9e1d4986076f0f0b2b4b2e..13210321064a37288b627c703803d96956bf3988 100644
--- a/inc/geshi/apt_sources.php
+++ b/inc/geshi/apt_sources.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/06/17
  *
  * Apt sources.list language file for GeSHi.
@@ -51,7 +51,8 @@ $language_data = array (
             'stable', 'old-stable', 'testing', 'testing-proposed-updates',
             'unstable', 'unstable-proposed-updates', 'experimental',
             'non-US', 'security', 'volatile', 'volatile-sloppy',
-            'main', 'restricted', 'preview', 'apt-build',
+            'apt-build',
+            'stable/updates',
             //Debian
             'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge',
             'etch', 'lenny', 'sid',
@@ -64,9 +65,12 @@ $language_data = array (
             'feisty', 'feisty-updates', 'feisty-security', 'feisty-proposed', 'feisty-backports',
             'gutsy', 'gutsy-updates', 'gutsy-security', 'gutsy-proposed', 'gutsy-backports',
             'hardy', 'hardy-updates', 'hardy-security', 'hardy-proposed', 'hardy-backports',
-            'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports',
-            'commercial', 'universe', 'multiverse'
+            'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports'
             ),
+        3 => array(
+            'main', 'restricted', 'preview', 'contrib', 'non-free',
+            'commercial', 'universe', 'multiverse'
+            )
     ),
     'REGEXPS' => array(
         0 => "(((http|ftp):\/\/|file:\/)[^\s]+)|(cdrom:\[[^\]]*\][^\s]*)",
@@ -76,12 +80,14 @@ $language_data = array (
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => false,
-        2 => false
+        2 => true,
+        3 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #00007f;',
-            2 => 'color: #b1b100;'
+            2 => 'color: #b1b100;',
+            3 => 'color: #b16000;'
             ),
         'COMMENTS' => array(
             1 => 'color: #adadad; font-style: italic;',
@@ -106,7 +112,8 @@ $language_data = array (
         ),
     'URLS' => array(
         1 => '',
-        2 => ''
+        2 => '',
+        3 => ''
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/asm.php b/inc/geshi/asm.php
index b8a05606de2c6ef35713dc2e38baf08a2d3394a2..af4eef77ec97f82258a7bb737ae7146c095b87ae 100644
--- a/inc/geshi/asm.php
+++ b/inc/geshi/asm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/27
  *
  * x86 Assembler language file for GeSHi.
diff --git a/inc/geshi/asp.php b/inc/geshi/asp.php
index 3fceb91b788017fe8f1434d983828aadeb423574..d2404bb8308743f081373e019c2bfc3ac0baa260 100644
--- a/inc/geshi/asp.php
+++ b/inc/geshi/asp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Amit Gupta (http://blog.igeek.info/)
  * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/13
  *
  * ASP language file for GeSHi.
@@ -53,7 +53,7 @@ $language_data = array (
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         1 => array(
-            'include', 'file', 'Dim', 'Option', 'Explicit', 'Implicit', 'Set', 'Select', 'ReDim', 'Preserve',
+            'include', 'file', 'Const', 'Dim', 'Option', 'Explicit', 'Implicit', 'Set', 'Select', 'ReDim', 'Preserve',
             'ByVal', 'ByRef', 'End', 'Private', 'Public', 'If', 'Then', 'Else', 'ElseIf', 'Case', 'With', 'NOT',
             'While', 'Wend', 'For', 'Loop', 'Do', 'Request', 'Response', 'Server', 'ADODB', 'Session', 'Application',
             'Each', 'In', 'Get', 'Next', 'INT', 'CINT', 'CBOOL', 'CDATE', 'CBYTE', 'CCUR', 'CDBL', 'CLNG', 'CSNG',
@@ -62,9 +62,8 @@ $language_data = array (
             ),
         2 => array(
             'Null', 'Nothing', 'And',
-            'False', '&lt;%', '%&gt;',
-            '&lt;script language=', '&lt;/script&gt;',
-            'True', 'var', 'Or', 'BOF', 'EOF',
+            'False',
+            'True', 'var', 'Or', 'BOF', 'EOF', 'xor',
             'Function', 'Class', 'New', 'Sub'
             ),
         3 => array(
@@ -78,8 +77,12 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>',
-        ';', ':', '?', '='
+        1 => array(
+            '<%', '%>'
+            ),
+        0 => array(
+            '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>',
+            ';', ':', '?', '='),
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -102,7 +105,7 @@ $language_data = array (
             0 => 'color: #000099; font-weight: bold;'
             ),
         'BRACKETS' => array(
-            0 => 'color: #006600; font-weight:bold'
+            0 => 'color: #006600; font-weight:bold;'
             ),
         'STRINGS' => array(
             0 => 'color: #cc0000;'
@@ -114,7 +117,8 @@ $language_data = array (
             1 => 'color: #9900cc;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #006600; font-weight: bold'
+            0 => 'color: #006600; font-weight: bold;',
+            1 => 'color: #000000; font-weight: bold;'
             ),
         'REGEXPS' => array(
             ),
diff --git a/inc/geshi/autoit.php b/inc/geshi/autoit.php
index 0791fde71856a404154f6508c730cda4ee54080b..259c8224f897fbd8d54236851730acb94d8435cd 100644
--- a/inc/geshi/autoit.php
+++ b/inc/geshi/autoit.php
@@ -4,16 +4,27 @@
  * --------
  * Author: big_daddy (robert.i.anthony@gmail.com)
  * Copyright: (c) 2006 and to GESHi ;)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/01/26
  *
  * AutoIT language file for GeSHi.
  *
+ * CHANGES
+ * -------
+ * Release 1.0.8.1 (2008/09/15)
+ * - Updated on 22.03.2008 By Tlem (tlem@tuxolem.fr)
+ * - The link on functions will now correctly re-direct to
+ * - http://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm
+ * - Updated whith au3.api (09.02.2008).
+ * - Updated - 16 Mai 2008 - v3.2.12.0
+ * - Updated - 12 June 2008 - v3.2.12.1
+ * Release 1.0.7.20 (2006/01/26)
+ * - First Release
+ *
  * Current bugs & todo:
  * ----------
- * - dosn't highlight symbols (Please note that in 1.0.X these are not used. Hopefully they will be used in 1.2.X.)
  * - not sure how to get sendkeys to work " {!}, {SPACE} etc... "
- * - jut copyied the regexp for variable from php so this HAVE to be checked and fixed to a better one ;)
+ * - just copyied the regexp for variable from php so this HAVE to be checked and fixed to a better one ;)
  *
  * Reference: http://www.autoitscript.com/autoit3/docs/
  *************************************************************************************
@@ -22,7 +33,8 @@
  *
  *   GeSHi is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
+ *   the Free Software Foundation; either version 2 of the License,
+or
  *   (at your option) any later version.
  *
  *   GeSHi is distributed in the hope that it will be useful,
@@ -31,8 +43,14 @@
  *   GNU General Public License for more details.
  *
  *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *   along with GeSHi; if not,
+write to the Free Software
+ *   Foundation,
+Inc.,
+59 Temple Place,
+Suite 330,
+Boston,
+MA  02111-1307  USA
  *
  ************************************************************************************/
 
@@ -44,343 +62,1025 @@ $language_data = array (
         '#cs' => '#ce'),
     'COMMENT_REGEXP' => array(0 => '/(?<!#)#(\s.*)?$/m'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
+    'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         1 => array(
-            'and', 'byref', 'case', 'const',
-            'continuecase', 'continueloop', 'default', 'dim', 'do',
-            'else', 'elseif', 'endfunc', 'endif', 'endselect',
-            'endswitch', 'endwith', 'enum', 'exit', 'exitloop',
-            'false', 'for', 'func', 'global', 'if', 'in',
-            'local', 'next', 'not', 'or', 'redim',
-            'return', 'select', 'step', 'switch', 'then',
-            'to', 'true', 'until', 'wend', 'while',
-            'with'
+            'And','ByRef','Case','Const','ContinueCase','ContinueLoop',
+            'Default','Dim','Do','Else','ElseIf','EndFunc','EndIf','EndSelect',
+            'EndSwitch','EndWith','Enum','Exit','ExitLoop','False','For','Func',
+            'Global','If','In','Local','Next','Not','Or','ReDim','Return',
+            'Select','Step','Switch','Then','To','True','Until','WEnd','While',
+            'With'
             ),
         2 => array(
-            '@appdatacommondir', '@appdatadir', '@autoitexe', '@autoitpid',
-            '@autoitversion', '@com_eventobj', '@commonfilesdir', '@compiled',
-            '@computername', '@comspec', '@cr', '@crlf', '@desktopcommondir',
-            '@desktopdepth', '@desktopdir', '@desktopheight',
-            '@desktoprefresh', '@desktopwidth', '@documentscommondir',
-            '@error', '@exitcode', '@exitmethod', '@extended',
-            '@favoritescommondir', '@favoritesdir', '@gui_ctrlhandle',
-            '@gui_ctrlid', '@gui_dragfile', '@gui_dragid', '@gui_dropid',
-            '@gui_winhandle', '@homedrive', '@homepath', '@homeshare',
-            '@hotkeypressed', '@hour', '@inetgetactive', '@inetgetbytesread',
-            '@ipaddress1', '@ipaddress2', '@ipaddress3', '@ipaddress4',
-            '@kblayout', '@lf', '@logondnsdomain', '@logondomain',
-            '@logonserver', '@mday', '@min', '@mon', '@mydocumentsdir',
-            '@numparams', '@osbuild', '@oslang', '@osservicepack', '@ostype',
-            '@osversion', '@processorarch', '@programfilesdir',
-            '@programscommondir', '@programsdir', '@scriptdir',
-            '@scriptfullpath', '@scriptlinenumber', '@scriptname', '@sec',
-            '@startmenucommondir', '@startmenudir', '@startupcommondir',
-            '@startupdir', '@sw_disable', '@sw_enable', '@sw_hide', '@sw_lock',
-            '@sw_maximize', '@sw_minimize', '@sw_restore', '@sw_show',
-            '@sw_showdefault', '@sw_showmaximized', '@sw_showminimized',
-            '@sw_showminnoactive', '@sw_showna', '@sw_shownoactivate',
-            '@sw_shownormal', '@sw_unlock', '@systemdir', '@tab', '@tempdir',
-            '@tray_id', '@trayiconflashing', '@trayiconvisible', '@username',
-            '@userprofiledir', '@wday', '@windowsdir', '@workingdir', '@yday',
-            '@year'
+            '@AppDataCommonDir','@AppDataDir','@AutoItExe','@AutoItPID',
+            '@AutoItUnicode','@AutoItVersion','@AutoItX64','@COM_EventObj',
+            '@CommonFilesDir','@Compiled','@ComputerName','@ComSpec','@CR',
+            '@CRLF','@DesktopCommonDir','@DesktopDepth','@DesktopDir',
+            '@DesktopHeight','@DesktopRefresh','@DesktopWidth',
+            '@DocumentsCommonDir','@error','@exitCode','@exitMethod',
+            '@extended','@FavoritesCommonDir','@FavoritesDir','@GUI_CtrlHandle',
+            '@GUI_CtrlId','@GUI_DragFile','@GUI_DragId','@GUI_DropId',
+            '@GUI_WinHandle','@HomeDrive','@HomePath','@HomeShare',
+            '@HotKeyPressed','@HOUR','@InetGetActive','@InetGetBytesRead',
+            '@IPAddress1','@IPAddress2','@IPAddress3','@IPAddress4','@KBLayout',
+            '@LF','@LogonDNSDomain','@LogonDomain','@LogonServer','@MDAY',
+            '@MIN','@MON','@MyDocumentsDir','@NumParams','@OSBuild','@OSLang',
+            '@OSServicePack','@OSTYPE','@OSVersion','@ProcessorArch',
+            '@ProgramFilesDir','@ProgramsCommonDir','@ProgramsDir','@ScriptDir',
+            '@ScriptFullPath','@ScriptLineNumber','@ScriptName','@SEC',
+            '@StartMenuCommonDir','@StartMenuDir','@StartupCommonDir',
+            '@StartupDir','@SW_DISABLE','@SW_ENABLE','@SW_HIDE','@SW_LOCK',
+            '@SW_MAXIMIZE','@SW_MINIMIZE','@SW_RESTORE','@SW_SHOW',
+            '@SW_SHOWDEFAULT','@SW_SHOWMAXIMIZED','@SW_SHOWMINIMIZED',
+            '@SW_SHOWMINNOACTIVE','@SW_SHOWNA','@SW_SHOWNOACTIVATE',
+            '@SW_SHOWNORMAL','@SW_UNLOCK','@SystemDir','@TAB','@TempDir',
+            '@TRAY_ID','@TrayIconFlashing','@TrayIconVisible','@UserName',
+            '@UserProfileDir','@WDAY','@WindowsDir','@WorkingDir','@YDAY',
+            '@YEAR'
             ),
         3 => array(
-            'abs', 'acos', 'adlibdisable', 'adlibenable', 'asc', 'asin',
-            'assign', 'atan', 'autoitsetoption', 'autoitwingettitle',
-            'autoitwinsettitle', 'beep', 'binarystring', 'bitand', 'bitnot',
-            'bitor', 'bitrotate', 'bitshift', 'bitxor', 'blockinput', 'break',
-            'call', 'cdtray', 'ceiling', 'chr', 'clipget', 'clipput',
-            'consoleread', 'consolewrite', 'consolewriteerror', 'controlclick',
-            'controlcommand', 'controldisable', 'controlenable',
-            'controlfocus', 'controlgetfocus', 'controlgethandle',
-            'controlgetpos', 'controlgettext', 'controlhide',
-            'controllistview', 'controlmove', 'controlsend', 'controlsettext',
-            'controlshow', 'cos', 'dec', 'dircopy', 'dircreate', 'dirgetsize',
-            'dirmove', 'dirremove', 'dllcall', 'dllclose', 'dllopen',
-            'dllstructcreate', 'dllstructgetdata', 'dllstructgetptr',
-            'dllstructgetsize', 'dllstructsetdata', 'drivegetdrive',
-            'drivegetfilesystem', 'drivegetlabel', 'drivegetserial',
-            'drivegettype', 'drivemapadd', 'drivemapdel', 'drivemapget',
-            'drivesetlabel', 'drivespacefree', 'drivespacetotal',
-            'drivestatus', 'envget', 'envset', 'envupdate', 'eval', 'execute',
-            'exp', 'filechangedir', 'fileclose', 'filecopy',
-            'filecreatentfslink', 'filecreateshortcut', 'filedelete',
-            'fileexists', 'filefindfirstfile', 'filefindnextfile',
-            'filegetattrib', 'filegetlongname', 'filegetshortcut',
-            'filegetshortname', 'filegetsize', 'filegettime', 'filegetversion',
-            'fileinstall', 'filemove', 'fileopen', 'fileopendialog',
-            'fileread', 'filereadline', 'filerecycle', 'filerecycleempty',
-            'filesavedialog', 'fileselectfolder', 'filesetattrib',
-            'filesettime', 'filewrite', 'filewriteline', 'floor',
-            'ftpsetproxy', 'guicreate', 'guictrlcreateavi',
-            'guictrlcreatebutton', 'guictrlcreatecheckbox',
-            'guictrlcreatecombo', 'guictrlcreatecontextmenu',
-            'guictrlcreatedate', 'guictrlcreatedummy', 'guictrlcreateedit',
-            'guictrlcreategraphic', 'guictrlcreategroup', 'guictrlcreateicon',
-            'guictrlcreateinput', 'guictrlcreatelabel', 'guictrlcreatelist',
-            'guictrlcreatelistview', 'guictrlcreatelistviewitem',
-            'guictrlcreatemenu', 'guictrlcreatemenuitem',
-            'guictrlcreatemonthcal', 'guictrlcreateobj', 'guictrlcreatepic',
-            'guictrlcreateprogress', 'guictrlcreateradio',
-            'guictrlcreateslider', 'guictrlcreatetab', 'guictrlcreatetabitem',
-            'guictrlcreatetreeview', 'guictrlcreatetreeviewitem',
-            'guictrlcreateupdown', 'guictrldelete', 'guictrlgethandle',
-            'guictrlgetstate', 'guictrlread', 'guictrlrecvmsg',
-            'guictrlregisterlistviewsort', 'guictrlsendmsg',
-            'guictrlsendtodummy', 'guictrlsetbkcolor', 'guictrlsetcolor',
-            'guictrlsetcursor', 'guictrlsetdata', 'guictrlsetfont',
-            'guictrlsetgraphic', 'guictrlsetimage', 'guictrlsetlimit',
-            'guictrlsetonevent', 'guictrlsetpos', 'guictrlsetresizing',
-            'guictrlsetstate', 'guictrlsetstyle', 'guictrlsettip', 'guidelete',
-            'guigetcursorinfo', 'guigetmsg', 'guiregistermsg', 'guisetbkcolor',
-            'guisetcoord', 'guisetcursor', 'guisetfont', 'guisethelp',
-            'guiseticon', 'guisetonevent', 'guisetstate', 'guistartgroup',
-            'guiswitch', 'hex', 'hotkeyset', 'httpsetproxy', 'hwnd', 'inetget',
-            'inetgetsize', 'inidelete', 'iniread', 'inireadsection',
-            'inireadsectionnames', 'inirenamesection', 'iniwrite',
-            'iniwritesection', 'inputbox', 'int', 'isadmin', 'isarray',
-            'isbinarystring', 'isbool', 'isdeclared', 'isdllstruct', 'isfloat',
-            'ishwnd', 'isint', 'iskeyword', 'isnumber', 'isobj', 'isstring',
-            'log', 'memgetstats', 'mod', 'mouseclick', 'mouseclickdrag',
-            'mousedown', 'mousegetcursor', 'mousegetpos', 'mousemove',
-            'mouseup', 'mousewheel', 'msgbox', 'number', 'objcreate',
-            'objevent', 'objget', 'objname', 'opt', 'ping', 'pixelchecksum',
-            'pixelgetcolor', 'pixelsearch', 'pluginclose', 'pluginopen',
-            'processclose', 'processexists', 'processlist',
-            'processsetpriority', 'processwait', 'processwaitclose',
-            'progressoff', 'progresson', 'progressset', 'random', 'regdelete',
-            'regenumkey', 'regenumval', 'regread', 'regwrite', 'round', 'run',
-            'runasset', 'runwait', 'send', 'seterror', 'setextended',
-            'shellexecute', 'shellexecutewait', 'shutdown', 'sin', 'sleep',
-            'soundplay', 'soundsetwavevolume', 'splashimageon', 'splashoff',
-            'splashtexton', 'sqrt', 'srandom', 'statusbargettext',
-            'stderrread', 'stdinwrite', 'stdoutread', 'string', 'stringaddcr',
-            'stringformat', 'stringinstr', 'stringisalnum', 'stringisalpha',
-            'stringisascii', 'stringisdigit', 'stringisfloat', 'stringisint',
-            'stringislower', 'stringisspace', 'stringisupper',
-            'stringisxdigit', 'stringleft', 'stringlen', 'stringlower',
-            'stringmid', 'stringregexp', 'stringregexpreplace',
-            'stringreplace', 'stringright', 'stringsplit', 'stringstripcr',
-            'stringstripws', 'stringtrimleft', 'stringtrimright',
-            'stringupper', 'tan', 'tcpaccept', 'tcpclosesocket', 'tcpconnect',
-            'tcplisten', 'tcpnametoip', 'tcprecv', 'tcpsend', 'tcpshutdown',
-            'tcpstartup', 'timerdiff', 'timerinit', 'timerstart', 'timerstop',
-            'tooltip', 'traycreateitem', 'traycreatemenu', 'traygetmsg',
-            'trayitemdelete', 'trayitemgethandle', 'trayitemgetstate',
-            'trayitemgettext', 'trayitemsetonevent', 'trayitemsetstate',
-            'trayitemsettext', 'traysetclick', 'trayseticon', 'traysetonevent',
-            'traysetpauseicon', 'traysetstate', 'traysettooltip', 'traytip',
-            'ubound', 'udpbind', 'udpclosesocket', 'udpopen', 'udprecv',
-            'udpsend', 'winactivate', 'winactive', 'winclose', 'winexists',
-            'winflash', 'wingetcaretpos', 'wingetclasslist',
-            'wingetclientsize', 'wingethandle', 'wingetpos', 'wingetprocess',
-            'wingetstate', 'wingettext', 'wingettitle', 'winkill', 'winlist',
-            'winmenuselectitem', 'winminimizeall', 'winminimizeallundo',
-            'winmove', 'winsetontop', 'winsetstate', 'winsettitle',
-            'winsettrans', 'winshow', 'winwait', 'winwaitactive',
-            'winwaitclose', 'winwaitnotactive'
+            'Abs','ACos','AdlibDisable','AdlibEnable','Asc','AscW','ASin',
+            'Assign','ATan','AutoItSetOption','AutoItWinGetTitle',
+            'AutoItWinSetTitle','Beep','Binary','BinaryLen','BinaryMid',
+            'BinaryToString','BitAND','BitNOT','BitOR','BitRotate','BitShift',
+            'BitXOR','BlockInput','Break','Call','CDTray','Ceiling','Chr',
+            'ChrW','ClipGet','ClipPut','ConsoleRead','ConsoleWrite',
+            'ConsoleWriteError','ControlClick','ControlCommand',
+            'ControlDisable','ControlEnable','ControlFocus','ControlGetFocus',
+            'ControlGetHandle','ControlGetPos','ControlGetText','ControlHide',
+            'ControlListView','ControlMove','ControlSend','ControlSetText',
+            'ControlShow','ControlTreeView','Cos','Dec','DirCopy','DirCreate',
+            'DirGetSize','DirMove','DirRemove','DllCall','DllCallbackFree',
+            'DllCallbackGetPtr','DllCallbackRegister','DllClose','DllOpen',
+            'DllStructCreate','DllStructGetData','DllStructGetPtr',
+            'DllStructGetSize','DllStructSetData','DriveGetDrive',
+            'DriveGetFileSystem','DriveGetLabel','DriveGetSerial',
+            'DriveGetType','DriveMapAdd','DriveMapDel','DriveMapGet',
+            'DriveSetLabel','DriveSpaceFree','DriveSpaceTotal','DriveStatus',
+            'EnvGet','EnvSet','EnvUpdate','Eval','Execute','Exp',
+            'FileChangeDir','FileClose','FileCopy','FileCreateNTFSLink',
+            'FileCreateShortcut','FileDelete','FileExists','FileFindFirstFile',
+            'FileFindNextFile','FileGetAttrib','FileGetLongName',
+            'FileGetShortcut','FileGetShortName','FileGetSize','FileGetTime',
+            'FileGetVersion','FileInstall','FileMove','FileOpen',
+            'FileOpenDialog','FileRead','FileReadLine','FileRecycle',
+            'FileRecycleEmpty','FileSaveDialog','FileSelectFolder',
+            'FileSetAttrib','FileSetTime','FileWrite','FileWriteLine','Floor',
+            'FtpSetProxy','GUICreate','GUICtrlCreateAvi','GUICtrlCreateButton',
+            'GUICtrlCreateCheckbox','GUICtrlCreateCombo',
+            'GUICtrlCreateContextMenu','GUICtrlCreateDate','GUICtrlCreateDummy',
+            'GUICtrlCreateEdit','GUICtrlCreateGraphic','GUICtrlCreateGroup',
+            'GUICtrlCreateIcon','GUICtrlCreateInput','GUICtrlCreateLabel',
+            'GUICtrlCreateList','GUICtrlCreateListView',
+            'GUICtrlCreateListViewItem','GUICtrlCreateMenu',
+            'GUICtrlCreateMenuItem','GUICtrlCreateMonthCal','GUICtrlCreateObj',
+            'GUICtrlCreatePic','GUICtrlCreateProgress','GUICtrlCreateRadio',
+            'GUICtrlCreateSlider','GUICtrlCreateTab','GUICtrlCreateTabItem',
+            'GUICtrlCreateTreeView','GUICtrlCreateTreeViewItem',
+            'GUICtrlCreateUpdown','GUICtrlDelete','GUICtrlGetHandle',
+            'GUICtrlGetState','GUICtrlRead','GUICtrlRecvMsg',
+            'GUICtrlRegisterListViewSort','GUICtrlSendMsg','GUICtrlSendToDummy',
+            'GUICtrlSetBkColor','GUICtrlSetColor','GUICtrlSetCursor',
+            'GUICtrlSetData','GUICtrlSetFont','GUICtrlSetDefColor',
+            'GUICtrlSetDefBkColor','GUICtrlSetGraphic','GUICtrlSetImage',
+            'GUICtrlSetLimit','GUICtrlSetOnEvent','GUICtrlSetPos',
+            'GUICtrlSetResizing','GUICtrlSetState','GUICtrlSetStyle',
+            'GUICtrlSetTip','GUIDelete','GUIGetCursorInfo','GUIGetMsg',
+            'GUIGetStyle','GUIRegisterMsg','GUISetAccelerators()',
+            'GUISetBkColor','GUISetCoord','GUISetCursor','GUISetFont',
+            'GUISetHelp','GUISetIcon','GUISetOnEvent','GUISetState',
+            'GUISetStyle','GUIStartGroup','GUISwitch','Hex','HotKeySet',
+            'HttpSetProxy','HWnd','InetGet','InetGetSize','IniDelete','IniRead',
+            'IniReadSection','IniReadSectionNames','IniRenameSection',
+            'IniWrite','IniWriteSection','InputBox','Int','IsAdmin','IsArray',
+            'IsBinary','IsBool','IsDeclared','IsDllStruct','IsFloat','IsHWnd',
+            'IsInt','IsKeyword','IsNumber','IsObj','IsPtr','IsString','Log',
+            'MemGetStats','Mod','MouseClick','MouseClickDrag','MouseDown',
+            'MouseGetCursor','MouseGetPos','MouseMove','MouseUp','MouseWheel',
+            'MsgBox','Number','ObjCreate','ObjEvent','ObjGet','ObjName','Opt',
+            'Ping','PixelChecksum','PixelGetColor','PixelSearch','PluginClose',
+            'PluginOpen','ProcessClose','ProcessExists','ProcessGetStats',
+            'ProcessList','ProcessSetPriority','ProcessWait','ProcessWaitClose',
+            'ProgressOff','ProgressOn','ProgressSet','Ptr','Random','RegDelete',
+            'RegEnumKey','RegEnumVal','RegRead','RegWrite','Round','Run',
+            'RunAs','RunAsWait','RunWait','Send','SendKeepActive','SetError',
+            'SetExtended','ShellExecute','ShellExecuteWait','Shutdown','Sin',
+            'Sleep','SoundPlay','SoundSetWaveVolume','SplashImageOn',
+            'SplashOff','SplashTextOn','Sqrt','SRandom','StatusbarGetText',
+            'StderrRead','StdinWrite','StdioClose','StdoutRead','String',
+            'StringAddCR','StringCompare','StringFormat','StringInStr',
+            'StringIsAlNum','StringIsAlpha','StringIsASCII','StringIsDigit',
+            'StringIsFloat','StringIsInt','StringIsLower','StringIsSpace',
+            'StringIsUpper','StringIsXDigit','StringLeft','StringLen',
+            'StringLower','StringMid','StringRegExp','StringRegExpReplace',
+            'StringReplace','StringRight','StringSplit','StringStripCR',
+            'StringStripWS','StringToBinary','StringTrimLeft','StringTrimRight',
+            'StringUpper','Tan','TCPAccept','TCPCloseSocket','TCPConnect',
+            'TCPListen','TCPNameToIP','TCPRecv','TCPSend','TCPShutdown',
+            'TCPStartup','TimerDiff','TimerInit','ToolTip','TrayCreateItem',
+            'TrayCreateMenu','TrayGetMsg','TrayItemDelete','TrayItemGetHandle',
+            'TrayItemGetState','TrayItemGetText','TrayItemSetOnEvent',
+            'TrayItemSetState','TrayItemSetText','TraySetClick','TraySetIcon',
+            'TraySetOnEvent','TraySetPauseIcon','TraySetState','TraySetToolTip',
+            'TrayTip','UBound','UDPBind','UDPCloseSocket','UDPOpen','UDPRecv',
+            'UDPSend','UDPShutdown','UDPStartup','VarGetType','WinActivate',
+            'WinActive','WinClose','WinExists','WinFlash','WinGetCaretPos',
+            'WinGetClassList','WinGetClientSize','WinGetHandle','WinGetPos',
+            'WinGetProcess','WinGetState','WinGetText','WinGetTitle','WinKill',
+            'WinList','WinMenuSelectItem','WinMinimizeAll','WinMinimizeAllUndo',
+            'WinMove','WinSetOnTop','WinSetState','WinSetTitle','WinSetTrans',
+            'WinWait','WinWaitActive','WinWaitClose','WinWaitNotActive'
             ),
         4 => array(
-            '_arrayadd', '_arraybinarysearch', '_arraycreate', '_arraydelete',
-            '_arraydisplay', '_arrayinsert', '_arraymax', '_arraymaxindex',
-            '_arraymin', '_arrayminindex', '_arraypop', '_arraypush',
-            '_arrayreverse', '_arraysearch', '_arraysort', '_arrayswap',
-            '_arraytoclip', '_arraytostring', '_arraytrim', '_colorgetblue',
-            '_colorgetgreen', '_colorgetred', '_dateadd', '_datedayofweek',
-            '_datedaysinmonth', '_datediff', '_dateisleapyear', '_dateisvalid',
-            '_datetimeformat', '_datetimesplit', '_datetodayofweek',
-            '_datetodayofweekiso', '_datetodayvalue', '_dayvaluetodate',
-            '_now', '_nowcalc', '_nowcalcdate', '_nowdate', '_nowtime',
-            '_setdate', '_settime', '_tickstotime', '_timetoticks',
-            '_weeknumberiso', '_filecountlines', '_filecreate',
-            '_filelisttoarray', '_fileprint', '_filereadtoarray',
-            '_filewritefromarray', '_filewritelog', '_filewritetoline',
-            '_pathfull', '_pathmake', '_pathsplit', '_replacestringinfile',
-            '_tempfile', '_guictrlcomboadddir', '_guictrlcomboaddstring',
-            '_guictrlcomboautocomplete', '_guictrlcombodeletestring',
-            '_guictrlcombofindstring', '_guictrlcombogetcount',
-            '_guictrlcombogetcursel', '_guictrlcombogetdroppedcontrolrect',
-            '_guictrlcombogetdroppedstate', '_guictrlcombogetdroppedwidth',
-            '_guictrlcombogeteditsel', '_guictrlcombogetextendedui',
-            '_guictrlcombogethorizontalextent', '_guictrlcombogetitemheight',
-            '_guictrlcombogetlbtext', '_guictrlcombogetlbtextlen',
-            '_guictrlcombogetlist', '_guictrlcombogetlocale',
-            '_guictrlcombogetminvisible', '_guictrlcombogettopindex',
-            '_guictrlcomboinitstorage', '_guictrlcomboinsertstring',
-            '_guictrlcombolimittext', '_guictrlcomboresetcontent',
-            '_guictrlcomboselectstring', '_guictrlcombosetcursel',
-            '_guictrlcombosetdroppedwidth', '_guictrlcomboseteditsel',
-            '_guictrlcombosetextendedui', '_guictrlcombosethorizontalextent',
-            '_guictrlcombosetitemheight', '_guictrlcombosetminvisible',
-            '_guictrlcombosettopindex', '_guictrlcomboshowdropdown',
-            '_guictrleditcanundo', '_guictrleditemptyundobuffer',
-            '_guictrleditfind', '_guictrleditgetfirstvisibleline',
-            '_guictrleditgetline', '_guictrleditgetlinecount',
-            '_guictrleditgetmodify', '_guictrleditgetrect',
-            '_guictrleditgetsel', '_guictrleditlinefromchar',
-            '_guictrleditlineindex', '_guictrleditlinelength',
-            '_guictrleditlinescroll', '_guictrleditreplacesel',
-            '_guictrleditscroll', '_guictrleditsetmodify',
-            '_guictrleditsetrect', '_guictrleditsetsel', '_guictrleditundo',
-            '_guictrlipaddressclear', '_guictrlipaddresscreate',
-            '_guictrlipaddressdelete', '_guictrlipaddressget',
-            '_guictrlipaddressisblank', '_guictrlipaddressset',
-            '_guictrlipaddresssetfocus', '_guictrlipaddresssetfont',
-            '_guictrlipaddresssetrange', '_guictrlipaddressshowhide',
-            '_guictrllistadddir', '_guictrllistadditem', '_guictrllistclear',
-            '_guictrllistcount', '_guictrllistdeleteitem',
-            '_guictrllistfindstring', '_guictrllistgetanchorindex',
-            '_guictrllistgetcaretindex', '_guictrllistgethorizontalextent',
-            '_guictrllistgetinfo', '_guictrllistgetitemrect',
-            '_guictrllistgetlocale', '_guictrllistgetselcount',
-            '_guictrllistgetselitems', '_guictrllistgetselitemstext',
-            '_guictrllistgetselstate', '_guictrllistgettext',
-            '_guictrllistgettextlen', '_guictrllistgettopindex',
-            '_guictrllistinsertitem', '_guictrllistreplacestring',
-            '_guictrllistselectedindex', '_guictrllistselectindex',
-            '_guictrllistselectstring', '_guictrllistselitemrange',
-            '_guictrllistselitemrangeex', '_guictrllistsetanchorindex',
-            '_guictrllistsetcaretindex', '_guictrllistsethorizontalextent',
-            '_guictrllistsetlocale', '_guictrllistsetsel',
-            '_guictrllistsettopindex', '_guictrllistsort',
-            '_guictrllistswapstring', '_guictrllistviewcopyitems',
-            '_guictrllistviewdeleteallitems', '_guictrllistviewdeletecolumn',
-            '_guictrllistviewdeleteitem',
-            '_guictrllistviewdeleteitemsselected',
-            '_guictrllistviewensurevisible', '_guictrllistviewfinditem',
-            '_guictrllistviewgetbackcolor', '_guictrllistviewgetcallbackmask',
-            '_guictrllistviewgetcheckedstate',
-            '_guictrllistviewgetcolumnorder', '_guictrllistviewgetcolumnwidth',
-            '_guictrllistviewgetcounterpage', '_guictrllistviewgetcursel',
-            '_guictrllistviewgetextendedlistviewstyle',
-            '_guictrllistviewgetheader', '_guictrllistviewgethotcursor',
-            '_guictrllistviewgethotitem', '_guictrllistviewgethovertime',
-            '_guictrllistviewgetitemcount', '_guictrllistviewgetitemtext',
-            '_guictrllistviewgetitemtextarray', '_guictrllistviewgetnextitem',
-            '_guictrllistviewgetselectedcount',
-            '_guictrllistviewgetselectedindices',
-            '_guictrllistviewgetsubitemscount', '_guictrllistviewgettopindex',
-            '_guictrllistviewgetunicodeformat', '_guictrllistviewhidecolumn',
-            '_guictrllistviewinsertcolumn', '_guictrllistviewinsertitem',
-            '_guictrllistviewjustifycolumn', '_guictrllistviewscroll',
-            '_guictrllistviewsetcheckstate',
-            '_guictrllistviewsetcolumnheadertext',
-            '_guictrllistviewsetcolumnorder', '_guictrllistviewsetcolumnwidth',
-            '_guictrllistviewsethotitem', '_guictrllistviewsethovertime',
-            '_guictrllistviewsetitemcount', '_guictrllistviewsetitemselstate',
-            '_guictrllistviewsetitemtext', '_guictrllistviewsort',
-            '_guictrlmonthcalget1stdow', '_guictrlmonthcalgetcolor',
-            '_guictrlmonthcalgetdelta', '_guictrlmonthcalgetmaxselcount',
-            '_guictrlmonthcalgetmaxtodaywidth',
-            '_guictrlmonthcalgetminreqrect', '_guictrlmonthcalset1stdow',
-            '_guictrlmonthcalsetcolor', '_guictrlmonthcalsetdelta',
-            '_guictrlmonthcalsetmaxselcount', '_guictrlslidercleartics',
-            '_guictrlslidergetlinesize', '_guictrlslidergetnumtics',
-            '_guictrlslidergetpagesize', '_guictrlslidergetpos',
-            '_guictrlslidergetrangemax', '_guictrlslidergetrangemin',
-            '_guictrlslidersetlinesize', '_guictrlslidersetpagesize',
-            '_guictrlslidersetpos', '_guictrlslidersetticfreq',
-            '_guictrlstatusbarcreate', '_guictrlstatusbarcreateprogress',
-            '_guictrlstatusbardelete', '_guictrlstatusbargetborders',
-            '_guictrlstatusbargeticon', '_guictrlstatusbargetparts',
-            '_guictrlstatusbargetrect', '_guictrlstatusbargettext',
-            '_guictrlstatusbargettextlength', '_guictrlstatusbargettip',
-            '_guictrlstatusbargetunicode', '_guictrlstatusbarissimple',
-            '_guictrlstatusbarresize', '_guictrlstatusbarsetbkcolor',
-            '_guictrlstatusbarseticon', '_guictrlstatusbarsetminheight',
-            '_guictrlstatusbarsetparts', '_guictrlstatusbarsetsimple',
-            '_guictrlstatusbarsettext', '_guictrlstatusbarsettip',
-            '_guictrlstatusbarsetunicode', '_guictrlstatusbarshowhide',
-            '_guictrltabdeleteallitems', '_guictrltabdeleteitem',
-            '_guictrltabdeselectall', '_guictrltabgetcurfocus',
-            '_guictrltabgetcursel', '_guictrltabgetextendedstyle',
-            '_guictrltabgetitemcount', '_guictrltabgetitemrect',
-            '_guictrltabgetrowcount', '_guictrltabgetunicodeformat',
-            '_guictrltabhighlightitem', '_guictrltabsetcurfocus',
-            '_guictrltabsetcursel', '_guictrltabsetmintabwidth',
-            '_guictrltabsetunicodeformat', '_guictrltreeviewdeleteallitems',
-            '_guictrltreeviewdeleteitem', '_guictrltreeviewexpand',
-            '_guictrltreeviewgetbkcolor', '_guictrltreeviewgetcount',
-            '_guictrltreeviewgetindent', '_guictrltreeviewgetlinecolor',
-            '_guictrltreeviewgetparenthandle', '_guictrltreeviewgetparentid',
-            '_guictrltreeviewgetstate', '_guictrltreeviewgettext',
-            '_guictrltreeviewgettextcolor', '_guictrltreeviewgettree',
-            '_guictrltreeviewinsertitem', '_guictrltreeviewsetbkcolor',
-            '_guictrltreeviewseticon', '_guictrltreeviewsetindent',
-            '_guictrltreeviewsetlinecolor', '_guictrltreeviewsetstate',
-            '_guictrltreeviewsettext', '_guictrltreeviewsettextcolor',
-            '_guictrltreeviewsort', '_ie_example', '_ie_introduction',
-            '_ie_versioninfo', '_ieaction', '_ieattach', '_iebodyreadhtml',
-            '_iebodyreadtext', '_iebodywritehtml', '_iecreate',
-            '_iecreateembedded', '_iedocgetobj', '_iedocinserthtml',
-            '_iedocinserttext', '_iedocreadhtml', '_iedocwritehtml',
-            '_ieerrorhandlerderegister', '_ieerrorhandlerregister',
-            '_ieerrornotify', '_ieformelementcheckboxselect',
-            '_ieformelementgetcollection', '_ieformelementgetobjbyname',
-            '_ieformelementgetvalue', '_ieformelementoptionselect',
-            '_ieformelementradioselect', '_ieformelementsetvalue',
-            '_ieformgetcollection', '_ieformgetobjbyname', '_ieformimageclick',
-            '_ieformreset', '_ieformsubmit', '_ieframegetcollection',
-            '_ieframegetobjbyname', '_iegetobjbyname',
-            '_ieheadinserteventscript', '_ieimgclick', '_ieimggetcollection',
-            '_ieisframeset', '_ielinkclickbyindex', '_ielinkclickbytext',
-            '_ielinkgetcollection', '_ieloadwait', '_ieloadwaittimeout',
-            '_ienavigate', '_iepropertyget', '_iepropertyset', '_iequit',
-            '_ietablegetcollection', '_ietablewritetoarray',
-            '_ietagnameallgetcollection', '_ietagnamegetcollection', '_getip',
-            '_inetexplorercapable', '_inetgetsource', '_inetmail',
-            '_inetsmtpmail', '_tcpiptoname', '_degree', '_mathcheckdiv',
-            '_max', '_min', '_radian', '_choosecolor', '_choosefont',
-            '_clipputfile', '_iif', '_ispressed', '_mousetrap', '_singleton',
-            '_processgetname', '_processgetpriority', '_rundos',
-            '_sendmessage', '_soundclose', '_soundlength', '_soundopen',
-            '_soundpause', '_soundplay', '_soundpos', '_soundresume',
-            '_soundseek', '_soundstatus', '_soundstop', '_sqlite_changes',
-            '_sqlite_close', '_sqlite_display2dresult', '_sqlite_encode',
-            '_sqlite_errcode', '_sqlite_errmsg', '_sqlite_escape',
-            '_sqlite_exec', '_sqlite_fetchdata', '_sqlite_fetchnames',
-            '_sqlite_gettable', '_sqlite_gettable2d',
-            '_sqlite_lastinsertrowid', '_sqlite_libversion', '_sqlite_open',
-            '_sqlite_query', '_sqlite_queryfinalize', '_sqlite_queryreset',
-            '_sqlite_querysinglerow', '_sqlite_savemode', '_sqlite_settimeout',
-            '_sqlite_shutdown', '_sqlite_sqliteexe', '_sqlite_startup',
-            '_sqlite_totalchanges', '_hextostring', '_stringaddcomma',
-            '_stringbetween', '_stringencrypt', '_stringinsert',
-            '_stringproper', '_stringrepeat', '_stringreverse', '_stringtohex',
-            '_viclose', '_viexeccommand', '_vifindgpib', '_vigpibbusreset',
-            '_vigtl', '_viopen', '_visetattribute', '_visettimeout'
+            'ArrayAdd','ArrayBinarySearch','ArrayConcatenate','ArrayDelete',
+            'ArrayDisplay','ArrayFindAll','ArrayInsert','ArrayMax',
+            'ArrayMaxIndex','ArrayMin','ArrayMinIndex','ArrayPop','ArrayPush',
+            'ArrayReverse','ArraySearch','ArraySort','ArraySwap','ArrayToClip',
+            'ArrayToString','ArrayTrim','ChooseColor','ChooseFont',
+            'ClipBoard_ChangeChain','ClipBoard_Close','ClipBoard_CountFormats',
+            'ClipBoard_Empty','ClipBoard_EnumFormats','ClipBoard_FormatStr',
+            'ClipBoard_GetData','ClipBoard_GetDataEx','ClipBoard_GetFormatName',
+            'ClipBoard_GetOpenWindow','ClipBoard_GetOwner',
+            'ClipBoard_GetPriorityFormat','ClipBoard_GetSequenceNumber',
+            'ClipBoard_GetViewer','ClipBoard_IsFormatAvailable',
+            'ClipBoard_Open','ClipBoard_RegisterFormat','ClipBoard_SetData',
+            'ClipBoard_SetDataEx','ClipBoard_SetViewer','ClipPutFile',
+            'ColorConvertHSLtoRGB','ColorConvertRGBtoHSL','ColorGetBlue',
+            'ColorGetGreen','ColorGetRed','Date_Time_CompareFileTime',
+            'Date_Time_DOSDateTimeToArray','Date_Time_DOSDateTimeToFileTime',
+            'Date_Time_DOSDateTimeToStr','Date_Time_DOSDateToArray',
+            'Date_Time_DOSDateToStr','Date_Time_DOSTimeToArray',
+            'Date_Time_DOSTimeToStr','Date_Time_EncodeFileTime',
+            'Date_Time_EncodeSystemTime','Date_Time_FileTimeToArray',
+            'Date_Time_FileTimeToDOSDateTime',
+            'Date_Time_FileTimeToLocalFileTime','Date_Time_FileTimeToStr',
+            'Date_Time_FileTimeToSystemTime','Date_Time_GetFileTime',
+            'Date_Time_GetLocalTime','Date_Time_GetSystemTime',
+            'Date_Time_GetSystemTimeAdjustment',
+            'Date_Time_GetSystemTimeAsFileTime',
+            'Date_Time_GetSystemTimes','Date_Time_GetTickCount',
+            'Date_Time_GetTimeZoneInformation',
+            'Date_Time_LocalFileTimeToFileTime','Date_Time_SetFileTime',
+            'Date_Time_SetLocalTime','Date_Time_SetSystemTime',
+            'Date_Time_SetSystemTimeAdjustment',
+            'Date_Time_SetTimeZoneInformation','Date_Time_SystemTimeToArray',
+            'Date_Time_SystemTimeToDateStr','Date_Time_SystemTimeToDateTimeStr',
+            'Date_Time_SystemTimeToFileTime','Date_Time_SystemTimeToTimeStr',
+            'Date_Time_SystemTimeToTzSpecificLocalTime',
+            'Date_Time_TzSpecificLocalTimeToSystemTime','DateAdd',
+            'DateDayOfWeek','DateDaysInMonth','DateDiff','DateIsLeapYear',
+            'DateIsValid','DateTimeFormat','DateTimeSplit','DateToDayOfWeek',
+            'DateToDayOfWeekISO','DateToDayValue','DateToMonth',
+            'DayValueToDate','DebugBugReportEnv','DebugOut','DebugSetup',
+            'Degree','EventLog__Backup','EventLog__Clear','EventLog__Close',
+            'EventLog__Count','EventLog__DeregisterSource','EventLog__Full',
+            'EventLog__Notify','EventLog__Oldest','EventLog__Open',
+            'EventLog__OpenBackup','EventLog__Read','EventLog__RegisterSource',
+            'EventLog__Report','FileCountLines','FileCreate','FileListToArray',
+            'FilePrint','FileReadToArray','FileWriteFromArray',
+            'FileWriteLog','FileWriteToLine','GDIPlus_ArrowCapCreate',
+            'GDIPlus_ArrowCapDispose','GDIPlus_ArrowCapGetFillState',
+            'GDIPlus_ArrowCapGetHeight','GDIPlus_ArrowCapGetMiddleInset',
+            'GDIPlus_ArrowCapGetWidth','GDIPlus_ArrowCapSetFillState',
+            'GDIPlus_ArrowCapSetHeight','GDIPlus_ArrowCapSetMiddleInset',
+            'GDIPlus_ArrowCapSetWidth','GDIPlus_BitmapCloneArea',
+            'GDIPlus_BitmapCreateFromFile','GDIPlus_BitmapCreateFromGraphics',
+            'GDIPlus_BitmapCreateFromHBITMAP',
+            'GDIPlus_BitmapCreateHBITMAPFromBitmap','GDIPlus_BitmapDispose',
+            'GDIPlus_BitmapLockBits','GDIPlus_BitmapUnlockBits',
+            'GDIPlus_BrushClone','GDIPlus_BrushCreateSolid',
+            'GDIPlus_BrushDispose','GDIPlus_BrushGetType',
+            'GDIPlus_CustomLineCapDispose','GDIPlus_Decoders',
+            'GDIPlus_DecodersGetCount','GDIPlus_DecodersGetSize',
+            'GDIPlus_Encoders','GDIPlus_EncodersGetCLSID',
+            'GDIPlus_EncodersGetCount','GDIPlus_EncodersGetParamList',
+            'GDIPlus_EncodersGetParamListSize','GDIPlus_EncodersGetSize',
+            'GDIPlus_FontCreate','GDIPlus_FontDispose',
+            'GDIPlus_FontFamilyCreate','GDIPlus_FontFamilyDispose',
+            'GDIPlus_GraphicsClear','GDIPlus_GraphicsCreateFromHDC',
+            'GDIPlus_GraphicsCreateFromHWND','GDIPlus_GraphicsDispose',
+            'GDIPlus_GraphicsDrawArc','GDIPlus_GraphicsDrawBezier',
+            'GDIPlus_GraphicsDrawClosedCurve','GDIPlus_GraphicsDrawCurve',
+            'GDIPlus_GraphicsDrawEllipse','GDIPlus_GraphicsDrawImage',
+            'GDIPlus_GraphicsDrawImageRect','GDIPlus_GraphicsDrawImageRectRect',
+            'GDIPlus_GraphicsDrawLine','GDIPlus_GraphicsDrawPie',
+            'GDIPlus_GraphicsDrawPolygon','GDIPlus_GraphicsDrawRect',
+            'GDIPlus_GraphicsDrawString','GDIPlus_GraphicsDrawStringEx',
+            'GDIPlus_GraphicsFillClosedCurve','GDIPlus_GraphicsFillEllipse',
+            'GDIPlus_GraphicsFillPie','GDIPlus_GraphicsFillRect',
+            'GDIPlus_GraphicsGetDC','GDIPlus_GraphicsGetSmoothingMode',
+            'GDIPlus_GraphicsMeasureString','GDIPlus_GraphicsReleaseDC',
+            'GDIPlus_GraphicsSetSmoothingMode','GDIPlus_GraphicsSetTransform',
+            'GDIPlus_ImageDispose','GDIPlus_ImageGetGraphicsContext',
+            'GDIPlus_ImageGetHeight','GDIPlus_ImageGetWidth',
+            'GDIPlus_ImageLoadFromFile','GDIPlus_ImageSaveToFile',
+            'GDIPlus_ImageSaveToFileEx','GDIPlus_MatrixCreate',
+            'GDIPlus_MatrixDispose','GDIPlus_MatrixRotate','GDIPlus_ParamAdd',
+            'GDIPlus_ParamInit','GDIPlus_PenCreate','GDIPlus_PenDispose',
+            'GDIPlus_PenGetAlignment','GDIPlus_PenGetColor',
+            'GDIPlus_PenGetCustomEndCap','GDIPlus_PenGetDashCap',
+            'GDIPlus_PenGetDashStyle','GDIPlus_PenGetEndCap',
+            'GDIPlus_PenGetWidth','GDIPlus_PenSetAlignment',
+            'GDIPlus_PenSetColor','GDIPlus_PenSetCustomEndCap',
+            'GDIPlus_PenSetDashCap','GDIPlus_PenSetDashStyle',
+            'GDIPlus_PenSetEndCap','GDIPlus_PenSetWidth','GDIPlus_RectFCreate',
+            'GDIPlus_Shutdown','GDIPlus_Startup','GDIPlus_StringFormatCreate',
+            'GDIPlus_StringFormatDispose','GetIP','GUICtrlAVI_Close',
+            'GUICtrlAVI_Create','GUICtrlAVI_Destroy','GUICtrlAVI_Open',
+            'GUICtrlAVI_OpenEx','GUICtrlAVI_Play','GUICtrlAVI_Seek',
+            'GUICtrlAVI_Show','GUICtrlAVI_Stop','GUICtrlButton_Click',
+            'GUICtrlButton_Create','GUICtrlButton_Destroy',
+            'GUICtrlButton_Enable','GUICtrlButton_GetCheck',
+            'GUICtrlButton_GetFocus','GUICtrlButton_GetIdealSize',
+            'GUICtrlButton_GetImage','GUICtrlButton_GetImageList',
+            'GUICtrlButton_GetState','GUICtrlButton_GetText',
+            'GUICtrlButton_GetTextMargin','GUICtrlButton_SetCheck',
+            'GUICtrlButton_SetFocus','GUICtrlButton_SetImage',
+            'GUICtrlButton_SetImageList','GUICtrlButton_SetSize',
+            'GUICtrlButton_SetState','GUICtrlButton_SetStyle',
+            'GUICtrlButton_SetText','GUICtrlButton_SetTextMargin',
+            'GUICtrlButton_Show','GUICtrlComboBox_AddDir',
+            'GUICtrlComboBox_AddString','GUICtrlComboBox_AutoComplete',
+            'GUICtrlComboBox_BeginUpdate','GUICtrlComboBox_Create',
+            'GUICtrlComboBox_DeleteString','GUICtrlComboBox_Destroy',
+            'GUICtrlComboBox_EndUpdate','GUICtrlComboBox_FindString',
+            'GUICtrlComboBox_FindStringExact','GUICtrlComboBox_GetComboBoxInfo',
+            'GUICtrlComboBox_GetCount','GUICtrlComboBox_GetCurSel',
+            'GUICtrlComboBox_GetDroppedControlRect',
+            'GUICtrlComboBox_GetDroppedControlRectEx',
+            'GUICtrlComboBox_GetDroppedState','GUICtrlComboBox_GetDroppedWidth',
+            'GUICtrlComboBox_GetEditSel','GUICtrlComboBox_GetEditText',
+            'GUICtrlComboBox_GetExtendedUI',
+            'GUICtrlComboBox_GetHorizontalExtent',
+            'GUICtrlComboBox_GetItemHeight','GUICtrlComboBox_GetLBText',
+            'GUICtrlComboBox_GetLBTextLen','GUICtrlComboBox_GetList',
+            'GUICtrlComboBox_GetListArray','GUICtrlComboBox_GetLocale',
+            'GUICtrlComboBox_GetLocaleCountry','GUICtrlComboBox_GetLocaleLang',
+            'GUICtrlComboBox_GetLocalePrimLang',
+            'GUICtrlComboBox_GetLocaleSubLang','GUICtrlComboBox_GetMinVisible',
+            'GUICtrlComboBox_GetTopIndex','GUICtrlComboBox_InitStorage',
+            'GUICtrlComboBox_InsertString','GUICtrlComboBox_LimitText',
+            'GUICtrlComboBox_ReplaceEditSel','GUICtrlComboBox_ResetContent',
+            'GUICtrlComboBox_SelectString','GUICtrlComboBox_SetCurSel',
+            'GUICtrlComboBox_SetDroppedWidth','GUICtrlComboBox_SetEditSel',
+            'GUICtrlComboBox_SetEditText','GUICtrlComboBox_SetExtendedUI',
+            'GUICtrlComboBox_SetHorizontalExtent',
+            'GUICtrlComboBox_SetItemHeight','GUICtrlComboBox_SetMinVisible',
+            'GUICtrlComboBox_SetTopIndex','GUICtrlComboBox_ShowDropDown',
+            'GUICtrlComboBoxEx_AddDir','GUICtrlComboBoxEx_AddString',
+            'GUICtrlComboBoxEx_BeginUpdate','GUICtrlComboBoxEx_Create',
+            'GUICtrlComboBoxEx_CreateSolidBitMap',
+            'GUICtrlComboBoxEx_DeleteString','GUICtrlComboBoxEx_Destroy',
+            'GUICtrlComboBoxEx_EndUpdate','GUICtrlComboBoxEx_FindStringExact',
+            'GUICtrlComboBoxEx_GetComboBoxInfo',
+            'GUICtrlComboBoxEx_GetComboControl','GUICtrlComboBoxEx_GetCount',
+            'GUICtrlComboBoxEx_GetCurSel',
+            'GUICtrlComboBoxEx_GetDroppedControlRect',
+            'GUICtrlComboBoxEx_GetDroppedControlRectEx',
+            'GUICtrlComboBoxEx_GetDroppedState',
+            'GUICtrlComboBoxEx_GetDroppedWidth',
+            'GUICtrlComboBoxEx_GetEditControl','GUICtrlComboBoxEx_GetEditSel',
+            'GUICtrlComboBoxEx_GetEditText',
+            'GUICtrlComboBoxEx_GetExtendedStyle',
+            'GUICtrlComboBoxEx_GetExtendedUI','GUICtrlComboBoxEx_GetImageList',
+            'GUICtrlComboBoxEx_GetItem','GUICtrlComboBoxEx_GetItemEx',
+            'GUICtrlComboBoxEx_GetItemHeight','GUICtrlComboBoxEx_GetItemImage',
+            'GUICtrlComboBoxEx_GetItemIndent',
+            'GUICtrlComboBoxEx_GetItemOverlayImage',
+            'GUICtrlComboBoxEx_GetItemParam',
+            'GUICtrlComboBoxEx_GetItemSelectedImage',
+            'GUICtrlComboBoxEx_GetItemText','GUICtrlComboBoxEx_GetItemTextLen',
+            'GUICtrlComboBoxEx_GetList','GUICtrlComboBoxEx_GetListArray',
+            'GUICtrlComboBoxEx_GetLocale','GUICtrlComboBoxEx_GetLocaleCountry',
+            'GUICtrlComboBoxEx_GetLocaleLang',
+            'GUICtrlComboBoxEx_GetLocalePrimLang',
+            'GUICtrlComboBoxEx_GetLocaleSubLang',
+            'GUICtrlComboBoxEx_GetMinVisible','GUICtrlComboBoxEx_GetTopIndex',
+            'GUICtrlComboBoxEx_InitStorage','GUICtrlComboBoxEx_InsertString',
+            'GUICtrlComboBoxEx_LimitText','GUICtrlComboBoxEx_ReplaceEditSel',
+            'GUICtrlComboBoxEx_ResetContent','GUICtrlComboBoxEx_SetCurSel',
+            'GUICtrlComboBoxEx_SetDroppedWidth','GUICtrlComboBoxEx_SetEditSel',
+            'GUICtrlComboBoxEx_SetEditText',
+            'GUICtrlComboBoxEx_SetExtendedStyle',
+            'GUICtrlComboBoxEx_SetExtendedUI','GUICtrlComboBoxEx_SetImageList',
+            'GUICtrlComboBoxEx_SetItem','GUICtrlComboBoxEx_SetItemEx',
+            'GUICtrlComboBoxEx_SetItemHeight','GUICtrlComboBoxEx_SetItemImage',
+            'GUICtrlComboBoxEx_SetItemIndent',
+            'GUICtrlComboBoxEx_SetItemOverlayImage',
+            'GUICtrlComboBoxEx_SetItemParam',
+            'GUICtrlComboBoxEx_SetItemSelectedImage',
+            'GUICtrlComboBoxEx_SetMinVisible','GUICtrlComboBoxEx_SetTopIndex',
+            'GUICtrlComboBoxEx_ShowDropDown','GUICtrlDTP_Create',
+            'GUICtrlDTP_Destroy','GUICtrlDTP_GetMCColor','GUICtrlDTP_GetMCFont',
+            'GUICtrlDTP_GetMonthCal','GUICtrlDTP_GetRange',
+            'GUICtrlDTP_GetRangeEx','GUICtrlDTP_GetSystemTime',
+            'GUICtrlDTP_GetSystemTimeEx','GUICtrlDTP_SetFormat',
+            'GUICtrlDTP_SetMCColor','GUICtrlDTP_SetMCFont',
+            'GUICtrlDTP_SetRange','GUICtrlDTP_SetRangeEx',
+            'GUICtrlDTP_SetSystemTime','GUICtrlDTP_SetSystemTimeEx',
+            'GUICtrlEdit_AppendText','GUICtrlEdit_BeginUpdate',
+            'GUICtrlEdit_CanUndo','GUICtrlEdit_CharFromPos',
+            'GUICtrlEdit_Create','GUICtrlEdit_Destroy',
+            'GUICtrlEdit_EmptyUndoBuffer','GUICtrlEdit_EndUpdate',
+            'GUICtrlEdit_Find','GUICtrlEdit_FmtLines',
+            'GUICtrlEdit_GetFirstVisibleLine','GUICtrlEdit_GetLimitText',
+            'GUICtrlEdit_GetLine','GUICtrlEdit_GetLineCount',
+            'GUICtrlEdit_GetMargins','GUICtrlEdit_GetModify',
+            'GUICtrlEdit_GetPasswordChar','GUICtrlEdit_GetRECT',
+            'GUICtrlEdit_GetRECTEx','GUICtrlEdit_GetSel','GUICtrlEdit_GetText',
+            'GUICtrlEdit_GetTextLen','GUICtrlEdit_HideBalloonTip',
+            'GUICtrlEdit_InsertText','GUICtrlEdit_LineFromChar',
+            'GUICtrlEdit_LineIndex','GUICtrlEdit_LineLength',
+            'GUICtrlEdit_LineScroll','GUICtrlEdit_PosFromChar',
+            'GUICtrlEdit_ReplaceSel','GUICtrlEdit_Scroll',
+            'GUICtrlEdit_SetLimitText','GUICtrlEdit_SetMargins',
+            'GUICtrlEdit_SetModify','GUICtrlEdit_SetPasswordChar',
+            'GUICtrlEdit_SetReadOnly','GUICtrlEdit_SetRECT',
+            'GUICtrlEdit_SetRECTEx','GUICtrlEdit_SetRECTNP',
+            'GUICtrlEdit_SetRectNPEx','GUICtrlEdit_SetSel',
+            'GUICtrlEdit_SetTabStops','GUICtrlEdit_SetText',
+            'GUICtrlEdit_ShowBalloonTip','GUICtrlEdit_Undo',
+            'GUICtrlHeader_AddItem','GUICtrlHeader_ClearFilter',
+            'GUICtrlHeader_ClearFilterAll','GUICtrlHeader_Create',
+            'GUICtrlHeader_CreateDragImage','GUICtrlHeader_DeleteItem',
+            'GUICtrlHeader_Destroy','GUICtrlHeader_EditFilter',
+            'GUICtrlHeader_GetBitmapMargin','GUICtrlHeader_GetImageList',
+            'GUICtrlHeader_GetItem','GUICtrlHeader_GetItemAlign',
+            'GUICtrlHeader_GetItemBitmap','GUICtrlHeader_GetItemCount',
+            'GUICtrlHeader_GetItemDisplay','GUICtrlHeader_GetItemFlags',
+            'GUICtrlHeader_GetItemFormat','GUICtrlHeader_GetItemImage',
+            'GUICtrlHeader_GetItemOrder','GUICtrlHeader_GetItemParam',
+            'GUICtrlHeader_GetItemRect','GUICtrlHeader_GetItemRectEx',
+            'GUICtrlHeader_GetItemText','GUICtrlHeader_GetItemWidth',
+            'GUICtrlHeader_GetOrderArray','GUICtrlHeader_GetUnicodeFormat',
+            'GUICtrlHeader_HitTest','GUICtrlHeader_InsertItem',
+            'GUICtrlHeader_Layout','GUICtrlHeader_OrderToIndex',
+            'GUICtrlHeader_SetBitmapMargin',
+            'GUICtrlHeader_SetFilterChangeTimeout',
+            'GUICtrlHeader_SetHotDivider','GUICtrlHeader_SetImageList',
+            'GUICtrlHeader_SetItem','GUICtrlHeader_SetItemAlign',
+            'GUICtrlHeader_SetItemBitmap','GUICtrlHeader_SetItemDisplay',
+            'GUICtrlHeader_SetItemFlags','GUICtrlHeader_SetItemFormat',
+            'GUICtrlHeader_SetItemImage','GUICtrlHeader_SetItemOrder',
+            'GUICtrlHeader_SetItemParam','GUICtrlHeader_SetItemText',
+            'GUICtrlHeader_SetItemWidth','GUICtrlHeader_SetOrderArray',
+            'GUICtrlHeader_SetUnicodeFormat','GUICtrlIpAddress_ClearAddress',
+            'GUICtrlIpAddress_Create','GUICtrlIpAddress_Destroy',
+            'GUICtrlIpAddress_Get','GUICtrlIpAddress_GetArray',
+            'GUICtrlIpAddress_GetEx','GUICtrlIpAddress_IsBlank',
+            'GUICtrlIpAddress_Set','GUICtrlIpAddress_SetArray',
+            'GUICtrlIpAddress_SetEx','GUICtrlIpAddress_SetFocus',
+            'GUICtrlIpAddress_SetFont','GUICtrlIpAddress_SetRange',
+            'GUICtrlIpAddress_ShowHide','GUICtrlListBox_AddFile',
+            'GUICtrlListBox_AddString','GUICtrlListBox_BeginUpdate',
+            'GUICtrlListBox_Create','GUICtrlListBox_DeleteString',
+            'GUICtrlListBox_Destroy','GUICtrlListBox_Dir',
+            'GUICtrlListBox_EndUpdate','GUICtrlListBox_FindInText',
+            'GUICtrlListBox_FindString','GUICtrlListBox_GetAnchorIndex',
+            'GUICtrlListBox_GetCaretIndex','GUICtrlListBox_GetCount',
+            'GUICtrlListBox_GetCurSel','GUICtrlListBox_GetHorizontalExtent',
+            'GUICtrlListBox_GetItemData','GUICtrlListBox_GetItemHeight',
+            'GUICtrlListBox_GetItemRect','GUICtrlListBox_GetItemRectEx',
+            'GUICtrlListBox_GetListBoxInfo','GUICtrlListBox_GetLocale',
+            'GUICtrlListBox_GetLocaleCountry','GUICtrlListBox_GetLocaleLang',
+            'GUICtrlListBox_GetLocalePrimLang',
+            'GUICtrlListBox_GetLocaleSubLang','GUICtrlListBox_GetSel',
+            'GUICtrlListBox_GetSelCount','GUICtrlListBox_GetSelItems',
+            'GUICtrlListBox_GetSelItemsText','GUICtrlListBox_GetText',
+            'GUICtrlListBox_GetTextLen','GUICtrlListBox_GetTopIndex',
+            'GUICtrlListBox_InitStorage','GUICtrlListBox_InsertString',
+            'GUICtrlListBox_ItemFromPoint','GUICtrlListBox_ReplaceString',
+            'GUICtrlListBox_ResetContent','GUICtrlListBox_SelectString',
+            'GUICtrlListBox_SelItemRange','GUICtrlListBox_SelItemRangeEx',
+            'GUICtrlListBox_SetAnchorIndex','GUICtrlListBox_SetCaretIndex',
+            'GUICtrlListBox_SetColumnWidth','GUICtrlListBox_SetCurSel',
+            'GUICtrlListBox_SetHorizontalExtent','GUICtrlListBox_SetItemData',
+            'GUICtrlListBox_SetItemHeight','GUICtrlListBox_SetLocale',
+            'GUICtrlListBox_SetSel','GUICtrlListBox_SetTabStops',
+            'GUICtrlListBox_SetTopIndex','GUICtrlListBox_Sort',
+            'GUICtrlListBox_SwapString','GUICtrlListBox_UpdateHScroll',
+            'GUICtrlListView_AddArray','GUICtrlListView_AddColumn',
+            'GUICtrlListView_AddItem','GUICtrlListView_AddSubItem',
+            'GUICtrlListView_ApproximateViewHeight',
+            'GUICtrlListView_ApproximateViewRect',
+            'GUICtrlListView_ApproximateViewWidth','GUICtrlListView_Arrange',
+            'GUICtrlListView_BeginUpdate','GUICtrlListView_CancelEditLabel',
+            'GUICtrlListView_ClickItem','GUICtrlListView_CopyItems',
+            'GUICtrlListView_Create','GUICtrlListView_CreateDragImage',
+            'GUICtrlListView_CreateSolidBitMap',
+            'GUICtrlListView_DeleteAllItems','GUICtrlListView_DeleteColumn',
+            'GUICtrlListView_DeleteItem','GUICtrlListView_DeleteItemsSelected',
+            'GUICtrlListView_Destroy','GUICtrlListView_DrawDragImage',
+            'GUICtrlListView_EditLabel','GUICtrlListView_EnableGroupView',
+            'GUICtrlListView_EndUpdate','GUICtrlListView_EnsureVisible',
+            'GUICtrlListView_FindInText','GUICtrlListView_FindItem',
+            'GUICtrlListView_FindNearest','GUICtrlListView_FindParam',
+            'GUICtrlListView_FindText','GUICtrlListView_GetBkColor',
+            'GUICtrlListView_GetBkImage','GUICtrlListView_GetCallbackMask',
+            'GUICtrlListView_GetColumn','GUICtrlListView_GetColumnCount',
+            'GUICtrlListView_GetColumnOrder',
+            'GUICtrlListView_GetColumnOrderArray',
+            'GUICtrlListView_GetColumnWidth','GUICtrlListView_GetCounterPage',
+            'GUICtrlListView_GetEditControl',
+            'GUICtrlListView_GetExtendedListViewStyle',
+            'GUICtrlListView_GetGroupInfo',
+            'GUICtrlListView_GetGroupViewEnabled','GUICtrlListView_GetHeader',
+            'GUICtrlListView_GetHotCursor','GUICtrlListView_GetHotItem',
+            'GUICtrlListView_GetHoverTime','GUICtrlListView_GetImageList',
+            'GUICtrlListView_GetISearchString','GUICtrlListView_GetItem',
+            'GUICtrlListView_GetItemChecked','GUICtrlListView_GetItemCount',
+            'GUICtrlListView_GetItemCut','GUICtrlListView_GetItemDropHilited',
+            'GUICtrlListView_GetItemEx','GUICtrlListView_GetItemFocused',
+            'GUICtrlListView_GetItemGroupID','GUICtrlListView_GetItemImage',
+            'GUICtrlListView_GetItemIndent','GUICtrlListView_GetItemParam',
+            'GUICtrlListView_GetItemPosition',
+            'GUICtrlListView_GetItemPositionX',
+            'GUICtrlListView_GetItemPositionY','GUICtrlListView_GetItemRect',
+            'GUICtrlListView_GetItemRectEx','GUICtrlListView_GetItemSelected',
+            'GUICtrlListView_GetItemSpacing','GUICtrlListView_GetItemSpacingX',
+            'GUICtrlListView_GetItemSpacingY','GUICtrlListView_GetItemState',
+            'GUICtrlListView_GetItemStateImage','GUICtrlListView_GetItemText',
+            'GUICtrlListView_GetItemTextArray',
+            'GUICtrlListView_GetItemTextString','GUICtrlListView_GetNextItem',
+            'GUICtrlListView_GetNumberOfWorkAreas','GUICtrlListView_GetOrigin',
+            'GUICtrlListView_GetOriginX','GUICtrlListView_GetOriginY',
+            'GUICtrlListView_GetOutlineColor',
+            'GUICtrlListView_GetSelectedColumn',
+            'GUICtrlListView_GetSelectedCount',
+            'GUICtrlListView_GetSelectedIndices',
+            'GUICtrlListView_GetSelectionMark','GUICtrlListView_GetStringWidth',
+            'GUICtrlListView_GetSubItemRect','GUICtrlListView_GetTextBkColor',
+            'GUICtrlListView_GetTextColor','GUICtrlListView_GetToolTips',
+            'GUICtrlListView_GetTopIndex','GUICtrlListView_GetUnicodeFormat',
+            'GUICtrlListView_GetView','GUICtrlListView_GetViewDetails',
+            'GUICtrlListView_GetViewLarge','GUICtrlListView_GetViewList',
+            'GUICtrlListView_GetViewRect','GUICtrlListView_GetViewSmall',
+            'GUICtrlListView_GetViewTile','GUICtrlListView_HideColumn',
+            'GUICtrlListView_HitTest','GUICtrlListView_InsertColumn',
+            'GUICtrlListView_InsertGroup','GUICtrlListView_InsertItem',
+            'GUICtrlListView_JustifyColumn','GUICtrlListView_MapIDToIndex',
+            'GUICtrlListView_MapIndexToID','GUICtrlListView_RedrawItems',
+            'GUICtrlListView_RegisterSortCallBack',
+            'GUICtrlListView_RemoveAllGroups','GUICtrlListView_RemoveGroup',
+            'GUICtrlListView_Scroll','GUICtrlListView_SetBkColor',
+            'GUICtrlListView_SetBkImage','GUICtrlListView_SetCallBackMask',
+            'GUICtrlListView_SetColumn','GUICtrlListView_SetColumnOrder',
+            'GUICtrlListView_SetColumnOrderArray',
+            'GUICtrlListView_SetColumnWidth',
+            'GUICtrlListView_SetExtendedListViewStyle',
+            'GUICtrlListView_SetGroupInfo','GUICtrlListView_SetHotItem',
+            'GUICtrlListView_SetHoverTime','GUICtrlListView_SetIconSpacing',
+            'GUICtrlListView_SetImageList','GUICtrlListView_SetItem',
+            'GUICtrlListView_SetItemChecked','GUICtrlListView_SetItemCount',
+            'GUICtrlListView_SetItemCut','GUICtrlListView_SetItemDropHilited',
+            'GUICtrlListView_SetItemEx','GUICtrlListView_SetItemFocused',
+            'GUICtrlListView_SetItemGroupID','GUICtrlListView_SetItemImage',
+            'GUICtrlListView_SetItemIndent','GUICtrlListView_SetItemParam',
+            'GUICtrlListView_SetItemPosition',
+            'GUICtrlListView_SetItemPosition32',
+            'GUICtrlListView_SetItemSelected','GUICtrlListView_SetItemState',
+            'GUICtrlListView_SetItemStateImage','GUICtrlListView_SetItemText',
+            'GUICtrlListView_SetOutlineColor',
+            'GUICtrlListView_SetSelectedColumn',
+            'GUICtrlListView_SetSelectionMark','GUICtrlListView_SetTextBkColor',
+            'GUICtrlListView_SetTextColor','GUICtrlListView_SetToolTips',
+            'GUICtrlListView_SetUnicodeFormat','GUICtrlListView_SetView',
+            'GUICtrlListView_SetWorkAreas','GUICtrlListView_SimpleSort',
+            'GUICtrlListView_SortItems','GUICtrlListView_SubItemHitTest',
+            'GUICtrlListView_UnRegisterSortCallBack',
+            'GUICtrlMenu_AddMenuItem','GUICtrlMenu_AppendMenu',
+            'GUICtrlMenu_CheckMenuItem','GUICtrlMenu_CheckRadioItem',
+            'GUICtrlMenu_CreateMenu','GUICtrlMenu_CreatePopup',
+            'GUICtrlMenu_DeleteMenu','GUICtrlMenu_DestroyMenu',
+            'GUICtrlMenu_DrawMenuBar','GUICtrlMenu_EnableMenuItem',
+            'GUICtrlMenu_FindItem','GUICtrlMenu_FindParent',
+            'GUICtrlMenu_GetItemBmp','GUICtrlMenu_GetItemBmpChecked',
+            'GUICtrlMenu_GetItemBmpUnchecked','GUICtrlMenu_GetItemChecked',
+            'GUICtrlMenu_GetItemCount','GUICtrlMenu_GetItemData',
+            'GUICtrlMenu_GetItemDefault','GUICtrlMenu_GetItemDisabled',
+            'GUICtrlMenu_GetItemEnabled','GUICtrlMenu_GetItemGrayed',
+            'GUICtrlMenu_GetItemHighlighted','GUICtrlMenu_GetItemID',
+            'GUICtrlMenu_GetItemInfo','GUICtrlMenu_GetItemRect',
+            'GUICtrlMenu_GetItemRectEx','GUICtrlMenu_GetItemState',
+            'GUICtrlMenu_GetItemStateEx','GUICtrlMenu_GetItemSubMenu',
+            'GUICtrlMenu_GetItemText','GUICtrlMenu_GetItemType',
+            'GUICtrlMenu_GetMenu','GUICtrlMenu_GetMenuBackground',
+            'GUICtrlMenu_GetMenuBarInfo','GUICtrlMenu_GetMenuContextHelpID',
+            'GUICtrlMenu_GetMenuData','GUICtrlMenu_GetMenuDefaultItem',
+            'GUICtrlMenu_GetMenuHeight','GUICtrlMenu_GetMenuInfo',
+            'GUICtrlMenu_GetMenuStyle','GUICtrlMenu_GetSystemMenu',
+            'GUICtrlMenu_InsertMenuItem','GUICtrlMenu_InsertMenuItemEx',
+            'GUICtrlMenu_IsMenu','GUICtrlMenu_LoadMenu',
+            'GUICtrlMenu_MapAccelerator','GUICtrlMenu_MenuItemFromPoint',
+            'GUICtrlMenu_RemoveMenu','GUICtrlMenu_SetItemBitmaps',
+            'GUICtrlMenu_SetItemBmp','GUICtrlMenu_SetItemBmpChecked',
+            'GUICtrlMenu_SetItemBmpUnchecked','GUICtrlMenu_SetItemChecked',
+            'GUICtrlMenu_SetItemData','GUICtrlMenu_SetItemDefault',
+            'GUICtrlMenu_SetItemDisabled','GUICtrlMenu_SetItemEnabled',
+            'GUICtrlMenu_SetItemGrayed','GUICtrlMenu_SetItemHighlighted',
+            'GUICtrlMenu_SetItemID','GUICtrlMenu_SetItemInfo',
+            'GUICtrlMenu_SetItemState','GUICtrlMenu_SetItemSubMenu',
+            'GUICtrlMenu_SetItemText','GUICtrlMenu_SetItemType',
+            'GUICtrlMenu_SetMenu','GUICtrlMenu_SetMenuBackground',
+            'GUICtrlMenu_SetMenuContextHelpID','GUICtrlMenu_SetMenuData',
+            'GUICtrlMenu_SetMenuDefaultItem','GUICtrlMenu_SetMenuHeight',
+            'GUICtrlMenu_SetMenuInfo','GUICtrlMenu_SetMenuStyle',
+            'GUICtrlMenu_TrackPopupMenu','GUICtrlMonthCal_Create',
+            'GUICtrlMonthCal_Destroy','GUICtrlMonthCal_GetColor',
+            'GUICtrlMonthCal_GetColorArray','GUICtrlMonthCal_GetCurSel',
+            'GUICtrlMonthCal_GetCurSelStr','GUICtrlMonthCal_GetFirstDOW',
+            'GUICtrlMonthCal_GetFirstDOWStr','GUICtrlMonthCal_GetMaxSelCount',
+            'GUICtrlMonthCal_GetMaxTodayWidth',
+            'GUICtrlMonthCal_GetMinReqHeight','GUICtrlMonthCal_GetMinReqRect',
+            'GUICtrlMonthCal_GetMinReqRectArray',
+            'GUICtrlMonthCal_GetMinReqWidth','GUICtrlMonthCal_GetMonthDelta',
+            'GUICtrlMonthCal_GetMonthRange','GUICtrlMonthCal_GetMonthRangeMax',
+            'GUICtrlMonthCal_GetMonthRangeMaxStr',
+            'GUICtrlMonthCal_GetMonthRangeMin',
+            'GUICtrlMonthCal_GetMonthRangeMinStr',
+            'GUICtrlMonthCal_GetMonthRangeSpan','GUICtrlMonthCal_GetRange',
+            'GUICtrlMonthCal_GetRangeMax','GUICtrlMonthCal_GetRangeMaxStr',
+            'GUICtrlMonthCal_GetRangeMin','GUICtrlMonthCal_GetRangeMinStr',
+            'GUICtrlMonthCal_GetSelRange','GUICtrlMonthCal_GetSelRangeMax',
+            'GUICtrlMonthCal_GetSelRangeMaxStr',
+            'GUICtrlMonthCal_GetSelRangeMin',
+            'GUICtrlMonthCal_GetSelRangeMinStr','GUICtrlMonthCal_GetToday',
+            'GUICtrlMonthCal_GetTodayStr','GUICtrlMonthCal_GetUnicodeFormat',
+            'GUICtrlMonthCal_HitTest','GUICtrlMonthCal_SetColor',
+            'GUICtrlMonthCal_SetCurSel','GUICtrlMonthCal_SetDayState',
+            'GUICtrlMonthCal_SetFirstDOW','GUICtrlMonthCal_SetMaxSelCount',
+            'GUICtrlMonthCal_SetMonthDelta','GUICtrlMonthCal_SetRange',
+            'GUICtrlMonthCal_SetSelRange','GUICtrlMonthCal_SetToday',
+            'GUICtrlMonthCal_SetUnicodeFormat','GUICtrlRebar_AddBand',
+            'GUICtrlRebar_AddToolBarBand','GUICtrlRebar_BeginDrag',
+            'GUICtrlRebar_Create','GUICtrlRebar_DeleteBand',
+            'GUICtrlRebar_Destroy','GUICtrlRebar_DragMove',
+            'GUICtrlRebar_EndDrag','GUICtrlRebar_GetBandBackColor',
+            'GUICtrlRebar_GetBandBorders','GUICtrlRebar_GetBandBordersEx',
+            'GUICtrlRebar_GetBandChildHandle','GUICtrlRebar_GetBandChildSize',
+            'GUICtrlRebar_GetBandCount','GUICtrlRebar_GetBandForeColor',
+            'GUICtrlRebar_GetBandHeaderSize','GUICtrlRebar_GetBandID',
+            'GUICtrlRebar_GetBandIdealSize','GUICtrlRebar_GetBandLength',
+            'GUICtrlRebar_GetBandLParam','GUICtrlRebar_GetBandMargins',
+            'GUICtrlRebar_GetBandMarginsEx','GUICtrlRebar_GetBandRect',
+            'GUICtrlRebar_GetBandRectEx','GUICtrlRebar_GetBandStyle',
+            'GUICtrlRebar_GetBandStyleBreak',
+            'GUICtrlRebar_GetBandStyleChildEdge',
+            'GUICtrlRebar_GetBandStyleFixedBMP',
+            'GUICtrlRebar_GetBandStyleFixedSize',
+            'GUICtrlRebar_GetBandStyleGripperAlways',
+            'GUICtrlRebar_GetBandStyleHidden',
+            'GUICtrlRebar_GetBandStyleHideTitle',
+            'GUICtrlRebar_GetBandStyleNoGripper',
+            'GUICtrlRebar_GetBandStyleTopAlign',
+            'GUICtrlRebar_GetBandStyleUseChevron',
+            'GUICtrlRebar_GetBandStyleVariableHeight',
+            'GUICtrlRebar_GetBandText','GUICtrlRebar_GetBarHeight',
+            'GUICtrlRebar_GetBKColor','GUICtrlRebar_GetColorScheme',
+            'GUICtrlRebar_GetRowCount','GUICtrlRebar_GetRowHeight',
+            'GUICtrlRebar_GetTextColor','GUICtrlRebar_GetToolTips',
+            'GUICtrlRebar_GetUnicodeFormat','GUICtrlRebar_HitTest',
+            'GUICtrlRebar_IDToIndex','GUICtrlRebar_MaximizeBand',
+            'GUICtrlRebar_MinimizeBand','GUICtrlRebar_MoveBand',
+            'GUICtrlRebar_SetBandBackColor','GUICtrlRebar_SetBandForeColor',
+            'GUICtrlRebar_SetBandHeaderSize','GUICtrlRebar_SetBandID',
+            'GUICtrlRebar_SetBandIdealSize','GUICtrlRebar_SetBandLength',
+            'GUICtrlRebar_SetBandLParam','GUICtrlRebar_SetBandStyle',
+            'GUICtrlRebar_SetBandStyleBreak',
+            'GUICtrlRebar_SetBandStyleChildEdge',
+            'GUICtrlRebar_SetBandStyleFixedBMP',
+            'GUICtrlRebar_SetBandStyleFixedSize',
+            'GUICtrlRebar_SetBandStyleGripperAlways',
+            'GUICtrlRebar_SetBandStyleHidden',
+            'GUICtrlRebar_SetBandStyleHideTitle',
+            'GUICtrlRebar_SetBandStyleNoGripper',
+            'GUICtrlRebar_SetBandStyleTopAlign',
+            'GUICtrlRebar_SetBandStyleUseChevron',
+            'GUICtrlRebar_SetBandStyleVariableHeight',
+            'GUICtrlRebar_SetBandText','GUICtrlRebar_SetBKColor',
+            'GUICtrlRebar_SetColorScheme','GUICtrlRebar_SetTextColor',
+            'GUICtrlRebar_SetToolTips','GUICtrlRebar_SetUnicodeFormat',
+            'GUICtrlRebar_ShowBand','GUICtrlSlider_ClearSel',
+            'GUICtrlSlider_ClearTics','GUICtrlSlider_Create',
+            'GUICtrlSlider_Destroy','GUICtrlSlider_GetBuddy',
+            'GUICtrlSlider_GetChannelRect','GUICtrlSlider_GetLineSize',
+            'GUICtrlSlider_GetNumTics','GUICtrlSlider_GetPageSize',
+            'GUICtrlSlider_GetPos','GUICtrlSlider_GetPTics',
+            'GUICtrlSlider_GetRange','GUICtrlSlider_GetRangeMax',
+            'GUICtrlSlider_GetRangeMin','GUICtrlSlider_GetSel',
+            'GUICtrlSlider_GetSelEnd','GUICtrlSlider_GetSelStart',
+            'GUICtrlSlider_GetThumbLength','GUICtrlSlider_GetThumbRect',
+            'GUICtrlSlider_GetThumbRectEx','GUICtrlSlider_GetTic',
+            'GUICtrlSlider_GetTicPos','GUICtrlSlider_GetToolTips',
+            'GUICtrlSlider_GetUnicodeFormat','GUICtrlSlider_SetBuddy',
+            'GUICtrlSlider_SetLineSize','GUICtrlSlider_SetPageSize',
+            'GUICtrlSlider_SetPos','GUICtrlSlider_SetRange',
+            'GUICtrlSlider_SetRangeMax','GUICtrlSlider_SetRangeMin',
+            'GUICtrlSlider_SetSel','GUICtrlSlider_SetSelEnd',
+            'GUICtrlSlider_SetSelStart','GUICtrlSlider_SetThumbLength',
+            'GUICtrlSlider_SetTic','GUICtrlSlider_SetTicFreq',
+            'GUICtrlSlider_SetTipSide','GUICtrlSlider_SetToolTips',
+            'GUICtrlSlider_SetUnicodeFormat','GUICtrlStatusBar_Create',
+            'GUICtrlStatusBar_Destroy','GUICtrlStatusBar_EmbedControl',
+            'GUICtrlStatusBar_GetBorders','GUICtrlStatusBar_GetBordersHorz',
+            'GUICtrlStatusBar_GetBordersRect','GUICtrlStatusBar_GetBordersVert',
+            'GUICtrlStatusBar_GetCount','GUICtrlStatusBar_GetHeight',
+            'GUICtrlStatusBar_GetIcon','GUICtrlStatusBar_GetParts',
+            'GUICtrlStatusBar_GetRect','GUICtrlStatusBar_GetRectEx',
+            'GUICtrlStatusBar_GetText','GUICtrlStatusBar_GetTextFlags',
+            'GUICtrlStatusBar_GetTextLength','GUICtrlStatusBar_GetTextLengthEx',
+            'GUICtrlStatusBar_GetTipText','GUICtrlStatusBar_GetUnicodeFormat',
+            'GUICtrlStatusBar_GetWidth','GUICtrlStatusBar_IsSimple',
+            'GUICtrlStatusBar_Resize','GUICtrlStatusBar_SetBkColor',
+            'GUICtrlStatusBar_SetIcon','GUICtrlStatusBar_SetMinHeight',
+            'GUICtrlStatusBar_SetParts','GUICtrlStatusBar_SetSimple',
+            'GUICtrlStatusBar_SetText','GUICtrlStatusBar_SetTipText',
+            'GUICtrlStatusBar_SetUnicodeFormat','GUICtrlStatusBar_ShowHide',
+            'GUICtrlTab_Create','GUICtrlTab_DeleteAllItems',
+            'GUICtrlTab_DeleteItem','GUICtrlTab_DeselectAll',
+            'GUICtrlTab_Destroy','GUICtrlTab_FindTab','GUICtrlTab_GetCurFocus',
+            'GUICtrlTab_GetCurSel','GUICtrlTab_GetDisplayRect',
+            'GUICtrlTab_GetDisplayRectEx','GUICtrlTab_GetExtendedStyle',
+            'GUICtrlTab_GetImageList','GUICtrlTab_GetItem',
+            'GUICtrlTab_GetItemCount','GUICtrlTab_GetItemImage',
+            'GUICtrlTab_GetItemParam','GUICtrlTab_GetItemRect',
+            'GUICtrlTab_GetItemRectEx','GUICtrlTab_GetItemState',
+            'GUICtrlTab_GetItemText','GUICtrlTab_GetRowCount',
+            'GUICtrlTab_GetToolTips','GUICtrlTab_GetUnicodeFormat',
+            'GUICtrlTab_HighlightItem','GUICtrlTab_HitTest',
+            'GUICtrlTab_InsertItem','GUICtrlTab_RemoveImage',
+            'GUICtrlTab_SetCurFocus','GUICtrlTab_SetCurSel',
+            'GUICtrlTab_SetExtendedStyle','GUICtrlTab_SetImageList',
+            'GUICtrlTab_SetItem','GUICtrlTab_SetItemImage',
+            'GUICtrlTab_SetItemParam','GUICtrlTab_SetItemSize',
+            'GUICtrlTab_SetItemState','GUICtrlTab_SetItemText',
+            'GUICtrlTab_SetMinTabWidth','GUICtrlTab_SetPadding',
+            'GUICtrlTab_SetToolTips','GUICtrlTab_SetUnicodeFormat',
+            'GUICtrlToolbar_AddBitmap','GUICtrlToolbar_AddButton',
+            'GUICtrlToolbar_AddButtonSep','GUICtrlToolbar_AddString',
+            'GUICtrlToolbar_ButtonCount','GUICtrlToolbar_CheckButton',
+            'GUICtrlToolbar_ClickAccel','GUICtrlToolbar_ClickButton',
+            'GUICtrlToolbar_ClickIndex','GUICtrlToolbar_CommandToIndex',
+            'GUICtrlToolbar_Create','GUICtrlToolbar_Customize',
+            'GUICtrlToolbar_DeleteButton','GUICtrlToolbar_Destroy',
+            'GUICtrlToolbar_EnableButton','GUICtrlToolbar_FindToolbar',
+            'GUICtrlToolbar_GetAnchorHighlight','GUICtrlToolbar_GetBitmapFlags',
+            'GUICtrlToolbar_GetButtonBitmap','GUICtrlToolbar_GetButtonInfo',
+            'GUICtrlToolbar_GetButtonInfoEx','GUICtrlToolbar_GetButtonParam',
+            'GUICtrlToolbar_GetButtonRect','GUICtrlToolbar_GetButtonRectEx',
+            'GUICtrlToolbar_GetButtonSize','GUICtrlToolbar_GetButtonState',
+            'GUICtrlToolbar_GetButtonStyle','GUICtrlToolbar_GetButtonText',
+            'GUICtrlToolbar_GetColorScheme',
+            'GUICtrlToolbar_GetDisabledImageList',
+            'GUICtrlToolbar_GetExtendedStyle','GUICtrlToolbar_GetHotImageList',
+            'GUICtrlToolbar_GetHotItem','GUICtrlToolbar_GetImageList',
+            'GUICtrlToolbar_GetInsertMark','GUICtrlToolbar_GetInsertMarkColor',
+            'GUICtrlToolbar_GetMaxSize','GUICtrlToolbar_GetMetrics',
+            'GUICtrlToolbar_GetPadding','GUICtrlToolbar_GetRows',
+            'GUICtrlToolbar_GetString','GUICtrlToolbar_GetStyle',
+            'GUICtrlToolbar_GetStyleAltDrag',
+            'GUICtrlToolbar_GetStyleCustomErase','GUICtrlToolbar_GetStyleFlat',
+            'GUICtrlToolbar_GetStyleList','GUICtrlToolbar_GetStyleRegisterDrop',
+            'GUICtrlToolbar_GetStyleToolTips',
+            'GUICtrlToolbar_GetStyleTransparent',
+            'GUICtrlToolbar_GetStyleWrapable','GUICtrlToolbar_GetTextRows',
+            'GUICtrlToolbar_GetToolTips','GUICtrlToolbar_GetUnicodeFormat',
+            'GUICtrlToolbar_HideButton','GUICtrlToolbar_HighlightButton',
+            'GUICtrlToolbar_HitTest','GUICtrlToolbar_IndexToCommand',
+            'GUICtrlToolbar_InsertButton','GUICtrlToolbar_InsertMarkHitTest',
+            'GUICtrlToolbar_IsButtonChecked','GUICtrlToolbar_IsButtonEnabled',
+            'GUICtrlToolbar_IsButtonHidden',
+            'GUICtrlToolbar_IsButtonHighlighted',
+            'GUICtrlToolbar_IsButtonIndeterminate',
+            'GUICtrlToolbar_IsButtonPressed','GUICtrlToolbar_LoadBitmap',
+            'GUICtrlToolbar_LoadImages','GUICtrlToolbar_MapAccelerator',
+            'GUICtrlToolbar_MoveButton','GUICtrlToolbar_PressButton',
+            'GUICtrlToolbar_SetAnchorHighlight','GUICtrlToolbar_SetBitmapSize',
+            'GUICtrlToolbar_SetButtonBitMap','GUICtrlToolbar_SetButtonInfo',
+            'GUICtrlToolbar_SetButtonInfoEx','GUICtrlToolbar_SetButtonParam',
+            'GUICtrlToolbar_SetButtonSize','GUICtrlToolbar_SetButtonState',
+            'GUICtrlToolbar_SetButtonStyle','GUICtrlToolbar_SetButtonText',
+            'GUICtrlToolbar_SetButtonWidth','GUICtrlToolbar_SetCmdID',
+            'GUICtrlToolbar_SetColorScheme',
+            'GUICtrlToolbar_SetDisabledImageList',
+            'GUICtrlToolbar_SetDrawTextFlags','GUICtrlToolbar_SetExtendedStyle',
+            'GUICtrlToolbar_SetHotImageList','GUICtrlToolbar_SetHotItem',
+            'GUICtrlToolbar_SetImageList','GUICtrlToolbar_SetIndent',
+            'GUICtrlToolbar_SetIndeterminate','GUICtrlToolbar_SetInsertMark',
+            'GUICtrlToolbar_SetInsertMarkColor','GUICtrlToolbar_SetMaxTextRows',
+            'GUICtrlToolbar_SetMetrics','GUICtrlToolbar_SetPadding',
+            'GUICtrlToolbar_SetParent','GUICtrlToolbar_SetRows',
+            'GUICtrlToolbar_SetStyle','GUICtrlToolbar_SetStyleAltDrag',
+            'GUICtrlToolbar_SetStyleCustomErase','GUICtrlToolbar_SetStyleFlat',
+            'GUICtrlToolbar_SetStyleList','GUICtrlToolbar_SetStyleRegisterDrop',
+            'GUICtrlToolbar_SetStyleToolTips',
+            'GUICtrlToolbar_SetStyleTransparent',
+            'GUICtrlToolbar_SetStyleWrapable','GUICtrlToolbar_SetToolTips',
+            'GUICtrlToolbar_SetUnicodeFormat','GUICtrlToolbar_SetWindowTheme',
+            'GUICtrlTreeView_Add','GUICtrlTreeView_AddChild',
+            'GUICtrlTreeView_AddChildFirst','GUICtrlTreeView_AddFirst',
+            'GUICtrlTreeView_BeginUpdate','GUICtrlTreeView_ClickItem',
+            'GUICtrlTreeView_Create','GUICtrlTreeView_CreateDragImage',
+            'GUICtrlTreeView_CreateSolidBitMap','GUICtrlTreeView_Delete',
+            'GUICtrlTreeView_DeleteAll','GUICtrlTreeView_DeleteChildren',
+            'GUICtrlTreeView_Destroy','GUICtrlTreeView_DisplayRect',
+            'GUICtrlTreeView_DisplayRectEx','GUICtrlTreeView_EditText',
+            'GUICtrlTreeView_EndEdit','GUICtrlTreeView_EndUpdate',
+            'GUICtrlTreeView_EnsureVisible','GUICtrlTreeView_Expand',
+            'GUICtrlTreeView_ExpandedOnce','GUICtrlTreeView_FindItem',
+            'GUICtrlTreeView_FindItemEx','GUICtrlTreeView_GetBkColor',
+            'GUICtrlTreeView_GetBold','GUICtrlTreeView_GetChecked',
+            'GUICtrlTreeView_GetChildCount','GUICtrlTreeView_GetChildren',
+            'GUICtrlTreeView_GetCount','GUICtrlTreeView_GetCut',
+            'GUICtrlTreeView_GetDropTarget','GUICtrlTreeView_GetEditControl',
+            'GUICtrlTreeView_GetExpanded','GUICtrlTreeView_GetFirstChild',
+            'GUICtrlTreeView_GetFirstItem','GUICtrlTreeView_GetFirstVisible',
+            'GUICtrlTreeView_GetFocused','GUICtrlTreeView_GetHeight',
+            'GUICtrlTreeView_GetImageIndex',
+            'GUICtrlTreeView_GetImageListIconHandle',
+            'GUICtrlTreeView_GetIndent','GUICtrlTreeView_GetInsertMarkColor',
+            'GUICtrlTreeView_GetISearchString','GUICtrlTreeView_GetItemByIndex',
+            'GUICtrlTreeView_GetItemHandle','GUICtrlTreeView_GetItemParam',
+            'GUICtrlTreeView_GetLastChild','GUICtrlTreeView_GetLineColor',
+            'GUICtrlTreeView_GetNext','GUICtrlTreeView_GetNextChild',
+            'GUICtrlTreeView_GetNextSibling','GUICtrlTreeView_GetNextVisible',
+            'GUICtrlTreeView_GetNormalImageList',
+            'GUICtrlTreeView_GetParentHandle','GUICtrlTreeView_GetParentParam',
+            'GUICtrlTreeView_GetPrev','GUICtrlTreeView_GetPrevChild',
+            'GUICtrlTreeView_GetPrevSibling','GUICtrlTreeView_GetPrevVisible',
+            'GUICtrlTreeView_GetScrollTime','GUICtrlTreeView_GetSelected',
+            'GUICtrlTreeView_GetSelectedImageIndex',
+            'GUICtrlTreeView_GetSelection','GUICtrlTreeView_GetSiblingCount',
+            'GUICtrlTreeView_GetState','GUICtrlTreeView_GetStateImageIndex',
+            'GUICtrlTreeView_GetStateImageList','GUICtrlTreeView_GetText',
+            'GUICtrlTreeView_GetTextColor','GUICtrlTreeView_GetToolTips',
+            'GUICtrlTreeView_GetTree','GUICtrlTreeView_GetUnicodeFormat',
+            'GUICtrlTreeView_GetVisible','GUICtrlTreeView_GetVisibleCount',
+            'GUICtrlTreeView_HitTest','GUICtrlTreeView_HitTestEx',
+            'GUICtrlTreeView_HitTestItem','GUICtrlTreeView_Index',
+            'GUICtrlTreeView_InsertItem','GUICtrlTreeView_IsFirstItem',
+            'GUICtrlTreeView_IsParent','GUICtrlTreeView_Level',
+            'GUICtrlTreeView_SelectItem','GUICtrlTreeView_SelectItemByIndex',
+            'GUICtrlTreeView_SetBkColor','GUICtrlTreeView_SetBold',
+            'GUICtrlTreeView_SetChecked','GUICtrlTreeView_SetCheckedByIndex',
+            'GUICtrlTreeView_SetChildren','GUICtrlTreeView_SetCut',
+            'GUICtrlTreeView_SetDropTarget','GUICtrlTreeView_SetFocused',
+            'GUICtrlTreeView_SetHeight','GUICtrlTreeView_SetIcon',
+            'GUICtrlTreeView_SetImageIndex','GUICtrlTreeView_SetIndent',
+            'GUICtrlTreeView_SetInsertMark',
+            'GUICtrlTreeView_SetInsertMarkColor',
+            'GUICtrlTreeView_SetItemHeight','GUICtrlTreeView_SetItemParam',
+            'GUICtrlTreeView_SetLineColor','GUICtrlTreeView_SetNormalImageList',
+            'GUICtrlTreeView_SetScrollTime','GUICtrlTreeView_SetSelected',
+            'GUICtrlTreeView_SetSelectedImageIndex','GUICtrlTreeView_SetState',
+            'GUICtrlTreeView_SetStateImageIndex',
+            'GUICtrlTreeView_SetStateImageList','GUICtrlTreeView_SetText',
+            'GUICtrlTreeView_SetTextColor','GUICtrlTreeView_SetToolTips',
+            'GUICtrlTreeView_SetUnicodeFormat','GUICtrlTreeView_Sort',
+            'GUIImageList_Add','GUIImageList_AddBitmap','GUIImageList_AddIcon',
+            'GUIImageList_AddMasked','GUIImageList_BeginDrag',
+            'GUIImageList_Copy','GUIImageList_Create','GUIImageList_Destroy',
+            'GUIImageList_DestroyIcon','GUIImageList_DragEnter',
+            'GUIImageList_DragLeave','GUIImageList_DragMove',
+            'GUIImageList_Draw','GUIImageList_DrawEx','GUIImageList_Duplicate',
+            'GUIImageList_EndDrag','GUIImageList_GetBkColor',
+            'GUIImageList_GetIcon','GUIImageList_GetIconHeight',
+            'GUIImageList_GetIconSize','GUIImageList_GetIconSizeEx',
+            'GUIImageList_GetIconWidth','GUIImageList_GetImageCount',
+            'GUIImageList_GetImageInfoEx','GUIImageList_Remove',
+            'GUIImageList_ReplaceIcon','GUIImageList_SetBkColor',
+            'GUIImageList_SetIconSize','GUIImageList_SetImageCount',
+            'GUIImageList_Swap','GUIScrollBars_EnableScrollBar',
+            'GUIScrollBars_GetScrollBarInfoEx','GUIScrollBars_GetScrollBarRect',
+            'GUIScrollBars_GetScrollBarRGState',
+            'GUIScrollBars_GetScrollBarXYLineButton',
+            'GUIScrollBars_GetScrollBarXYThumbBottom',
+            'GUIScrollBars_GetScrollBarXYThumbTop',
+            'GUIScrollBars_GetScrollInfo','GUIScrollBars_GetScrollInfoEx',
+            'GUIScrollBars_GetScrollInfoMax','GUIScrollBars_GetScrollInfoMin',
+            'GUIScrollBars_GetScrollInfoPage','GUIScrollBars_GetScrollInfoPos',
+            'GUIScrollBars_GetScrollInfoTrackPos','GUIScrollBars_GetScrollPos',
+            'GUIScrollBars_GetScrollRange','GUIScrollBars_Init',
+            'GUIScrollBars_ScrollWindow','GUIScrollBars_SetScrollInfo',
+            'GUIScrollBars_SetScrollInfoMax','GUIScrollBars_SetScrollInfoMin',
+            'GUIScrollBars_SetScrollInfoPage','GUIScrollBars_SetScrollInfoPos',
+            'GUIScrollBars_SetScrollRange','GUIScrollBars_ShowScrollBar',
+            'GUIToolTip_Activate','GUIToolTip_AddTool','GUIToolTip_AdjustRect',
+            'GUIToolTip_BitsToTTF','GUIToolTip_Create','GUIToolTip_DelTool',
+            'GUIToolTip_Destroy','GUIToolTip_EnumTools',
+            'GUIToolTip_GetBubbleHeight','GUIToolTip_GetBubbleSize',
+            'GUIToolTip_GetBubbleWidth','GUIToolTip_GetCurrentTool',
+            'GUIToolTip_GetDelayTime','GUIToolTip_GetMargin',
+            'GUIToolTip_GetMarginEx','GUIToolTip_GetMaxTipWidth',
+            'GUIToolTip_GetText','GUIToolTip_GetTipBkColor',
+            'GUIToolTip_GetTipTextColor','GUIToolTip_GetTitleBitMap',
+            'GUIToolTip_GetTitleText','GUIToolTip_GetToolCount',
+            'GUIToolTip_GetToolInfo','GUIToolTip_HitTest',
+            'GUIToolTip_NewToolRect','GUIToolTip_Pop','GUIToolTip_PopUp',
+            'GUIToolTip_SetDelayTime','GUIToolTip_SetMargin',
+            'GUIToolTip_SetMaxTipWidth','GUIToolTip_SetTipBkColor',
+            'GUIToolTip_SetTipTextColor','GUIToolTip_SetTitle',
+            'GUIToolTip_SetToolInfo','GUIToolTip_SetWindowTheme',
+            'GUIToolTip_ToolExists','GUIToolTip_ToolToArray',
+            'GUIToolTip_TrackActivate','GUIToolTip_TrackPosition',
+            'GUIToolTip_TTFToBits','GUIToolTip_Update',
+            'GUIToolTip_UpdateTipText','HexToString','IE_Example',
+            'IE_Introduction','IE_VersionInfo','IEAction','IEAttach',
+            'IEBodyReadHTML','IEBodyReadText','IEBodyWriteHTML','IECreate',
+            'IECreateEmbedded','IEDocGetObj','IEDocInsertHTML',
+            'IEDocInsertText','IEDocReadHTML','IEDocWriteHTML',
+            'IEErrorHandlerDeRegister','IEErrorHandlerRegister','IEErrorNotify',
+            'IEFormElementCheckBoxSelect','IEFormElementGetCollection',
+            'IEFormElementGetObjByName','IEFormElementGetValue',
+            'IEFormElementOptionSelect','IEFormElementRadioSelect',
+            'IEFormElementSetValue','IEFormGetCollection','IEFormGetObjByName',
+            'IEFormImageClick','IEFormReset','IEFormSubmit',
+            'IEFrameGetCollection','IEFrameGetObjByName','IEGetObjById',
+            'IEGetObjByName','IEHeadInsertEventScript','IEImgClick',
+            'IEImgGetCollection','IEIsFrameSet','IELinkClickByIndex',
+            'IELinkClickByText','IELinkGetCollection','IELoadWait',
+            'IELoadWaitTimeout','IENavigate','IEPropertyGet','IEPropertySet',
+            'IEQuit','IETableGetCollection','IETableWriteToArray',
+            'IETagNameAllGetCollection','IETagNameGetCollection','Iif',
+            'INetExplorerCapable','INetGetSource','INetMail','INetSmtpMail',
+            'IsPressed','MathCheckDiv','Max','MemGlobalAlloc','MemGlobalFree',
+            'MemGlobalLock','MemGlobalSize','MemGlobalUnlock','MemMoveMemory',
+            'MemMsgBox','MemShowError','MemVirtualAlloc','MemVirtualAllocEx',
+            'MemVirtualFree','MemVirtualFreeEx','Min','MouseTrap',
+            'NamedPipes_CallNamedPipe','NamedPipes_ConnectNamedPipe',
+            'NamedPipes_CreateNamedPipe','NamedPipes_CreatePipe',
+            'NamedPipes_DisconnectNamedPipe',
+            'NamedPipes_GetNamedPipeHandleState','NamedPipes_GetNamedPipeInfo',
+            'NamedPipes_PeekNamedPipe','NamedPipes_SetNamedPipeHandleState',
+            'NamedPipes_TransactNamedPipe','NamedPipes_WaitNamedPipe',
+            'Net_Share_ConnectionEnum','Net_Share_FileClose',
+            'Net_Share_FileEnum','Net_Share_FileGetInfo','Net_Share_PermStr',
+            'Net_Share_ResourceStr','Net_Share_SessionDel',
+            'Net_Share_SessionEnum','Net_Share_SessionGetInfo',
+            'Net_Share_ShareAdd','Net_Share_ShareCheck','Net_Share_ShareDel',
+            'Net_Share_ShareEnum','Net_Share_ShareGetInfo',
+            'Net_Share_ShareSetInfo','Net_Share_StatisticsGetSvr',
+            'Net_Share_StatisticsGetWrk','Now','NowCalc','NowCalcDate',
+            'NowDate','NowTime','PathFull','PathMake','PathSplit',
+            'ProcessGetName','ProcessGetPriority','Radian',
+            'ReplaceStringInFile','RunDOS','ScreenCapture_Capture',
+            'ScreenCapture_CaptureWnd','ScreenCapture_SaveImage',
+            'ScreenCapture_SetBMPFormat','ScreenCapture_SetJPGQuality',
+            'ScreenCapture_SetTIFColorDepth','ScreenCapture_SetTIFCompression',
+            'Security__AdjustTokenPrivileges','Security__GetAccountSid',
+            'Security__GetLengthSid','Security__GetTokenInformation',
+            'Security__ImpersonateSelf','Security__IsValidSid',
+            'Security__LookupAccountName','Security__LookupAccountSid',
+            'Security__LookupPrivilegeValue','Security__OpenProcessToken',
+            'Security__OpenThreadToken','Security__OpenThreadTokenEx',
+            'Security__SetPrivilege','Security__SidToStringSid',
+            'Security__SidTypeStr','Security__StringSidToSid','SendMessage',
+            'SendMessageA','SetDate','SetTime','Singleton','SoundClose',
+            'SoundLength','SoundOpen','SoundPause','SoundPlay','SoundPos',
+            'SoundResume','SoundSeek','SoundStatus','SoundStop',
+            'SQLite_Changes','SQLite_Close','SQLite_Display2DResult',
+            'SQLite_Encode','SQLite_ErrCode','SQLite_ErrMsg','SQLite_Escape',
+            'SQLite_Exec','SQLite_FetchData','SQLite_FetchNames',
+            'SQLite_GetTable','SQLite_GetTable2d','SQLite_LastInsertRowID',
+            'SQLite_LibVersion','SQLite_Open','SQLite_Query',
+            'SQLite_QueryFinalize','SQLite_QueryReset','SQLite_QuerySingleRow',
+            'SQLite_SaveMode','SQLite_SetTimeout','SQLite_Shutdown',
+            'SQLite_SQLiteExe','SQLite_Startup','SQLite_TotalChanges',
+            'StringAddComma','StringBetween','StringEncrypt','StringInsert',
+            'StringProper','StringRepeat','StringReverse','StringSplit',
+            'StringToHex','TCPIpToName','TempFile','TicksToTime','Timer_Diff',
+            'Timer_GetTimerID','Timer_Init','Timer_KillAllTimers',
+            'Timer_KillTimer','Timer_SetTimer','TimeToTicks','VersionCompare',
+            'viClose','viExecCommand','viFindGpib','viGpibBusReset','viGTL',
+            'viOpen','viSetAttribute','viSetTimeout','WeekNumberISO',
+            'WinAPI_AttachConsole','WinAPI_AttachThreadInput','WinAPI_Beep',
+            'WinAPI_BitBlt','WinAPI_CallNextHookEx','WinAPI_Check',
+            'WinAPI_ClientToScreen','WinAPI_CloseHandle',
+            'WinAPI_CommDlgExtendedError','WinAPI_CopyIcon',
+            'WinAPI_CreateBitmap','WinAPI_CreateCompatibleBitmap',
+            'WinAPI_CreateCompatibleDC','WinAPI_CreateEvent',
+            'WinAPI_CreateFile','WinAPI_CreateFont','WinAPI_CreateFontIndirect',
+            'WinAPI_CreateProcess','WinAPI_CreateSolidBitmap',
+            'WinAPI_CreateSolidBrush','WinAPI_CreateWindowEx',
+            'WinAPI_DefWindowProc','WinAPI_DeleteDC','WinAPI_DeleteObject',
+            'WinAPI_DestroyIcon','WinAPI_DestroyWindow','WinAPI_DrawEdge',
+            'WinAPI_DrawFrameControl','WinAPI_DrawIcon','WinAPI_DrawIconEx',
+            'WinAPI_DrawText','WinAPI_EnableWindow','WinAPI_EnumDisplayDevices',
+            'WinAPI_EnumWindows','WinAPI_EnumWindowsPopup',
+            'WinAPI_EnumWindowsTop','WinAPI_ExpandEnvironmentStrings',
+            'WinAPI_ExtractIconEx','WinAPI_FatalAppExit','WinAPI_FillRect',
+            'WinAPI_FindExecutable','WinAPI_FindWindow','WinAPI_FlashWindow',
+            'WinAPI_FlashWindowEx','WinAPI_FloatToInt',
+            'WinAPI_FlushFileBuffers','WinAPI_FormatMessage','WinAPI_FrameRect',
+            'WinAPI_FreeLibrary','WinAPI_GetAncestor','WinAPI_GetAsyncKeyState',
+            'WinAPI_GetClassName','WinAPI_GetClientHeight',
+            'WinAPI_GetClientRect','WinAPI_GetClientWidth',
+            'WinAPI_GetCurrentProcess','WinAPI_GetCurrentProcessID',
+            'WinAPI_GetCurrentThread','WinAPI_GetCurrentThreadId',
+            'WinAPI_GetCursorInfo','WinAPI_GetDC','WinAPI_GetDesktopWindow',
+            'WinAPI_GetDeviceCaps','WinAPI_GetDIBits','WinAPI_GetDlgCtrlID',
+            'WinAPI_GetDlgItem','WinAPI_GetFileSizeEx','WinAPI_GetFocus',
+            'WinAPI_GetForegroundWindow','WinAPI_GetIconInfo',
+            'WinAPI_GetLastError','WinAPI_GetLastErrorMessage',
+            'WinAPI_GetModuleHandle','WinAPI_GetMousePos','WinAPI_GetMousePosX',
+            'WinAPI_GetMousePosY','WinAPI_GetObject','WinAPI_GetOpenFileName',
+            'WinAPI_GetOverlappedResult','WinAPI_GetParent',
+            'WinAPI_GetProcessAffinityMask','WinAPI_GetSaveFileName',
+            'WinAPI_GetStdHandle','WinAPI_GetStockObject','WinAPI_GetSysColor',
+            'WinAPI_GetSysColorBrush','WinAPI_GetSystemMetrics',
+            'WinAPI_GetTextExtentPoint32','WinAPI_GetWindow',
+            'WinAPI_GetWindowDC','WinAPI_GetWindowHeight',
+            'WinAPI_GetWindowLong','WinAPI_GetWindowRect',
+            'WinAPI_GetWindowText','WinAPI_GetWindowThreadProcessId',
+            'WinAPI_GetWindowWidth','WinAPI_GetXYFromPoint',
+            'WinAPI_GlobalMemStatus','WinAPI_GUIDFromString',
+            'WinAPI_GUIDFromStringEx','WinAPI_HiWord','WinAPI_InProcess',
+            'WinAPI_IntToFloat','WinAPI_InvalidateRect','WinAPI_IsClassName',
+            'WinAPI_IsWindow','WinAPI_IsWindowVisible','WinAPI_LoadBitmap',
+            'WinAPI_LoadImage','WinAPI_LoadLibrary','WinAPI_LoadLibraryEx',
+            'WinAPI_LoadShell32Icon','WinAPI_LoadString','WinAPI_LocalFree',
+            'WinAPI_LoWord','WinAPI_MakeDWord','WinAPI_MAKELANGID',
+            'WinAPI_MAKELCID','WinAPI_MakeLong','WinAPI_MessageBeep',
+            'WinAPI_Mouse_Event','WinAPI_MoveWindow','WinAPI_MsgBox',
+            'WinAPI_MulDiv','WinAPI_MultiByteToWideChar',
+            'WinAPI_MultiByteToWideCharEx','WinAPI_OpenProcess',
+            'WinAPI_PointFromRect','WinAPI_PostMessage','WinAPI_PrimaryLangId',
+            'WinAPI_PtInRect','WinAPI_ReadFile','WinAPI_ReadProcessMemory',
+            'WinAPI_RectIsEmpty','WinAPI_RedrawWindow',
+            'WinAPI_RegisterWindowMessage','WinAPI_ReleaseCapture',
+            'WinAPI_ReleaseDC','WinAPI_ScreenToClient','WinAPI_SelectObject',
+            'WinAPI_SetBkColor','WinAPI_SetCapture','WinAPI_SetCursor',
+            'WinAPI_SetDefaultPrinter','WinAPI_SetDIBits','WinAPI_SetEvent',
+            'WinAPI_SetFocus','WinAPI_SetFont','WinAPI_SetHandleInformation',
+            'WinAPI_SetLastError','WinAPI_SetParent',
+            'WinAPI_SetProcessAffinityMask','WinAPI_SetSysColors',
+            'WinAPI_SetTextColor','WinAPI_SetWindowLong','WinAPI_SetWindowPos',
+            'WinAPI_SetWindowsHookEx','WinAPI_SetWindowText',
+            'WinAPI_ShowCursor','WinAPI_ShowError','WinAPI_ShowMsg',
+            'WinAPI_ShowWindow','WinAPI_StringFromGUID','WinAPI_SubLangId',
+            'WinAPI_SystemParametersInfo','WinAPI_TwipsPerPixelX',
+            'WinAPI_TwipsPerPixelY','WinAPI_UnhookWindowsHookEx',
+            'WinAPI_UpdateLayeredWindow','WinAPI_UpdateWindow',
+            'WinAPI_ValidateClassName','WinAPI_WaitForInputIdle',
+            'WinAPI_WaitForMultipleObjects','WinAPI_WaitForSingleObject',
+            'WinAPI_WideCharToMultiByte','WinAPI_WindowFromPoint',
+            'WinAPI_WriteConsole','WinAPI_WriteFile',
+            'WinAPI_WriteProcessMemory','WinNet_AddConnection',
+            'WinNet_AddConnection2','WinNet_AddConnection3',
+            'WinNet_CancelConnection','WinNet_CancelConnection2',
+            'WinNet_CloseEnum','WinNet_ConnectionDialog',
+            'WinNet_ConnectionDialog1','WinNet_DisconnectDialog',
+            'WinNet_DisconnectDialog1','WinNet_EnumResource',
+            'WinNet_GetConnection','WinNet_GetConnectionPerformance',
+            'WinNet_GetLastError','WinNet_GetNetworkInformation',
+            'WinNet_GetProviderName','WinNet_GetResourceInformation',
+            'WinNet_GetResourceParent','WinNet_GetUniversalName',
+            'WinNet_GetUser','WinNet_OpenEnum','WinNet_RestoreConnection',
+            'WinNet_UseConnection','Word_VersionInfo','WordAttach','WordCreate',
+            'WordDocAdd','WordDocAddLink','WordDocAddPicture','WordDocClose',
+            'WordDocFindReplace','WordDocGetCollection',
+            'WordDocLinkGetCollection','WordDocOpen','WordDocPrint',
+            'WordDocPropertyGet','WordDocPropertySet','WordDocSave',
+            'WordDocSaveAs','WordErrorHandlerDeRegister',
+            'WordErrorHandlerRegister','WordErrorNotify','WordMacroRun',
+            'WordPropertyGet','WordPropertySet','WordQuit'
             ),
         5 => array(
-            '#include', '#include-once', '#notrayicon'
+            'ce','comments-end','comments-start','cs','include','include-once',
+            'NoTrayIcon','RequireAdmin'
             ),
         6 => array(
-            '#forceref', '#compiler_allow_decompile', '#compiler_au3check_dat',
-            '#compiler_au3check_parameters',
-            '#compiler_au3check_stop_onwarning', '#compiler_aut2exe',
-            '#compiler_autoit3', '#compiler_compression', '#compiler_icon',
-            '#compiler_outfile', '#compiler_outfile_type',
-            '#compiler_passphrase', '#compiler_plugin_funcs',
-            '#compiler_prompt', '#compiler_res_comment',
-            '#compiler_res_description', '#compiler_res_field',
-            '#compiler_res_field1name', '#compiler_res_field1value',
-            '#compiler_res_field2name', '#compiler_res_field2value',
-            '#compiler_res_fileversion',
-            '#compiler_res_fileversion_autoincrement',
-            '#compiler_res_legalcopyright', '#compiler_run_after',
-            '#compiler_run_au3check', '#compiler_run_before',
-            '#compiler_run_cvswrapper', '#compiler_run_tidy',
-            '#compiler_tidy_stop_onerror', '#compiler_useupx', '#endregion',
-            '#region', '#run_debug_mode', '#tidy_parameters'
+            'AutoIt3Wrapper_Au3Check_Parameters',
+            'AutoIt3Wrapper_Au3Check_Stop_OnWarning',
+            'AutoIt3Wrapper_Change2CUI','AutoIt3Wrapper_Compression',
+            'AutoIt3Wrapper_cvsWrapper_Parameters','AutoIt3Wrapper_Icon',
+            'AutoIt3Wrapper_Outfile','AutoIt3Wrapper_Outfile_Type',
+            'AutoIt3Wrapper_Plugin_Funcs','AutoIt3Wrapper_Res_Comment',
+            'AutoIt3Wrapper_Res_Description','AutoIt3Wrapper_Res_Field',
+            'AutoIt3Wrapper_Res_File_Add','AutoIt3Wrapper_Res_Fileversion',
+            'AutoIt3Wrapper_Res_FileVersion_AutoIncrement',
+            'AutoIt3Wrapper_Res_Icon_Add','AutoIt3Wrapper_Res_Language',
+            'AutoIt3Wrapper_Res_LegalCopyright',
+            'AutoIt3Wrapper_res_requestedExecutionLevel',
+            'AutoIt3Wrapper_Res_SaveSource','AutoIt3Wrapper_Run_After',
+            'AutoIt3Wrapper_Run_Au3check','AutoIt3Wrapper_Run_Before',
+            'AutoIt3Wrapper_Run_cvsWrapper','AutoIt3Wrapper_Run_Debug_Mode',
+            'AutoIt3Wrapper_Run_Obfuscator','AutoIt3Wrapper_Run_Tidy',
+            'AutoIt3Wrapper_Tidy_Stop_OnError','AutoIt3Wrapper_UseAnsi',
+            'AutoIt3Wrapper_UseUpx','AutoIt3Wrapper_UseX64',
+            'AutoIt3Wrapper_Version','EndRegion','forceref',
+            'Obfuscator_Ignore_Funcs','Obfuscator_Ignore_Variables',
+            'Obfuscator_Parameters','Region','Tidy_Parameters'
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']',
-        '+', '-', '*', '/', '&', '^',
-        '=', '+=', '-=', '*=', '/=', '&=',
-        '==', '<', '<=', '>', '>=',
-        ',',
+        '(',')','[',']',
+        '+','-','*','/','&','^',
+        '=','+=','-=','*=','/=','&=',
+        '==','<','<=','>','>=',
+        ',','.'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -427,7 +1127,7 @@ $language_data = array (
             ),
         'SCRIPT' => array(
             )
-            ),
+        ),
     'URLS' => array(
         1 => 'http://www.autoitscript.com/autoit3/docs/keywords.htm',
         2 => 'http://www.autoitscript.com/autoit3/docs/macros.htm',
@@ -442,7 +1142,7 @@ $language_data = array (
         ),
     'REGEXPS' => array(
         //Variables
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*",
+        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*'
         ),
     'STRICT_MODE_APPLIES' => GESHI_MAYBE,
     'SCRIPT_DELIMITERS' => array(
@@ -452,7 +1152,20 @@ $language_data = array (
         1 => true,
         2 => true,
         3 => true
+        ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            4 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)\_'
+            ),
+            5 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)\#'
+            ),
+            6 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)\#'
+            )
         )
+    )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/avisynth.php b/inc/geshi/avisynth.php
new file mode 100644
index 0000000000000000000000000000000000000000..a3f60d0dd0cffe4fab21223482db1ac859654335
--- /dev/null
+++ b/inc/geshi/avisynth.php
@@ -0,0 +1,194 @@
+<?php
+/*************************************************************************************
+ * avisynth.php
+ * --------
+ * Author: Ryan Jones (sciguyryan@gmail.com)
+ * Copyright: (c) 2008 Ryan Jones
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/10/08
+ *
+ * AviSynth language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/08 (1.0.8.1)
+ *  -  First Release
+ *
+ * TODO (updated 2008/10/08)
+ * -------------------------
+ * * There are also some special words that can't currently be specified directly in GeSHi as they may
+ *      also be used as variables which would really mess things up.
+ * * Also there is an issue with the escape character as this language uses a muti-character escape system. Escape char should be """ but has been left
+ *      as empty due to this restiction.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'AviSynth',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array('/*' => '*/', '[*' => '*]'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        //  Reserved words.
+        1 => array(
+            'try', 'cache', 'function', 'global', 'return'
+            ),
+        // Constants / special variables.
+        2 => array(
+            'true', 'yes', 'false', 'no', '__END__'
+            ),
+        // Internal Filters.
+        3 => array(
+            'AviSource', 'AviFileSource', 'AddBorders', 'AlignedSplice', 'AssumeFPS', 'AssumeScaledFPS',
+            'AssumeFrameBased', 'AssumeFieldBased', 'AssumeBFF', 'AssumeTFF', 'Amplify', 'AmplifydB',
+            'AssumeSampleRate', 'AudioDub', 'AudioDubEx', 'Animate', 'ApplyRange',
+            'BicubicResize', 'BilinearResize', 'BlackmanResize', 'Blur', 'Bob', 'BlankClip', 'Blackness',
+            'ColorYUV', 'ConvertBackToYUY2', 'ConvertToRGB', 'ConvertToRGB24', 'ConvertToRGB32',
+            'ConvertToYUY2', 'ConvertToY8', 'ConvertToYV411', 'ConvertToYV12', 'ConvertToYV16', 'ConvertToYV24',
+            'ColorKeyMask', 'Crop', 'CropBottom', 'ChangeFPS', 'ConvertFPS', 'ComplementParity', 'ConvertAudioTo8bit',
+            'ConvertAudioTo16bit', 'ConvertAudioTo24bit', 'ConvertAudioTo32bit', 'ConvertAudioToFloat', 'ConvertToMono',
+            'ConditionalFilter', 'ConditionalReader', 'ColorBars', 'Compare',
+            'DirectShowSource', 'DeleteFrame', 'Dissolve', 'DuplicateFrame', 'DoubleWeave', 'DelayAudio',
+            'EnsureVBRMP3Sync',
+            'FixLuminance', 'FlipHorizontal', 'FlipVertical', 'FixBrokenChromaUpsampling', 'FadeIn0', 'FadeIn',
+            'FadeIn2', 'FadeOut0', 'FadeOut', 'FadeOut2', 'FadeIO0', 'FadeIO', 'FadeIO2', 'FreezeFrame', 'FrameEvaluate',
+            'GreyScale', 'GaussResize', 'GeneralConvolution', 'GetChannel', 'GetLeftChannel', 'GetRightChannel',
+            'HorizontalReduceBy2', 'Histogram',
+            'ImageReader', 'ImageSource', 'ImageWriter', 'Invert', 'Interleave', 'Info',
+            'KillAudio', 'KillVideo',
+            'Levels', 'Limiter', 'Layer', 'Letterbox', 'LanczosResize', 'Lanczos4Resize', 'Loop',
+            'MergeARGB', 'MergeRGB', 'MergeChroma', 'MergeLuma', 'Merge', 'Mask', 'MaskHS', 'MergeChannels', 'MixAudio',
+            'MonoToStereo', 'MessageClip',
+            'Normalize',
+            'OpenDMLSource', 'Overlay',
+            'PointResize', 'PeculiarBlend', 'Pulldown',
+            'RGBAdjust', 'ResetMask', 'Reverse', 'ResampleAudio', 'ReduceBy2',
+            'SegmentedAviSource', 'SegmentedDirectShowSource', 'SoundOut', 'ShowAlpha', 'ShowRed', 'ShowGreen',
+            'ShowBlue', 'SwapUV', 'Subtract', 'SincResize', 'Spline16Resize', 'Spline36Resize', 'Spline64Resize',
+            'SelectEven', 'SelectOdd', 'SelectEvery', 'SelectRangeEvery', 'Sharpen', 'SpatialSoften', 'SeparateFields',
+            'ShowFiveVersions', 'ShowFrameNumber', 'ShowSMPTE', 'ShowTime', 'StackHorizontal', 'StackVertical', 'Subtitle',
+            'SwapFields', 'SuperEQ', 'SSRC', 'ScriptClip',
+            'Tweak', 'TurnLeft', 'TurnRight', 'Turn180', 'TemporalSoften', 'TimeStretch', 'TCPServer', 'TCPSource', 'Trim',
+            'Tone',
+            'UToY', 'UToY8', 'UnalignedSplice',
+            'VToY', 'VToY8', 'VerticalReduceBy2', 'Version',
+            'WavSource', 'Weave', 'WriteFile', 'WriteFileIf', 'WriteFileStart', 'WriteFileEnd',
+            'YToUV'
+            ),
+        // Internal functions.
+        4 => array(
+            'Abs', 'Apply', 'Assert', 'AverageLuma', 'AverageChromaU', 'AverageChromaV',
+            'Ceil', 'Cos', 'Chr', 'ChromaUDifference', 'ChromaVDifference',
+            'Defined', 'Default',
+            'Exp', 'Exist', 'Eval',
+            'Floor', 'Frac', 'Float', 'Findstr', 'GetMTMode',
+            'HexValue',
+            'Int', 'IsBool', 'IsClip', 'IsFloat', 'IsInt', 'IsString', 'Import',
+            'LoadPlugin', 'Log', 'LCase', 'LeftStr', 'LumaDifference', 'LoadVirtualDubPlugin', 'LoadVFAPIPlugin',
+            'LoadCPlugin', 'Load_Stdcall_Plugin',
+            'Max', 'MulDiv', 'MidStr',
+            'NOP',
+            'OPT_AllowFloatAudio', 'OPT_UseWaveExtensible',
+            'Pi', 'Pow',
+            'Round', 'Rand', 'RevStr', 'RightStr', 'RGBDifference', 'RGBDifferenceFromPrevious', 'RGBDifferenceToNext',
+            'Sin', 'Sqrt', 'Sign', 'Spline', 'StrLen', 'String', 'Select', 'SetMemoryMax', 'SetWorkingDir', 'SetMTMode',
+            'SetPlanarLegacyAlignment',
+            'Time',
+            'UCase', 'UDifferenceFromPrevious', 'UDifferenceToNext', 'UPlaneMax', 'UPlaneMin', 'UPlaneMedian',
+            'UPlaneMinMaxDifference',
+            'Value', 'VersionNumber', 'VersionString', 'VDifferenceFromPrevious', 'VDifferenceToNext', 'VPlaneMax',
+            'VPlaneMin', 'VPlaneMedian', 'VPlaneMinMaxDifference',
+            'YDifferenceFromPrevious', 'YDifferenceToNext', 'YPlaneMax', 'YPlaneMin', 'YPlaneMedian',
+            'YPlaneMinMaxDifference'
+            )
+        ),
+    'SYMBOLS' => array(
+        '+', '++', '-', '--', '/', '*', '%',
+        '=', '==', '<', '<=', '>', '>=', '<>', '!=',
+        '!', '?', ':',
+        '|', '||', '&&',
+        '\\',
+        '(', ')', '{', '}',
+        '.', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color:#9966CC; font-weight:bold;',
+            2 => 'color:#0000FF; font-weight:bold;',
+            3 => 'color:#CC3300; font-weight:bold;',
+            4 => 'color:#660000; font-weight:bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color:#008000; font-style:italic;',
+            'MULTI' => 'color:#000080; font-style:italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color:#000099;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color:#006600; font-weight:bold;'
+            ),
+        'STRINGS' => array(
+            0 => 'color:#996600;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color:#006666;'
+            ),
+        'METHODS' => array(
+            1 => 'color:#9900CC;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color:#006600; font-weight:bold;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://avisynth.org/mediawiki/{FNAME}',
+        4 => ''
+        ),
+    'REGEXPS' => array(
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+?>
diff --git a/inc/geshi/bash.php b/inc/geshi/bash.php
index 1dc64161ec95c0a1800dbd0f4b39b25a48ed4cfa..b41f895ae1cfbbd11bb64d1844757f8a91836fbd 100644
--- a/inc/geshi/bash.php
+++ b/inc/geshi/bash.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Andreas Gohr (andi@splitbrain.org)
  * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/20
  *
  * BASH language file for GeSHi.
@@ -63,11 +63,27 @@ $language_data = array (
         //Variables
         1 => "/\\$\\{[^\\n\\}]*?\\}/i",
         //BASH-style Heredoc
-        2 => '/<<-?\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU'
+        2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
+        //Escaped String Starters
+        3 => "/\\\\['\"]/siU"
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
+    'QUOTEMARKS' => array('"'),
+    'HARDQUOTE' => array("'", "'"),
+    'HARDESCAPE' => array("\'"),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[nfrtv\\$\\\"\n]#i",
+        // $var
+        2 => "#\\$[a-z_][a-z0-9_]*#i",
+        // ${...}
+        3 => "/\\$\\{[^\\n\\}]*?\\}/i",
+        // $(...)
+        4 => "/\\$\\([^\\n\\)]*?\\)/i",
+        // `...`
+        5 => "/`[^`]*`/"
+        ),
     'KEYWORDS' => array(
         1 => array(
             'case', 'do', 'done', 'elif', 'else', 'esac', 'fi', 'for', 'function',
@@ -190,16 +206,23 @@ $language_data = array (
         'COMMENTS' => array(
             0 => 'color: #666666; font-style: italic;',
             1 => 'color: #800000;',
-            2 => 'color: #cc0000; font-style: italic;'
+            2 => 'color: #cc0000; font-style: italic;',
+            3 => 'color: #000000; font-weight: bold;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #007800;',
+            3 => 'color: #007800;',
+            4 => 'color: #007800;',
+            5 => 'color: #780078;',
+            'HARD' => 'color: #000099; font-weight: bold;'
             ),
         'BRACKETS' => array(
             0 => 'color: #7a0874; font-weight: bold;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #ff0000;',
+            'HARD' => 'color: #ff0000;'
             ),
         'NUMBERS' => array(
             0 => 'color: #000000;'
@@ -233,11 +256,11 @@ $language_data = array (
         //Variables without braces
         1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*",
         //Variable assignment
-        2 => "(?<![\.a-zA-Z_])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)",
+        2 => "(?<![\.a-zA-Z_\-])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)",
         //Shorthand shell variables
         4 => "\\$[*#\$\\-\\?!]",
         //Parameters of commands
-        5 => "(?<=\s)-[0-9a-zA-Z\-]+(?=[\s=]|$)"
+        5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)"
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
@@ -251,9 +274,9 @@ $language_data = array (
         ),
         'KEYWORDS' => array(
             'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
-            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%])"
+            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%\\/])"
         )
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/basic4gl.php b/inc/geshi/basic4gl.php
index aa98ac1a950e8836fc51fce3bdd15802043cfc30..a7b00b95dfa33947bc9f8f624023c295a80fcf76 100644
--- a/inc/geshi/basic4gl.php
+++ b/inc/geshi/basic4gl.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
  * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/09/15
  *
  * Basic4GL language file for GeSHi.
diff --git a/inc/geshi/bf.php b/inc/geshi/bf.php
new file mode 100644
index 0000000000000000000000000000000000000000..e5dcc42e237dcb72f4277df526b9304a7948a7e8
--- /dev/null
+++ b/inc/geshi/bf.php
@@ -0,0 +1,114 @@
+<?php
+/*************************************************************************************
+ * bf.php
+ * ----------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/10/31
+ *
+ * Brainfuck language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/31 (1.0.8.1)
+ *   -  First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+$language_data = array (
+    'LANG_NAME' => 'Brainfuck',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(1 => '/[^\n+\-<>\[\]\.\,Y]+/s'),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        ),
+    'SYMBOLS' => array(
+        0 => array('+', '-'),
+        1 => array('[', ']'),
+        2 => array('<', '>'),
+        3 => array('.', ','),
+        4 => array('Y') //Brainfork Extension ;-)
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #006600;',
+            1 => 'color: #660000;',
+            2 => 'color: #000066;',
+            3 => 'color: #660066;',
+            4 => 'color: #666600;'
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'STRINGS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+            ),
+        'KEYWORDS' => array(
+            'DISALLOW_BEFORE' => '',
+            'DISALLOW_AFTER' => ''
+            )
+        )
+);
+
+?>
diff --git a/inc/geshi/blitzbasic.php b/inc/geshi/blitzbasic.php
index 0e087d2f3c5a09818629e0d90d77d9ac91bbbf7b..a8c3259e1f4cd25d5a3e9f02b5ede0be026e3e52 100644
--- a/inc/geshi/blitzbasic.php
+++ b/inc/geshi/blitzbasic.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: P�draig O`Connel (info@moonsword.info)
  * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 16.10.2005
  *
  * BlitzBasic language file for GeSHi.
diff --git a/inc/geshi/bnf.php b/inc/geshi/bnf.php
index 4b61714375c173580748800962cd1569f1a0d0e0..c9b3aae37e2922df16b59b31ed4bbbf70df75c3d 100644
--- a/inc/geshi/bnf.php
+++ b/inc/geshi/bnf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us)
  * Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/09/28
  *
  * BNF (Backus-Naur form) language file for GeSHi.
diff --git a/inc/geshi/boo.php b/inc/geshi/boo.php
index 9e60ccb10c8bf6a37527936cd55ee12beef518dd..1741d2c62e56ab6a809aa0a31f9ad4346e339c5d 100644
--- a/inc/geshi/boo.php
+++ b/inc/geshi/boo.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
  * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/09/10
  *
  * Boo language file for GeSHi.
@@ -48,104 +48,104 @@ $language_data = array (
     'HARDESCAPE' => array('\"""'),
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
-        'namespace' => array(
+        1 => array(//Namespace
             'namespace', 'import', 'from'
             ),
-        'jump' => array(
+        2 => array(//Jump
             'yield', 'return', 'goto', 'continue', 'break'
             ),
-        'conditional' => array(
+        3 => array(//Conditional
             'while', 'unless', 'then', 'in', 'if', 'for', 'else', 'elif'
             ),
-        'property' => array(
+        4 => array(//Property
             'set', 'get'
             ),
-        'exception' => array(
+        5 => array(//Exception
             'try', 'raise', 'failure', 'except', 'ensure'
             ),
-        'visibility' => array(
+        6 => array(//Visibility
             'public', 'private', 'protected', 'internal'
             ),
-        'define' => array(
+        7 => array(//Define
             'struct', 'ref', 'of', 'interface', 'event', 'enum', 'do', 'destructor', 'def', 'constructor', 'class'
             ),
-        'cast' => array(
+        8 => array(//Cast
             'typeof', 'cast', 'as'
             ),
-        'bimacro' => array(
+        9 => array(//BiMacro
             'yieldAll', 'using', 'unchecked', 'rawArayIndexing', 'print', 'normalArrayIndexing', 'lock',
             'debug', 'checked', 'assert'
             ),
-        'biattr' => array(
+        10 => array(//BiAttr
             'required', 'property', 'meta', 'getter', 'default'
             ),
-        'bifunc' => array(
+        11 => array(//BiFunc
             'zip', 'shellp', 'shellm', 'shell', 'reversed', 'range', 'prompt',
             'matrix', 'map', 'len', 'join', 'iterator', 'gets', 'enumerate', 'cat', 'array'
             ),
-        'hifunc' => array(
+        12 => array(//HiFunc
             '__switch__', '__initobj__', '__eval__', '__addressof__', 'quack'
             ),
-        'primitive' => array(
+        13 => array(//Primitive
             'void', 'ushort', 'ulong', 'uint', 'true', 'timespan', 'string', 'single',
             'short', 'sbyte', 'regex', 'object', 'null', 'long', 'int', 'false', 'duck',
             'double', 'decimal', 'date', 'char', 'callable', 'byte', 'bool'
             ),
-        'operator' => array(
+        14 => array(//Operator
             'not', 'or', 'and', 'is', 'isa',
             ),
-        'modifier' => array(
+        15 => array(//Modifier
             'virtual', 'transient', 'static', 'partial', 'override', 'final', 'abstract'
             ),
-        'access' => array(
+        16 => array(//Access
             'super', 'self'
             ),
-        'pass' => array(
+        17 => array(//Pass
             'pass'
             )
         ),
     'SYMBOLS' => array(
-         '[|', '|]', '${', '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '+', '-', ';'
+        '[|', '|]', '${', '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '+', '-', ';'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        'namespace' => true,
-        'jump' => true,
-        'conditional' => true,
-        'property' => true,
-        'exception' => true,
-        'visibility' => true,
-        'define' => true,
-        'cast' => true,
-        'bimacro' => true,
-        'biattr' => true,
-        'bifunc' => true,
-        'hifunc' => true,
-        'primitive' => true,
-        'operator' => true,
-        'modifier' => true,
-        'access' => true,
-        'pass' => true
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true,
+        10 => true,
+        11 => true,
+        12 => true,
+        13 => true,
+        14 => true,
+        15 => true,
+        16 => true,
+        17 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            'namespace' => 'color:green;font-weight:bold;',
-            'jump' => 'color:navy;',
-            'conditional' => 'color:blue;font-weight:bold;',
-            'property' => 'color:#8B4513;',
-            'exception' => 'color:teal;font-weight:bold;',
-            'visibility' => 'color:blue;font-weight:bold;',
-            'define' => 'color:blue;font-weight:bold;',
-            'cast' => 'color:blue;font-weight:bold;',
-            'bimacro' => 'color:maroon;',
-            'biattr' => 'color:maroon;',
-            'bifunc' => 'color:purple;',
-            'hifunc' => 'color:#4B0082;',
-            'primitive' => 'color:purple;font-weight:bold;',
-            'operator' => 'color:#008B8B;font-weight:bold;',
-            'modifier' => 'color:brown;',
-            'access' => 'color:black;font-weight:bold;',
-            'pass' => 'color:gray;'
+            1 => 'color:green;font-weight:bold;',
+            2 => 'color:navy;',
+            3 => 'color:blue;font-weight:bold;',
+            4 => 'color:#8B4513;',
+            5 => 'color:teal;font-weight:bold;',
+            6 => 'color:blue;font-weight:bold;',
+            7 => 'color:blue;font-weight:bold;',
+            8 => 'color:blue;font-weight:bold;',
+            9 => 'color:maroon;',
+            10 => 'color:maroon;',
+            11 => 'color:purple;',
+            12 => 'color:#4B0082;',
+            13 => 'color:purple;font-weight:bold;',
+            14 => 'color:#008B8B;font-weight:bold;',
+            15 => 'color:brown;',
+            16 => 'color:black;font-weight:bold;',
+            17 => 'color:gray;'
             ),
         'COMMENTS' => array(
             1 => 'color: #999999; font-style: italic;',
@@ -180,28 +180,28 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        'namespace' => '',
-        'jump' => '',
-        'conditional' => '',
-        'property' => '',
-        'exception' => '',
-        'visibility' => '',
-        'define' => '',
-        'cast' => '',
-        'bimacro' => '',
-        'biattr' => '',
-        'bifunc' => '',
-        'hifunc' => '',
-        'primitive' => '',
-        'operator' => '',
-        'modifier' => '',
-        'access' => '',
-        'pass' => ''
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => '',
+        9 => '',
+        10 => '',
+        11 => '',
+        12 => '',
+        13 => '',
+        14 => '',
+        15 => '',
+        16 => '',
+        17 => ''
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
-            0 => '.',
-            1 => '::'
+        0 => '.',
+        1 => '::'
         ),
     'REGEXPS' => array(
         #0 => '%(@)?\/(?:(?(1)[^\/\\\\\r\n]+|[^\/\\\\\r\n \t]+)|\\\\[\/\\\\\w+()|.*?$^[\]{}\d])+\/%'
diff --git a/inc/geshi/c.php b/inc/geshi/c.php
index c250725568c3848472306f41a3ba6d806d7196df..272885aa85a4b9d2049d6cdebb0abe87368cb496 100644
--- a/inc/geshi/c.php
+++ b/inc/geshi/c.php
@@ -5,14 +5,17 @@
  * Author: Nigel McNie (nigel@geshi.org)
  * Contributors:
  *  - Jack Lloyd (lloyd@randombit.net)
+ *  - Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * C language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2009/01/22 (1.0.8.3)
+ *   -  Made keywords case-sensitive.
  * 2008/05/23 (1.0.7.22)
  *   -  Added description of extra language features (SF#1970248)
  * 2004/XX/XX (1.0.4)
@@ -26,7 +29,7 @@
  * 2004/07/14 (1.0.0)
  *   -  First Release
  *
- * TODO (updated 2004/11/27)
+ * TODO (updated 2009/02/08)
  * -------------------------
  *  -  Get a list of inbuilt functions to add (and explore C more
  *     to complete this rather bare language file
@@ -53,16 +56,33 @@
 
 $language_data = array (
     'LANG_NAME' => 'C',
-    'COMMENT_SINGLE' => array(2 => '#'),
+    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    //Multiline-continued single-line comments
-    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-                 GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-                 GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[abfnrtv\\'\"?\n]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
             'if', 'return', 'while', 'case', 'continue', 'default',
@@ -90,10 +110,10 @@ $language_data = array (
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
@@ -108,7 +128,13 @@ $language_data = array (
             'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
             ),
         'BRACKETS' => array(
             0 => 'color: #009900;'
diff --git a/inc/geshi/c_mac.php b/inc/geshi/c_mac.php
index bb8b04a52728011befc2e82298679aa594bcf4b6..3478fba86a540c313318b10384647b11a8c3f724 100644
--- a/inc/geshi/c_mac.php
+++ b/inc/geshi/c_mac.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
  * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * C for Macs language file for GeSHi.
@@ -43,14 +43,31 @@ $language_data = array (
     'LANG_NAME' => 'C (Mac)',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    //Multiline-continued single-line comments
-    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-                 GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-                 GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[abfnrtv\\'\"?\n]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
             'if', 'return', 'while', 'case', 'continue', 'default',
@@ -117,10 +134,10 @@ $language_data = array (
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
@@ -135,7 +152,13 @@ $language_data = array (
             'MULTI' => 'color: #ff0000; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #666666; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
             ),
         'BRACKETS' => array(
             0 => 'color: #000000;'
@@ -186,4 +209,4 @@ $language_data = array (
     'TAB_WIDTH' => 4
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/caddcl.php b/inc/geshi/caddcl.php
index 758d06179c8aa13965122336fc84f87833d5eb4e..69d19dcd69651be7e2ebbad18b27878e511dfabc 100644
--- a/inc/geshi/caddcl.php
+++ b/inc/geshi/caddcl.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * CAD DCL (Dialog Control Language) language file for GeSHi.
diff --git a/inc/geshi/cadlisp.php b/inc/geshi/cadlisp.php
index 587a46aedc942055d50df5bfc07a784957e11eff..986584030c1bcb3963decce66f7651e2e8225e84 100644
--- a/inc/geshi/cadlisp.php
+++ b/inc/geshi/cadlisp.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * AutoCAD/IntelliCAD Lisp language file for GeSHi.
diff --git a/inc/geshi/cfdg.php b/inc/geshi/cfdg.php
index 898cec1b1923eea7a19b7166c2750913bd710bcc..fc097ca6fd1fa3dd0e6d046d14fda5dbf4eb64cd 100644
--- a/inc/geshi/cfdg.php
+++ b/inc/geshi/cfdg.php
@@ -4,7 +4,7 @@
  * --------
  * Author: John Horigan <john@glyphic.com>
  * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/03/11
  *
  * CFDG language file for GeSHi.
diff --git a/inc/geshi/cfm.php b/inc/geshi/cfm.php
index 949a9b5a9e52a830f94cef8de05dfbbfb113cfec..e900f46d49702cb67ba7c382d106c717a01db69d 100644
--- a/inc/geshi/cfm.php
+++ b/inc/geshi/cfm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Diego
  * Copyright: (c) 2006 Diego
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/02/25
  *
  * ColdFusion language file for GeSHi.
@@ -61,11 +61,11 @@ $language_data = array (
             'cflog', 'cflogin', 'cfloginuser', 'cflogout', 'cfloop', 'cfmail',
             'cfmailparam', 'cfmailpart', 'cfmodule', 'cfNTauthenticate',
             'cfobject', 'cfobjectcache', 'cfoutput', 'cfparam', 'cfpop',
-            'cfprocessingdirective', 'cfprocessingdirective', 'cfprocparam',
+            'cfprocessingdirective', 'cfprocparam',
             'cfprocresult', 'cfproperty', 'cfquery', 'cfqueryparam',
             'cfregistry', 'cfreport', 'cfreportparam', 'cfrethrow', 'cfreturn',
             'cfsavecontent', 'cfschedule', 'cfscript', 'cfsearch', 'cfselect',
-            'cfset', 'cfsetting', 'cfsilent', 'cfsilent', 'cfstoredproc',
+            'cfset', 'cfsetting', 'cfsilent', 'cfstoredproc',
             'cfswitch', 'cftable', 'cftextarea', 'cfthrow', 'cftimer',
             'cftrace', 'cftransaction', 'cftree', 'cftreeitem', 'cftry',
             'cfupdate', 'cfwddx'
diff --git a/inc/geshi/cil.php b/inc/geshi/cil.php
index 7fc75a343a1c886ff1ef184f37ac4d790fee8792..41777d6f3c154bc4507ade45c92cb78c96bd5555 100644
--- a/inc/geshi/cil.php
+++ b/inc/geshi/cil.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
  * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/10/24
  *
  * CIL (Common Intermediate Language) language file for GeSHi.
@@ -45,7 +45,7 @@ $language_data = array (
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
-        'dotted' => array(
+        1 => array(//Dotted
             '.zeroinit', '.vtfixup', '.vtentry', '.vtable', '.ver', '.try', '.subsystem', '.size', '.set', '.removeon',
             '.publickeytoken', '.publickey', '.property', '.permissionset', '.permission', '.pdirect', '.param', '.pack',
             '.override', '.other', '.namespace', '.mresource', '.module', '.method', '.maxstack', '.manifestres', '.locals',
@@ -53,7 +53,7 @@ $language_data = array (
             '.export', '.event', '.entrypoint', '.emitbyte', '.data', '.custom', '.culture', '.ctor', '.corflags', '.class',
             '.cctor', '.assembly', '.addon'
             ),
-        'attr' => array(
+        2 => array(//Attributes
             'wrapper', 'with', 'winapi', 'virtual', 'vector', 'vararg', 'value', 'userdefined', 'unused', 'unmanagedexp',
             'unmanaged', 'unicode', 'to', 'tls', 'thiscall', 'synchronized', 'struct', 'strict', 'storage', 'stdcall',
             'static', 'specialname', 'special', 'serializable', 'sequential', 'sealed', 'runtime', 'rtspecialname', 'request',
@@ -69,20 +69,20 @@ $language_data = array (
             'cf', 'cdecl', 'catch', 'beforefieldinit', 'autochar', 'auto', 'at', 'assert', 'assembly', 'as', 'any', 'ansi',
             'alignment', 'algorithm', 'abstract'
             ),
-        'types' => array(
+        3 => array(//Types
             'wchar', 'void', 'variant', 'unsigned', 'valuetype', 'typedref', 'tbstr', 'sysstring', 'syschar', 'string',
             'streamed_object', 'stream', 'stored_object', 'safearray', 'objectref', 'object', 'nullref', 'method', 'lpwstr',
             'lpvoid', 'lptstr', 'lpstruct', 'lpstr', 'iunknown', 'int64', 'int32', 'int16', 'int8', 'int', 'idispatch',
-            'hresult', 'float64', 'float32', 'float', 'decimal', 'date', 'currency', 'class', 'char', 'carray', 'byvalstr',
+            'hresult', 'float64', 'float32', 'float', 'decimal', 'date', 'currency', 'char', 'carray', 'byvalstr',
             'bytearray', 'boxed', 'bool', 'blob_object', 'blob', 'array'
             ),
-        'prefix' => array(
+        4 => array(//Prefix
             'volatile', 'unaligned', 'tail', 'readonly', 'no', 'constrained'
             ),
-        'suffix' => array(
+        5 => array(//Suffix
             'un', 'u8', 'u4', 'u2', 'u1', 'u', 's', 'ref', 'r8', 'r4', 'm1', 'i8', 'i4', 'i2', 'i1', 'i'#, '.8', '.7', '.6', '.5', '.4', '.3', '.2', '.1', '.0'
             ),
-        'base' => array(
+        6 => array(//Base
             'xor', 'switch', 'sub', 'stloc',
             'stind', 'starg',
             'shr', 'shl', 'ret', 'rem', 'pop', 'or', 'not', 'nop', 'neg', 'mul',
@@ -94,19 +94,19 @@ $language_data = array (
             'brfalse', 'break', 'br', 'bne', 'blt', 'ble', 'bgt', 'bge', 'beq', 'arglist',
             'and', 'add'
             ),
-        'object' => array(
+        7 => array(//Object
             'unbox.any', 'unbox', 'throw', 'stsfld', 'stobj', 'stfld', 'stelem', 'sizeof', 'rethrow', 'refanyval', 'refanytype', 'newobj',
             'newarr', 'mkrefany', 'ldvirtftn', 'ldtoken', 'ldstr', 'ldsflda', 'ldsfld', 'ldobj', 'ldlen', 'ldflda', 'ldfld',
             'ldelema', 'ldelem', 'isinst', 'initobj', 'cpobj', 'castclass',
             'callvirt', 'callmostderived', 'box'
             ),
-        'other' => array(
+        8 => array(//Other
             'prefixref', 'prefix7', 'prefix6', 'prefix5', 'prefix4', 'prefix3', 'prefix2', 'prefix1', 'prefix0'
             ),
-        'literal' => array(
+        9 => array(//Literal
             'true', 'null', 'false'
             ),
-        'commentlike' => array(
+        10 => array(//Comment-like
             '#line', '^THE_END^'
             )
         ),
@@ -115,29 +115,29 @@ $language_data = array (
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        'dotted' => true,
-        'attr' => true,
-        'types' => true,
-        'prefix' => true,
-        'suffix' => true,
-        'base' => true,
-        'object' => true,
-        'other' => true,
-        'literal' => true,
-        'commentlike' => true
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true,
+        10 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            'dotted' => 'color:maroon;font-weight:bold;',
-            'attr' => 'color:blue;font-weight:bold;',
-            'types' => 'color:purple;font-weight:bold;',
-            'prefix' => 'color:teal;',
-            'suffix' => 'color:blue;',
-            'base' => 'color:blue;',
-            'object' => 'color:blue;',
-            'other' => 'color:blue;',
-            'literal' => 'color:00008B',
-            'commentlike' => 'color:gray'
+            1 => 'color:maroon;font-weight:bold;',
+            2 => 'color:blue;font-weight:bold;',
+            3 => 'color:purple;font-weight:bold;',
+            4 => 'color:teal;',
+            5 => 'color:blue;',
+            6 => 'color:blue;',
+            7 => 'color:blue;',
+            8 => 'color:blue;',
+            9 => 'color:00008B',
+            10 => 'color:gray'
             ),
         'COMMENTS' => array(
             0 => 'color:gray;font-style:italic;'
@@ -167,16 +167,16 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        'dotted' => '',
-        'attr' => '',
-        'types' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'base' => '',
-        'object' => '',
-        'other' => '',
-        'literal' => '',
-        'commentlike' => ''
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => '',
+        9 => '',
+        10 => ''
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/cobol.php b/inc/geshi/cobol.php
index d7158199d53a7989ca5e922cc3d7862e4e57ff0f..71f9828a058e1696a1f877f32616c0f0aeafda04 100644
--- a/inc/geshi/cobol.php
+++ b/inc/geshi/cobol.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: BenBE (BenBE@omorphia.org)
  * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/07/02
  *
  * COBOL language file for GeSHi.
@@ -43,131 +43,132 @@ $language_data = array (
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"', "'"),
     'ESCAPE_CHAR' => '\\',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC |
+        GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_SCI_SHORT |
+        GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array( //Compiler Directives
-            "ANSI", "BLANK", "NOBLANK", "CALL-SHARED", "CANCEL", "NOCANCEL",
-            "CHECK", "CODE", "NOCODE", "COLUMNS", "COMPACT", "NOCOMPACT",
-            "COMPILE", "CONSULT", "NOCONSULT", "CROSSREF", "NOCROSSREF",
-            "DIAGNOSE-74", "NODIAGNOSE-74", "DIAGNOSE-85", "NODIAGNOSE-85",
-            "DIAGNOSEALL", "NODIAGNOSEALL", "ENDIF", "ENDUNIT", "ENV",
-            "ERRORFILE", "ERRORS", "FIPS", "NOFIPS", "FMAP", "HEADING", "HEAP",
-            "HIGHPIN", "HIGHREQUESTERS", "ICODE", "NOICODE", "IF", "IFNOT",
-            "INNERLIST", "NOINNERLIST", "INSPECT", "NOINSPECT", "LARGEDATA",
-            "LD", "LESS-CODE", "LIBRARY", "LINES", "LIST", "NOLIST", "LMAP",
-            "NOLMAP", "MAIN", "MAP", "NOMAP", "NLD", "NONSTOP", "NON-SHARED",
-            "OPTIMIZE", "PERFORM-TRACE", "PORT", "NOPORT", "RESETTOG",
-            "RUNNABLE", "RUNNAMED", "SAVE", "SAVEABEND", "NOSAVEABEND",
-            "SEARCH", "NOSEARCH", "SECTION", "SETTOG", "SHARED", "SHOWCOPY",
-            "NOSHOWCOPY", "SHOWFILE", "NOSHOWFILE", "SOURCE", "SQL", "NOSQL",
-            "SQLMEM", "SUBSET", "SUBTYPE", "SUPPRESS", "NOSUPPRESS", "SYMBOLS",
-            "NOSYMBOLS", "SYNTAX", "TANDEM", "TRAP2", "NOTRAP2", "TRAP2-74",
-            "NOTRAP2-74", "UL", "WARN", "NOWARN"
+            'ANSI', 'BLANK', 'NOBLANK', 'CALL-SHARED', 'CANCEL', 'NOCANCEL',
+            'CHECK', 'CODE', 'NOCODE', 'COLUMNS', 'COMPACT', 'NOCOMPACT',
+            'COMPILE', 'CONSULT', 'NOCONSULT', 'CROSSREF', 'NOCROSSREF',
+            'DIAGNOSE-74', 'NODIAGNOSE-74', 'DIAGNOSE-85', 'NODIAGNOSE-85',
+            'DIAGNOSEALL', 'NODIAGNOSEALL', 'ENDIF', 'ENDUNIT', 'ENV',
+            'ERRORFILE', 'ERRORS', 'FIPS', 'NOFIPS', 'FMAP', 'HEADING', 'HEAP',
+            'HIGHPIN', 'HIGHREQUESTERS', 'ICODE', 'NOICODE', 'IF', 'IFNOT',
+            'INNERLIST', 'NOINNERLIST', 'INSPECT', 'NOINSPECT', 'LARGEDATA',
+            'LD', 'LESS-CODE', 'LIBRARY', 'LINES', 'LIST', 'NOLIST', 'LMAP',
+            'NOLMAP', 'MAIN', 'MAP', 'NOMAP', 'NLD', 'NONSTOP', 'NON-SHARED',
+            'OPTIMIZE', 'PERFORM-TRACE', 'PORT', 'NOPORT', 'RESETTOG',
+            'RUNNABLE', 'RUNNAMED', 'SAVE', 'SAVEABEND', 'NOSAVEABEND',
+            'SEARCH', 'NOSEARCH', 'SECTION', 'SETTOG', 'SHARED', 'SHOWCOPY',
+            'NOSHOWCOPY', 'SHOWFILE', 'NOSHOWFILE', 'SOURCE', 'SQL', 'NOSQL',
+            'SQLMEM', 'SUBSET', 'SUBTYPE', 'SUPPRESS', 'NOSUPPRESS', 'SYMBOLS',
+            'NOSYMBOLS', 'SYNTAX', 'TANDEM', 'TRAP2', 'NOTRAP2', 'TRAP2-74',
+            'NOTRAP2-74', 'UL', 'WARN', 'NOWARN'
             ),
         2 => array( //Statement Keywords
-            "ACCEPT", "ADD", "TO", "GIVING", "CORRESPONDING", "ALTER", "CALL",
-            "CANCEL", "CHECKPOINT", "CLOSE", "COMPUTE", "CONTINUE", "COPY",
-            "DELETE", "DISPLAY", "DIVIDE", "INTO", "REMAINDER", "ENTER",
-            "COBOL", "EVALUATE", "EXIT", "GO", "IF", "INITIALIZE", "INSPECT",
-            "TALLYING", "REPLACING", "CONVERTING", "LOCKFILE", "MERGE", "MOVE",
-            "CORRESPONDING", "MULTIPLY", "BY", "OPEN", "PERFORM", "TIMES",
-            "UNTIL", "VARYING", "READ", "RELEASE", "REPLACE", "RETURN",
-            "REWRITE", "SEARCH", "SET", "UP", "DOWN", "SORT", "START",
-            "STARTBACKUP", "STOP", "STRING", "SUBTRACT", "FROM", "UNLOCKFILE",
-            "UNLOCKRECORD", "UNSTRING", "USE", "DEBUGGING", "AFTER",
-            "EXCEPTION", "WRITE"
+            'ACCEPT', 'ADD', 'TO', 'GIVING', 'CORRESPONDING', 'ALTER', 'CALL',
+            'CHECKPOINT', 'CLOSE', 'COMPUTE', 'CONTINUE', 'COPY',
+            'DELETE', 'DISPLAY', 'DIVIDE', 'INTO', 'REMAINDER', 'ENTER',
+            'COBOL', 'EVALUATE', 'EXIT', 'GO', 'INITIALIZE',
+            'TALLYING', 'REPLACING', 'CONVERTING', 'LOCKFILE', 'MERGE', 'MOVE',
+            'MULTIPLY', 'OPEN', 'PERFORM', 'TIMES',
+            'UNTIL', 'VARYING', 'RETURN',
             ),
         3 => array( //Reserved in some contexts
-            "ACCESS", "ADDRESS", "ADVANCING", "AFTER", "ALL",
-            "ALPHABET", "ALPHABETIC", "ALPHABETIC-LOWER", "ALPHABETIC-UPPER",
-            "ALPHANUMERIC", "ALPHANUMERIC-EDITED", "ALSO", "ALTER", "ALTERNATE",
-            "AND", "ANY", "APPROXIMATE", "AREA", "AREAS", "ASCENDING", "ASSIGN",
-            "AT", "AUTHOR", "BEFORE", "BINARY", "BLANK", "BLOCK", "BOTTOM", "BY",
-            "CALL", "CANCEL", "CD", "CF", "CH", "CHARACTER", "CHARACTERS",
-            "CHARACTER-SET", "CHECKPOINT", "CLASS", "CLOCK-UNITS", "CLOSE",
-            "COBOL", "CODE", "CODE-SET", "COLLATING", "COLUMN", "COMMA",
-            "COMMON", "COMMUNICATION", "COMP", "COMP-3", "COMP-5",
-            "COMPUTATIONAL", "COMPUTATIONAL-3", "COMPUTATIONAL-5",
-            "CONFIGURATION", "CONTAINS", "CONTENT", "CONTINUE", "CONTROL",
-            "CONTROLS", "CONVERTING", "COPY", "CORR", "CORRESPONDING", "COUNT",
-            "CURRENCY", "DATA", "DATE", "DATE-COMPILED", "DATE-WRITTEN", "DAY",
-            "DAY-OF-WEEK", "DE", "DEBUG-CONTENTS", "DEBUG-ITEM", "DEBUG-LINE",
-            "DEBUG-SUB-2", "DEBUG-SUB-3", "DEBUGGING", "DECIMAL-POINT",
-            "DECLARATIVES", "DEBUG-NAME", "DEBUG-SUB-1", "DELETE", "DELIMITED",
-            "DELIMITER", "DEPENDING", "DESCENDING", "DESTINATION", "DETAIL",
-            "DISABLE", "DISPLAY", "DIVIDE", "DIVISION", "DOWN", "DUPLICATES",
-            "DYNAMIC", "EGI", "ELSE", "EMI", "ENABLE", "END", "END-ADD",
-            "END-COMPUTE", "END-DELETE", "END-DIVIDE", "END-EVALUATE", "END-IF",
-            "END-MULTIPLY", "END-OF-PAGE", "END-PERFORM", "END-READ",
-            "END-RECEIVE", "END-RETURN", "END-REWRITE", "END-SEARCH",
-            "END-START", "END-STRING", "END-SUBTRACT", "END-UNSTRING",
-            "END-WRITE", "ENTER", "EOP", "EQUAL", "ERROR", "ESI", "EVALUATE",
-            "EVERY", "EXCEPTION", "EXCLUSIVE", "EXIT", "EXTEND",
-            "EXTENDED-STORAGE", "EXTERNAL", "FALSE", "FD", "FILE",
-            "FILE-CONTROL", "FILLER", "FINAL", "FIRST", "FOOTING", "FOR",
-            "FROM", "FUNCTION", "GENERATE", "GENERIC", "GIVING", "GLOBAL",
-            "GO", "GREATER", "GROUP", "GUARDIAN-ERR", "HEADING", "HIGH-VALUE",
-            "HIGH-VALUES", "I-O", "I-O-CONTROL", "IDENTIFICATION", "IF", "IN",
-            "INDEX", "INDEXED", "INDICATE", "INITIAL", "INITIALIZE", "INITIATE",
-            "INPUT", "INPUT-OUTPUT", "INSPECT", "INSTALLATION", "INTO",
-            "INVALID", "IS", "JUST", "JUSTIFIED", "KEY", "LABEL", "LAST",
-            "LEADING", "LEFT", "LENGTH", "LESS", "LIMIT", "LIMITS", "LINAGE",
-            "LINAGE-COUNTER", "LINE", "LINE-COUNTER", "LINKAGE", "LOCK",
-            "LOCKFILE", "LOW-VALUE", "LOW-VALUES", "MEMORY", "MERGE", "MESSAGE",
-            "MODE", "MODULES", "MOVE", "MULTIPLE", "MULTIPLY", "NATIVE",
-            "NEGATIVE", "NEXT", "NO", "NOT", "NULL", "NULLS", "NUMBER",
-            "NUMERIC", "NUMERIC-EDITED", "OBJECT-COMPUTER", "OCCURS", "OF",
-            "OFF", "OMITTED", "ON", "OPEN", "OPTIONAL", "OR", "ORDER",
-            "ORGANIZATION", "OTHER", "OUTPUT", "OVERFLOW", "PACKED-DECIMAL",
-            "PADDING", "PAGE", "PAGE-COUNTER", "PERFORM", "PF", "PH", "PIC",
-            "PICTURE", "PLUS", "POINTER", "POSITION", "POSITIVE", "PRINTING",
-            "PROCEDURE", "PROCEDURES", "PROCEED", "PROGRAM", "PROGRAM-ID",
-            "PROGRAM-STATUS", "PROGRAM-STATUS-1", "PROGRAM-STATUS-2", "PROMPT",
-            "PROTECTED", "PURGE", "QUEUE", "QUOTE", "QUOTES", "RANDOM", "RD",
-            "READ", "RECEIVE", "RECEIVE-CONTROL", "RECORD", "RECORDS",
-            "REDEFINES", "REEL", "REFERENCE", "REFERENCES", "RELATIVE",
-            "RELEASE", "REMAINDER", "REMOVAL", "RENAMES", "REPLACE",
-            "REPLACING", "REPLY", "REPORT", "REPORTING", "REPORTS", "RERUN",
-            "RESERVE", "RESET", "REVERSED", "REWIND", "REWRITE", "RF",
-            "RH", "RIGHT", "ROUNDED", "RUN", "SAME", "SD", "SEARCH", "SECTION",
-            "SECURITY", "SEGMENT", "SEGMENT-LIMIT", "SELECT", "SEND",
-            "SENTENCE", "SEPARATE", "SEQUENCE", "SEQUENTIAL", "SET", "SHARED",
-            "SIGN", "SIZE", "SORT", "SORT-MERGE", "SOURCE", "SOURCE-COMPUTER",
-            "SPACE", "SPACES", "SPECIAL-NAMES", "STANDARD", "STANDARD-1",
-            "STANDARD-2", "START", "STARTBACKUP", "STATUS", "STOP", "STRING",
-            "SUB-QUEUE-1", "SUB-QUEUE-2", "SUB-QUEUE-3", "SUBTRACT", "SUM",
-            "SUPPRESS", "SYMBOLIC", "SYNC", "SYNCDEPTH", "SYNCHRONIZED",
-            "TABLE", "TAL", "TALLYING", "TAPE", "TERMINAL", "TERMINATE", "TEST",
-            "TEXT", "THAN", "THEN", "THROUGH", "THRU", "TIME", "TIMES", "TO",
-            "TOP", "TRAILING", "TRUE", "TYPE", "UNIT", "UNLOCK", "UNLOCKFILE",
-            "UNLOCKRECORD", "UNSTRING", "UNTIL", "UP", "UPON", "USAGE", "USE",
-            "USING", "VALUE", "VALUES", "VARYING", "WHEN", "WITH", "WORDS",
-            "WORKING-STORAGE", "WRITE", "ZERO", "ZEROES"
+            'ACCESS', 'ADDRESS', 'ADVANCING', 'AFTER', 'ALL',
+            'ALPHABET', 'ALPHABETIC', 'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER',
+            'ALPHANUMERIC', 'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE',
+            'AND', 'ANY', 'APPROXIMATE', 'AREA', 'AREAS', 'ASCENDING', 'ASSIGN',
+            'AT', 'AUTHOR', 'BEFORE', 'BINARY', 'BLOCK', 'BOTTOM', 'BY',
+            'CD', 'CF', 'CH', 'CHARACTER', 'CHARACTERS',
+            'CHARACTER-SET', 'CLASS', 'CLOCK-UNITS',
+            'CODE-SET', 'COLLATING', 'COLUMN', 'COMMA',
+            'COMMON', 'COMMUNICATION', 'COMP', 'COMP-3', 'COMP-5',
+            'COMPUTATIONAL', 'COMPUTATIONAL-3', 'COMPUTATIONAL-5',
+            'CONFIGURATION', 'CONTAINS', 'CONTENT', 'CONTROL',
+            'CONTROLS', 'CORR', 'COUNT',
+            'CURRENCY', 'DATA', 'DATE', 'DATE-COMPILED', 'DATE-WRITTEN', 'DAY',
+            'DAY-OF-WEEK', 'DE', 'DEBUG-CONTENTS', 'DEBUG-ITEM', 'DEBUG-LINE',
+            'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL-POINT',
+            'DECLARATIVES', 'DEBUG-NAME', 'DEBUG-SUB-1', 'DELIMITED',
+            'DELIMITER', 'DEPENDING', 'DESCENDING', 'DESTINATION', 'DETAIL',
+            'DISABLE', 'DIVISION', 'DOWN', 'DUPLICATES',
+            'DYNAMIC', 'EGI', 'ELSE', 'EMI', 'ENABLE', 'END', 'END-ADD',
+            'END-COMPUTE', 'END-DELETE', 'END-DIVIDE', 'END-EVALUATE', 'END-IF',
+            'END-MULTIPLY', 'END-OF-PAGE', 'END-PERFORM', 'END-READ',
+            'END-RECEIVE', 'END-RETURN', 'END-REWRITE', 'END-SEARCH',
+            'END-START', 'END-STRING', 'END-SUBTRACT', 'END-UNSTRING',
+            'END-WRITE', 'EOP', 'EQUAL', 'ERROR', 'ESI',
+            'EVERY', 'EXCEPTION', 'EXCLUSIVE', 'EXTEND',
+            'EXTENDED-STORAGE', 'EXTERNAL', 'FALSE', 'FD', 'FILE',
+            'FILE-CONTROL', 'FILLER', 'FINAL', 'FIRST', 'FOOTING', 'FOR',
+            'FROM', 'FUNCTION', 'GENERATE', 'GENERIC', 'GLOBAL',
+            'GREATER', 'GROUP', 'GUARDIAN-ERR', 'HIGH-VALUE',
+            'HIGH-VALUES', 'I-O', 'I-O-CONTROL', 'IDENTIFICATION', 'IN',
+            'INDEX', 'INDEXED', 'INDICATE', 'INITIAL', 'INITIATE',
+            'INPUT', 'INPUT-OUTPUT', 'INSTALLATION',
+            'INVALID', 'IS', 'JUST', 'JUSTIFIED', 'KEY', 'LABEL', 'LAST',
+            'LEADING', 'LEFT', 'LESS', 'LIMIT', 'LIMITS', 'LINAGE',
+            'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINKAGE', 'LOCK',
+            'LOW-VALUE', 'LOW-VALUES', 'MEMORY', 'MESSAGE',
+            'MODE', 'MODULES', 'MULTIPLE', 'NATIVE',
+            'NEGATIVE', 'NEXT', 'NO', 'NOT', 'NULL', 'NULLS', 'NUMBER',
+            'NUMERIC', 'NUMERIC-EDITED', 'OBJECT-COMPUTER', 'OCCURS', 'OF',
+            'OFF', 'OMITTED', 'ON', 'OPTIONAL', 'OR', 'ORDER',
+            'ORGANIZATION', 'OTHER', 'OUTPUT', 'OVERFLOW', 'PACKED-DECIMAL',
+            'PADDING', 'PAGE', 'PAGE-COUNTER', 'PF', 'PH', 'PIC',
+            'PICTURE', 'PLUS', 'POINTER', 'POSITION', 'POSITIVE', 'PRINTING',
+            'PROCEDURE', 'PROCEDURES', 'PROCEED', 'PROGRAM', 'PROGRAM-ID',
+            'PROGRAM-STATUS', 'PROGRAM-STATUS-1', 'PROGRAM-STATUS-2', 'PROMPT',
+            'PROTECTED', 'PURGE', 'QUEUE', 'QUOTE', 'QUOTES', 'RD',
+            'RECEIVE', 'RECEIVE-CONTROL', 'RECORD', 'RECORDS',
+            'REDEFINES', 'REEL', 'REFERENCE', 'REFERENCES', 'RELATIVE',
+            'REMOVAL', 'RENAMES', 'REPLACE',
+            'REPLY', 'REPORT', 'REPORTING', 'REPORTS', 'RERUN',
+            'RESERVE', 'RESET', 'REVERSED', 'REWIND', 'REWRITE', 'RF',
+            'RH', 'RIGHT', 'ROUNDED', 'RUN', 'SAME', 'SD',
+            'SECURITY', 'SEGMENT', 'SEGMENT-LIMIT', 'SELECT', 'SEND',
+            'SENTENCE', 'SEPARATE', 'SEQUENCE', 'SEQUENTIAL', 'SET',
+            'SIGN', 'SIZE', 'SORT', 'SORT-MERGE', 'SOURCE-COMPUTER',
+            'SPACE', 'SPACES', 'SPECIAL-NAMES', 'STANDARD', 'STANDARD-1',
+            'STANDARD-2', 'START', 'STARTBACKUP', 'STATUS', 'STOP', 'STRING',
+            'SUB-QUEUE-1', 'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBTRACT',
+            'SYMBOLIC', 'SYNC', 'SYNCDEPTH', 'SYNCHRONIZED',
+            'TABLE', 'TAL', 'TAPE', 'TERMINAL', 'TERMINATE', 'TEST',
+            'TEXT', 'THAN', 'THEN', 'THROUGH', 'THRU', 'TIME',
+            'TOP', 'TRAILING', 'TRUE', 'TYPE', 'UNIT', 'UNLOCK', 'UNLOCKFILE',
+            'UNLOCKRECORD', 'UNSTRING', 'UP', 'UPON', 'USAGE', 'USE',
+            'USING', 'VALUE', 'VALUES', 'WHEN', 'WITH', 'WORDS',
+            'WORKING-STORAGE', 'WRITE', 'ZERO', 'ZEROES'
             ),
         4 => array( //Standard functions
-            "ACOS", "ANNUITY", "ASIN", "ATAN", "CHAR", "COS", "CURRENT-DATE",
-            "DATE-OF-INTEGER", "DAY-OF-INTEGER", "FACTORIAL", "INTEGER",
-            "INTEGER-OF-DATE", "INTEGER-OF-DAY", "INTEGER-PART", "LENGTH",
-            "LOG", "LOG10", "LOWER-CASE", "MAX", "MEAN", "MEDIAN", "MIDRANGE",
-            "MIN", "MOD", "NUMVAL", "NUMVAL-C", "ORD", "ORD-MAX", "ORD-MIN",
-            "PRESENT-VALUE", "RANDOM", "RANGE", "REM", "REVERSE", "SIN", "SQRT",
-            "STANDARD-DEVIATION", "SUM", "TAN", "UPPER-CASE", "VARIANCE",
-            "WHEN-COMPILED"
+            'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'CHAR', 'COS', 'CURRENT-DATE',
+            'DATE-OF-INTEGER', 'DAY-OF-INTEGER', 'FACTORIAL', 'INTEGER',
+            'INTEGER-OF-DATE', 'INTEGER-OF-DAY', 'INTEGER-PART', 'LENGTH',
+            'LOG', 'LOG10', 'LOWER-CASE', 'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE',
+            'MIN', 'MOD', 'NUMVAL', 'NUMVAL-C', 'ORD', 'ORD-MAX', 'ORD-MIN',
+            'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE', 'SIN', 'SQRT',
+            'STANDARD-DEVIATION', 'SUM', 'TAN', 'UPPER-CASE', 'VARIANCE',
+            'WHEN-COMPILED'
             ),
         5 => array( //Privileged Built-in Functions
-            "#IN", "#OUT", "#TERM", "#TEMP", "#DYNAMIC", "COBOL85^ARMTRAP",
-            "COBOL85^COMPLETION", "COBOL_COMPLETION_", "COBOL_CONTROL_",
-            "COBOL_GETENV_", "COBOL_PUTENV_", "COBOL85^RETURN^SORT^ERRORS",
-            "COBOL_RETURN_SORT_ERRORS_", "COBOL85^REWIND^SEQUENTIAL",
-            "COBOL_REWIND_SEQUENTIAL_", "COBOL85^SET^SORT^PARAM^TEXT",
-            "COBOL_SET_SORT_PARAM_TEXT_", "COBOL85^SET^SORT^PARAM^VALUE",
-            "COBOL_SET_SORT_PARAM_VALUE_", "COBOL_SET_MAX_RECORD_",
-            "COBOL_SETMODE_", "COBOL85^SPECIAL^OPEN", "COBOL_SPECIAL_OPEN_",
-            "COBOLASSIGN", "COBOL_ASSIGN_", "COBOLFILEINFO", "COBOL_FILE_INFO_",
-            "COBOLSPOOLOPEN", "CREATEPROCESS", "ALTERPARAMTEXT",
-            "CHECKLOGICALNAME", "CHECKMESSAGE", "DELETEASSIGN", "DELETEPARAM",
-            "DELETESTARTUP", "GETASSIGNTEXT", "GETASSIGNVALUE", "GETBACKUPCPU",
-            "GETPARAMTEXT", "GETSTARTUPTEXT", "PUTASSIGNTEXT", "PUTASSIGNVALUE",
-            "PUTPARAMTEXT", "PUTSTARTUPTEXT"
+            '#IN', '#OUT', '#TERM', '#TEMP', '#DYNAMIC', 'COBOL85^ARMTRAP',
+            'COBOL85^COMPLETION', 'COBOL_COMPLETION_', 'COBOL_CONTROL_',
+            'COBOL_GETENV_', 'COBOL_PUTENV_', 'COBOL85^RETURN^SORT^ERRORS',
+            'COBOL_RETURN_SORT_ERRORS_', 'COBOL85^REWIND^SEQUENTIAL',
+            'COBOL_REWIND_SEQUENTIAL_', 'COBOL85^SET^SORT^PARAM^TEXT',
+            'COBOL_SET_SORT_PARAM_TEXT_', 'COBOL85^SET^SORT^PARAM^VALUE',
+            'COBOL_SET_SORT_PARAM_VALUE_', 'COBOL_SET_MAX_RECORD_',
+            'COBOL_SETMODE_', 'COBOL85^SPECIAL^OPEN', 'COBOL_SPECIAL_OPEN_',
+            'COBOLASSIGN', 'COBOL_ASSIGN_', 'COBOLFILEINFO', 'COBOL_FILE_INFO_',
+            'COBOLSPOOLOPEN', 'CREATEPROCESS', 'ALTERPARAMTEXT',
+            'CHECKLOGICALNAME', 'CHECKMESSAGE', 'DELETEASSIGN', 'DELETEPARAM',
+            'DELETESTARTUP', 'GETASSIGNTEXT', 'GETASSIGNVALUE', 'GETBACKUPCPU',
+            'GETPARAMTEXT', 'GETSTARTUPTEXT', 'PUTASSIGNTEXT', 'PUTASSIGNVALUE',
+            'PUTPARAMTEXT', 'PUTSTARTUPTEXT'
             )
         ),
     'SYMBOLS' => array(
diff --git a/inc/geshi/cpp-qt.php b/inc/geshi/cpp-qt.php
index 3b55873e4948c49dc206d7ab552833a382e0077b..79ec3c61ca59e10d8e128dec8d1358191be72a08 100644
--- a/inc/geshi/cpp-qt.php
+++ b/inc/geshi/cpp-qt.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Iulian M
  * Copyright: (c) 2006 Iulian M
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/09/27
  *
  * C++ (with QT extensions) language file for GeSHi.
@@ -41,18 +41,35 @@ $language_data = array (
     'LANG_NAME' => 'C++ (QT)',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    //Multiline-continued Singleline comments
-    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-                 GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-                 GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[abfnrtv\\'\"?\n]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
             'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
-            'switch', 'while'
+            'switch', 'while', 'delete', 'new', 'this'
             ),
         2 => array(
             'NULL', 'false', 'break', 'true', 'enum', 'errno', 'EDOM',
@@ -73,7 +90,7 @@ $language_data = array (
             'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals'
             ),
         3 => array(
-            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
+            'cin', 'cerr', 'clog', 'cout',
             'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
             'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
             'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
@@ -202,40 +219,46 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
+        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', ';', '|', '<', '>'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
         5 => true,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000dd;',
-            4 => 'color: #0000ff;',
-            5 => 'color: #0000ee;'
+            1 => 'color: #000000; font-weight:bold;',
+            2 => 'color: #0057AE;',
+            3 => 'color: #2B74C7;',
+            4 => 'color: #0057AE;',
+            5 => 'color: #22aadd;'
             ),
         'COMMENTS' => array(
-            1 => 'color: #ff0000;',
-            2 => 'color: #339900;',
-            'MULTI' => 'color: #ff0000; font-style: italic;'
+            1 => 'color: #888888;',
+            2 => 'color: #006E28;',
+            'MULTI' => 'color: #888888; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #666666; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
             ),
         'BRACKETS' => array(
-            0 => 'color: #000000;'
+            0 => 'color: #006E28;'
             ),
         'STRINGS' => array(
-            0 => 'color: #666666;'
+            0 => 'color: #BF0303;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #0000dd;',
+            0 => 'color: #B08000;',
             GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
             GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
             GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
@@ -245,11 +268,12 @@ $language_data = array (
             GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
             ),
         'METHODS' => array(
-            1 => 'color: #007788;',
-            2 => 'color: #007788;'
+            1 => 'color: #2B74C7;',
+            2 => 'color: #2B74C7;',
+            3 => 'color: #2B74C7;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #000000;'
+            0 => 'color: #006E28;'
             ),
         'REGEXPS' => array(
             ),
@@ -266,7 +290,8 @@ $language_data = array (
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
         1 => '.',
-        2 => '::'
+        2 => '::',
+        3 => '-&gt;',
         ),
     'REGEXPS' => array(
         ),
@@ -280,8 +305,11 @@ $language_data = array (
         'KEYWORDS' => array(
             'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
             'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
+        ),
+        'OOLANG' => array(
+            'MATCH_AFTER' => '~?[a-zA-Z][a-zA-Z0-9_]*',
         )
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/cpp.php b/inc/geshi/cpp.php
index 5a8e1c0b01bd8c7fc98473a7db1fc0c21ad2b579..28b585d3cc18ae34b636db88e5981ce312607f19 100644
--- a/inc/geshi/cpp.php
+++ b/inc/geshi/cpp.php
@@ -7,7 +7,7 @@
  *  - M. Uli Kusterer (witness.of.teachtext@gmx.net)
  *  - Jack Lloyd (lloyd@randombit.net)
  * Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/09/27
  *
  * C++ language file for GeSHi.
@@ -52,14 +52,31 @@ $language_data = array (
     'LANG_NAME' => 'C++',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    //Multiline-continued single-line comments
-    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-                 GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-                 GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[abfnrtv\\'\"?\n]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
             'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
@@ -121,10 +138,10 @@ $language_data = array (
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
@@ -139,7 +156,13 @@ $language_data = array (
             'MULTI' => 'color: #ff0000; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #666666; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
             ),
         'BRACKETS' => array(
             0 => 'color: #008000;'
@@ -200,4 +223,4 @@ $language_data = array (
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/csharp.php b/inc/geshi/csharp.php
index 578b6e5397193c8ae180cd1abde6aafbd3e6d571..2d79ee2124b7927e3ab2206159b7c8413bc1e07d 100644
--- a/inc/geshi/csharp.php
+++ b/inc/geshi/csharp.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * C# language file for GeSHi.
@@ -60,9 +60,10 @@ $language_data = array (
             'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
             'finally', 'fixed', 'for', 'foreach', 'goto', 'if', 'implicit',
             'in', 'internal', 'lock', 'namespace', 'null', 'operator', 'out',
-            'override', 'params', 'private', 'protected', 'public', 'readonly',
-            'ref', 'return', 'sealed', 'stackalloc', 'static', 'switch', 'this',
-            'throw', 'true', 'try', 'unsafe', 'using', 'virtual', 'void', 'while'
+            'override', 'params', 'partial', 'private', 'protected', 'public',
+            'readonly', 'ref', 'return', 'sealed', 'stackalloc', 'static',
+            'switch', 'this', 'throw', 'true', 'try', 'unsafe', 'using',
+            'virtual', 'void', 'while'
             ),
         2 => array(
             '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
diff --git a/inc/geshi/css.php b/inc/geshi/css.php
index 14bdc2eed9e7738fa4801ecbaf73ed21c864f2a4..00803255b25c111f6735a178c0c19ee94fe31856 100644
--- a/inc/geshi/css.php
+++ b/inc/geshi/css.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/18
  *
  * CSS language file for GeSHi.
@@ -187,12 +187,12 @@ $language_data = array (
         ),
     'REGEXPS' => array(
         //DOM Node ID
-        0 => '\#[a-zA-Z0-9\-_]+',
+        0 => '\#[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*',
         //CSS classname
-        1 => '\.(?!\d)[a-zA-Z0-9\-_]+\b(?=[\{\.#\s,:].|<\|)',
+        1 => '\.(?!\d)[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*\b(?=[\{\.#\s,:].|<\|)',
         //CSS Pseudo classes
         //note: & is needed for &gt; (i.e. > )
-        2 => ':(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))',
+        2 => '(?<!\\\\):(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))',
         //Measurements
         3 => '[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)',
         ),
@@ -209,4 +209,4 @@ $language_data = array (
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/d.php b/inc/geshi/d.php
index ee26688455c7ae9d14e1308e3c8d834d54d72fcc..9711a6e382dc8ca4c9f902054b9d26b34190d216 100644
--- a/inc/geshi/d.php
+++ b/inc/geshi/d.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Thomas Kuehne (thomas@kuehne.cn)
  * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/04/22
  *
  * D language file for GeSHi.
@@ -44,14 +44,84 @@
 
 $language_data = array (
     'LANG_NAME' => 'D',
-    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_SINGLE' => array(2 => '///', 1 => '//'),
     'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        // doxygen comments
+        3 => '#/\*\*(?![\*\/]).*\*/#sU',
+        // raw strings
+        4 => '#r"[^"]*"#s',
+        // Script Style interpreter comment
+        5 => "/\A#!(?=\\/).*?$/m"
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'", '`'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-                 GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-                 GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[abfnrtv\\'\"?\n\\\\]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#",
+        //Named entity escapes
+        /*6 => "#\\\\&(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|".
+            "ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|".
+            "ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|".
+            "iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|".
+            "shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|".
+            "sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|".
+            "Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|".
+            "Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|".
+            "times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|".
+            "aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|".
+            "euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|".
+            "otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|".
+            "yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|".
+            "Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|".
+            "Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|".
+            "kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|".
+            "phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|".
+            "oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|".
+            "harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|".
+            "nabla|isin|notin|ni|prod|sum|minus|lowast|radic|prop|infin|ang|".
+            "and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|".
+            "nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|".
+            "lang|rang|loz|spades|clubs|hearts|diams);#",*/
+        // optimized:
+        6 => "#\\\\&(?:A(?:Elig|acute|circ|grave|lpha|ring|tilde|uml)|Beta|".
+            "C(?:cedil|hi)|D(?:agger|elta)|E(?:TH|acute|circ|grave|psilon|ta|uml)|".
+            "Gamma|I(?:acute|circ|grave|ota|uml)|Kappa|Lambda|Mu|N(?:tilde|u)|".
+            "O(?:Elig|acute|circ|grave|m(?:ega|icron)|slash|tilde|uml)|".
+            "P(?:hi|i|rime|si)|Rho|S(?:caron|igma)|T(?:HORN|au|heta)|".
+            "U(?:acute|circ|grave|psilon|uml)|Xi|Y(?:acute|uml)|Zeta|".
+            "a(?:acute|c(?:irc|ute)|elig|grave|l(?:efsym|pha)|mp|n[dg]|ring|".
+            "symp|tilde|uml)|b(?:dquo|eta|rvbar|ull)|c(?:ap|cedil|e(?:dil|nt)|".
+            "hi|irc|lubs|o(?:ng|py)|rarr|u(?:p|rren))|d(?:Arr|a(?:gger|rr)|".
+            "e(?:g|lta)|i(?:ams|vide))|e(?:acute|circ|grave|m(?:pty|sp)|nsp|".
+            "psilon|quiv|t[ah]|u(?:ml|ro)|xist)|f(?:nof|orall|ra(?:c(?:1[24]|34)|sl))|".
+            "g(?:amma|e|t)|h(?:Arr|arr|e(?:arts|llip))|i(?:acute|circ|excl|grave|mage|".
+            "n(?:fin|t)|ota|quest|sin|uml)|kappa|l(?:Arr|a(?:mbda|ng|quo|rr)|ceil|".
+            "dquo|e|floor|o(?:wast|z)|rm|s(?:aquo|quo)|t)|m(?:acr|dash|".
+            "i(?:cro|ddot|nus)|u)|n(?:abla|bsp|dash|e|i|ot(?:in)?|sub|tilde|u)|".
+            "o(?:acute|circ|elig|grave|line|m(?:ega|icron)|plus|r(?:d[fm])?|".
+            "slash|ti(?:lde|mes)|uml)|p(?:ar[at]|er(?:mil|p)|hi|iv?|lusmn|ound|".
+            "r(?:ime|o[dp])|si)|quot|r(?:Arr|a(?:dic|ng|quo|rr)|ceil|dquo|e(?:al|g)|".
+            "floor|ho|lm|s(?:aquo|quo))|s(?:bquo|caron|dot|ect|hy|i(?:gmaf?|m)|".
+            "pades|u(?:be?|m|p[123e]?)|zlig)|t(?:au|h(?:e(?:re4|ta(?:sym)?)|insp|".
+            "orn)|i(?:lde|mes)|rade)|u(?:Arr|a(?:cute|rr)|circ|grave|ml|".
+            "psi(?:h|lon)|uml)|weierp|xi|y(?:acute|en|uml)|z(?:eta|w(?:j|nj)));#",
+        ),
+    'HARDQUOTE' => array('`', '`'),
+    'HARDESCAPE' => array(),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
                 'break', 'case', 'continue', 'do', 'else',
@@ -64,7 +134,7 @@ $language_data = array (
                 'extern', 'false', 'finally', 'function',
                 'import', 'in', 'inout', 'interface',
                 'invariant', 'is', 'mixin', 'module', 'new',
-                'null', 'out', 'pragma', 'super', 'this',
+                'null', 'out', 'pragma', 'ref', 'super', 'this',
                 'throw', 'true', 'try', 'typedef', 'typeid',
                 'typeof', 'union', 'with'
             ),
@@ -134,17 +204,29 @@ $language_data = array (
             4 => 'color: #993333;'
             ),
         'COMMENTS' => array(
-            1=> 'color: #808080; font-style: italic;',
+            1 => 'color: #808080; font-style: italic;',
+            2 => 'color: #009933; font-style: italic;',
+            3 => 'color: #009933; font-style: italic;',
+            4 => 'color: #ff0000;',
+            5 => 'color: #0040ff;',
             'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            6 => 'color: #666699; font-weight: bold; font-style: italic;',
+            'HARD' => '',
             ),
         'BRACKETS' => array(
             0 => 'color: #66cc66;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #ff0000;',
+            'HARD' => 'color: #ff0000;'
             ),
         'NUMBERS' => array(
             0 => 'color: #0000dd;',
@@ -187,4 +269,4 @@ $language_data = array (
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/dcs.php b/inc/geshi/dcs.php
new file mode 100644
index 0000000000000000000000000000000000000000..b9fe5814a351f7afa0e44d28f73d2879e6affdd5
--- /dev/null
+++ b/inc/geshi/dcs.php
@@ -0,0 +1,185 @@
+<?php
+/*************************************************************************************
+ * dcs.php
+ * ---------------------------------
+ * Author: Stelio Passaris (GeSHi@stelio.net)
+ * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/01/20
+ *
+ * DCS language file for GeSHi.
+ *
+ * DCS (Data Conversion System) is part of Sungard iWorks' Prophet suite and is used
+ * to convert external data files into a format that Prophet and Glean can read.
+ * See http://www.prophet-web.com/Products/DCS for product information.
+ * This language file is current for DCS version 7.3.2.
+ *
+ * Note that the DCS IDE does not handle escape characters correctly. The IDE thinks
+ * that a backslash '\' is an escape character, but in practice the backslash does
+ * not escape the string delimiter character '"' when the program runs. A '\\' is
+ * escaped to '\' when the program runs, but '\"' is treated as '\' at the end of a
+ * string. Therefore in this language file, we do not recognise the backslash as an
+ * escape character. For the purposes of GeSHi, there is no character escaping.
+ *
+ * CHANGES
+ * -------
+ * 2009/02/21 (1.0.8.3)
+ *  -  First Release
+ *
+ * TODO (updated 2009/02/21)
+ * -------------------------
+ * * Add handling for embedded C code. Note that the DCS IDE does not highlight C code
+ *   correctly, but that doesn't mean that we can't! This will be included for a
+ *   stable release of GeSHi of version 1.1.x (or later) that allows for highlighting
+ *   embedded code using that code's appropriate language file.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'DCS',
+    'COMMENT_SINGLE' => array(
+        1 => ';'
+        ),
+    'COMMENT_MULTI' => array(
+        ),
+    'HARDQUOTE' => array(
+        ),
+    'HARDESCAPE' => '',
+    'COMMENT_REGEXP' => array(
+        // Highlight embedded C code in a separate color:
+        2 => '/\bINSERT_C_CODE\b.*?\bEND_C_CODE\b/ims'
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array(
+        '"'
+        ),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => '',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        1 => array(
+            'abs', 'ascii_value', 'bit_value', 'blank_date', 'calc_unit_values', 'cm',
+            'complete_months', 'complete_years', 'correct', 'create_input_file', 'cy',
+            'date_convert', 'day', 'del_output_separator',
+            'delete_existing_output_files', 'div', 'ex', 'exact_years', 'exp',
+            'extract_date', 'failed_validation', 'file_number', 'first_record',
+            'fract', 'fund_fac_a', 'fund_fac_b', 'fund_fac_c', 'fund_fac_d',
+            'fund_fac_e', 'fund_fac_f', 'fund_fac_g', 'fund_fac_h', 'fund_fac_i',
+            'fund_fac_j', 'fund_fac_k', 'fund_fac_l', 'fund_fac_m', 'fund_fac_n',
+            'fund_fac_o', 'fund_fac_p', 'fund_fac_q', 'fund_fac_r', 'fund_fac_s',
+            'fund_fac_t', 'fund_fac_u', 'fund_fac_v', 'fund_fac_w', 'fund_fac_x',
+            'fund_fac_y', 'fund_fac_z', 'group', 'group_record',
+            'input_file_date_time', 'input_file_extension', 'input_file_location',
+            'input_file_name', 'int', 'invalid', 'last_record', 'leap_year', 'len',
+            'ln', 'log', 'main_format_name', 'max', 'max_num_subrecords', 'message',
+            'min', 'mod', 'month', 'months_add', 'months_sub', 'nearest_months',
+            'nearest_years', 'next_record', 'nm', 'no_of_current_records',
+            'no_of_records', 'numval', 'ny', 'output', 'output_array_as_constants',
+            'output_file_path', 'output_record', 'pmdf_output', 'previous', 'rand',
+            're_start', 'read_generic_table', 'read_generic_table_text',
+            'read_input_footer', 'read_input_footer_text', 'read_input_header',
+            'read_input_header_text', 'record_count', 'record_suppressed', 'round',
+            'round_down', 'round_near', 'round_up', 'run_dcs_program', 'run_parameter',
+            'run_parameter_text', 'set_main_record', 'set_num_subrecords',
+            'sort_array', 'sort_current_records', 'sort_input', 'strval', 'substr',
+            'summarise', 'summarise_record', 'summarise_units',
+            'summarise_units_record', 'suppress_record', 'table_correct',
+            'table_validate', 'terminate', 'time', 'today', 'trim', 'ubound', 'year',
+            'years_add', 'years_sub'
+            ),
+        2 => array(
+            'and', 'as', 'begin', 'boolean', 'byref', 'byval', 'call', 'case', 'date',
+            'default', 'do', 'else', 'elseif', 'end_c_code', 'endfor', 'endfunction',
+            'endif', 'endproc', 'endswitch', 'endwhile', 'eq',
+            'explicit_declarations', 'false', 'for', 'from', 'function', 'ge', 'gt',
+            'if', 'insert_c_code', 'integer', 'le', 'loop', 'lt', 'ne', 'not',
+            'number', 'or', 'private', 'proc', 'public', 'quitloop', 'return',
+            'short', 'step', 'switch', 'text', 'then', 'to', 'true', 'while'
+            ),
+        3 => array(
+            // These keywords are not highlighted by the DCS IDE but we may as well
+            // keep track of them anyway:
+            'mp_file', 'odbc_file'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']',
+        '=', '<', '>',
+        '+', '-', '*', '/', '^',
+        ':', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: red;',
+            2 => 'color: blue;',
+            3 => 'color: black;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: black; background-color: silver;',
+            // Colors for highlighting embedded C code:
+            2 => 'color: maroon; background-color: pink;'
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'BRACKETS' => array(
+            0 => 'color: black;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: green;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: green;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: black;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/delphi.php b/inc/geshi/delphi.php
index 20fd86ad2726f48d0a6e23e6b56b2c16f11e5655..7de1f8c1ecc952a0fe4263f20472cd371deb28ea 100644
--- a/inc/geshi/delphi.php
+++ b/inc/geshi/delphi.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/26
  *
  * Delphi (Object Pascal) language file for GeSHi.
diff --git a/inc/geshi/diff.php b/inc/geshi/diff.php
index 645387f9738f95d5000254f7ac8b3833852a14a4..c82e65c659b27cb831377214691e4df2e299e6d8 100644
--- a/inc/geshi/diff.php
+++ b/inc/geshi/diff.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu)
  * Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/12/29
  *
  * Diff-output language file for GeSHi.
@@ -54,20 +54,20 @@ $language_data = array (
             1 => array(
                 '\ No newline at end of file'
             ),
-            2 => array(
-                '***************' /* This only seems to works in some cases? */
-            ),
+//            2 => array(
+//                '***************' /* This only seems to works in some cases? */
+//            ),
         ),
     'SYMBOLS' => array(
         ),
     'CASE_SENSITIVE' => array(
         1 => false,
-        2 => false
+//        2 => false
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #aaaaaa; font-style: italic;',
-            2 => 'color: #dd6611;',
+//            2 => 'color: #dd6611;',
             ),
         'COMMENTS' => array(
             ),
@@ -107,7 +107,7 @@ $language_data = array (
         ),
     'URLS' => array(
         1 => '',
-        2 => ''
+//        2 => ''
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(),
diff --git a/inc/geshi/div.php b/inc/geshi/div.php
index 6a6b24b9b13fa8e6319601a784ccc4300e6cf691..d3d506d3d1bacc774401f18329914b29907aadd6 100644
--- a/inc/geshi/div.php
+++ b/inc/geshi/div.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Gabriel Lorenzo (ermakina@gmail.com)
  * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/06/19
  *
  * DIV language file for GeSHi.
diff --git a/inc/geshi/dos.php b/inc/geshi/dos.php
index bf2023e145a9fded72e1cc4f9587cf9c7f6b1fda..af8fdaee2745a30664839a61c65f7e3439c3f295 100644
--- a/inc/geshi/dos.php
+++ b/inc/geshi/dos.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Alessandro Staltari (staltari@geocities.com)
  * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/07/05
  *
  * DOS language file for GeSHi.
@@ -64,7 +64,7 @@ $language_data = array (
     'COMMENT_SINGLE' => array(),
     'COMMENT_MULTI' => array(),
     //DOS comment lines
-    'COMMENT_REGEXP' => array(1 => "/^\s*@?REM/mi"),
+    'COMMENT_REGEXP' => array(1 => "/^\s*@?REM.*$/mi"),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array(),
     'ESCAPE_CHAR' => '',
@@ -84,10 +84,11 @@ $language_data = array (
         /* Internal commands */
         3 => array(
             'cd', 'md', 'rd', 'chdir', 'mkdir', 'rmdir', 'dir',
-            'del', 'copy',
+            'del', 'copy', 'move', 'ren', 'rename',
             'echo',
             'setlocal', 'endlocal', 'set',
-            'pause'
+            'pause',
+            'pushd', 'popd', 'title', 'verify'
             ),
         /* Special files */
         4 => array(
@@ -172,7 +173,7 @@ $language_data = array (
         /* Arguments or variable evaluation */
         2 => array(
 /*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
-            GESHI_SEARCH => '(%)([\d*]|[^%]*(?=%))((?<!%\d)%|)',
+            GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'si',
             GESHI_BEFORE => '\\1',
@@ -184,7 +185,14 @@ $language_data = array (
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
-    'TAB_WIDTH' => 4
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            4 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)'
+                )
+            )
+        )
 );
 
 ?>
diff --git a/inc/geshi/dot.php b/inc/geshi/dot.php
index 1187e330396a0abd7efca611837b3e2843953618..35d3d9b6ba8d4cdf0bfae5d026c4d8c3e0e4391b 100644
--- a/inc/geshi/dot.php
+++ b/inc/geshi/dot.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Adrien Friggeri (adrien@friggeri.net)
  * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/05/30
  *
  * dot language file for GeSHi.
diff --git a/inc/geshi/eiffel.php b/inc/geshi/eiffel.php
index e593fce7fa827184dcd43e6062b0345656b6302d..7a9a61e48a31a6d15b5efd8be62fa266f46554d3 100644
--- a/inc/geshi/eiffel.php
+++ b/inc/geshi/eiffel.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Zoran Simic (zsimic@axarosenberg.com)
  * Copyright: (c) 2005 Zoran Simic
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/06/30
  *
  * Eiffel language file for GeSHi.
diff --git a/inc/geshi/email.php b/inc/geshi/email.php
new file mode 100644
index 0000000000000000000000000000000000000000..26466dc43f09cc01b569590165e09efdbc9e17e1
--- /dev/null
+++ b/inc/geshi/email.php
@@ -0,0 +1,209 @@
+<?php
+/*************************************************************************************
+ * email.php
+ * ---------------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/10/19
+ *
+ * Email (mbox \ eml \ RFC format) language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/19 (1.0.8.1)
+ *   -  First Release
+ *
+ * TODO (updated 2008/10/19)
+ * -------------------------
+ * * Better checks when a header field should be expected
+ * * Fix the bound checks for kw groups 2 and 3, as well as rx group 1
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'eMail (mbox)',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'HTTP', 'SMTP', 'ASMTP', 'ESMTP'
+            ),
+        2 => array(
+            'Content-Type','Content-Transfer-Encoding','Content-Disposition',
+            'Delivered-To','Dkim-Signature','Domainkey-Signature','In-Reply-To',
+            'Message-Id','MIME-Version','Received','Received-SPF','References',
+            'Resend-From','Resend-To','Return-Path'
+            ),
+        3 => array(
+            'Date','From','Subject','To',
+            ),
+        4 => array(
+            'by', 'for', 'from', 'id', 'with'
+            )
+        ),
+    'SYMBOLS' => array(
+        ':', ';', '<', '>', '[', ']'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => false,
+        3 => false,
+        4 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000FF; font-weight: bold;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #800000; font-weight: bold;',
+            4 => 'font-weight: bold;',
+            ),
+        'COMMENTS' => array(
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'SCRIPT' => array(
+            0 => 'color: #000040;',
+            ),
+        'REGEXPS' => array(
+            1 => 'color: #000000; font-weight: bold;',
+            2 => 'color: #0000FF;',
+            3 => 'color: #008000;',
+            4 => 'color: #0000FF; font-weight: bold;',
+            5 => 'font-weight: bold;',
+            6 => 'color: #400080;'
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        // Non-Standard-Header
+        1 => array(
+            GESHI_SEARCH => "(?<=\A\x20|\n)x-[a-z0-9\-]*(?=\s*:|\s*<)",
+            GESHI_REPLACE => "\\0",
+            GESHI_MODIFIERS => "smi",
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        //Email-Adresses or Mail-IDs
+        2 => array(
+            GESHI_SEARCH => "\b[\w\.]+@\w+(?:(?:\.\w+)*\.\w{2,4})?",
+            GESHI_REPLACE => "\\0",
+            GESHI_MODIFIERS => "mi",
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        //Date values in RFC format
+        3 => array(
+            GESHI_SEARCH => "\b(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s+\d\d?\s+" .
+                "(?:Jan|Feb|Mar|apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+" .
+                "\d{4}\s+\d\d?:\d\d:\d\d\s+[+\-]\d{4}(?:\s+\(\w+\))?",
+            GESHI_REPLACE => "\\0",
+            GESHI_MODIFIERS => "mi",
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        //IP addresses
+        4 => array(
+            GESHI_SEARCH => "(?<=\s)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\s)|".
+                "(?<=\[)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\])|".
+                "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)",
+            GESHI_REPLACE => "\\0",
+            GESHI_MODIFIERS => "i",
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        //Field-Assignments
+        5 => array(
+            GESHI_SEARCH => "(?<=\s)[A-Z0-9\-]+(?==(?!\s|$))",
+            GESHI_REPLACE => "\\0",
+            GESHI_MODIFIERS => "mi",
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        //MIME type
+        6 => array(
+            GESHI_SEARCH => "(?<=\s)(?:audio|application|image|multipart|text|".
+                "video|x-[a-z0-9\-]+)\/[a-z0-9][a-z0-9\-]*(?=\s|<|$)",
+            GESHI_REPLACE => "\\0",
+            GESHI_MODIFIERS => "m",
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
+    'SCRIPT_DELIMITERS' => array(
+        0 => "/(^)[A-Z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*($)/m"
+    ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true,
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            2 => array(
+                'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
+                'DISALLOWED_AFTER' => '(?=\s*:)',
+            ),
+            3 => array(
+                'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
+                'DISALLOWED_AFTER' => '(?=\s*:)',
+            ),
+            4 => array(
+                'DISALLOWED_BEFORE' => '(?<=\s)',
+                'DISALLOWED_AFTER' => '(?=\s|\b)',
+            )
+        ),
+        'ENABLE_FLAGS' => array(
+            'BRACKETS' => GESHI_NEVER,
+            'COMMENTS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+        )
+    )
+);
+
+?>
diff --git a/inc/geshi/fortran.php b/inc/geshi/fortran.php
index 599c232c099a4772718fb193b0343b39d8bebf67..1caf09d3c8fc210b4499bf52f7d6734596756a3d 100644
--- a/inc/geshi/fortran.php
+++ b/inc/geshi/fortran.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr)
  * Copyright: (C) 2006 Cetric Arrabie
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/04/22
  *
  * Fortran language file for GeSHi.
diff --git a/inc/geshi/freebasic.php b/inc/geshi/freebasic.php
index 8d4fcbcba378bf04425ef08859cf85b58cdb3f19..0ddc46cb898d4eee8c2d7fa30185e268b24b417f 100644
--- a/inc/geshi/freebasic.php
+++ b/inc/geshi/freebasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/08/19
  *
  * FreeBasic (http://www.freebasic.net/) language file for GeSHi.
diff --git a/inc/geshi/genero.php b/inc/geshi/genero.php
index 5ca481752d940085a2964c9ae9153f6264afcaa2..997e21f44707579933a56eb413086f13559895e9 100644
--- a/inc/geshi/genero.php
+++ b/inc/geshi/genero.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/07/01
  *
  * Genero (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/inc/geshi/gettext.php b/inc/geshi/gettext.php
index 5d867ba0fe3faa737d38497a837c63addef823cf..78e8bff766fea0f666204cef148d07ab154ade42 100644
--- a/inc/geshi/gettext.php
+++ b/inc/geshi/gettext.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/05/25
  *
  * GNU Gettext .po/.pot language file for GeSHi.
diff --git a/inc/geshi/glsl.php b/inc/geshi/glsl.php
index e5a53657561b19b434075bcc26430c46cfb420d0..1f10cf852ed4418560ff785d5388beeacae357e2 100644
--- a/inc/geshi/glsl.php
+++ b/inc/geshi/glsl.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/03/20
  *
  * glSlang language file for GeSHi.
@@ -41,6 +41,12 @@ $language_data = array (
     'LANG_NAME' => 'glSlang',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '\\',
@@ -54,7 +60,7 @@ $language_data = array (
             'const', 'uniform', 'attribute', 'centroid', 'varying', 'invariant',
             'in', 'out', 'inout', 'input', 'output', 'typedef', 'volatile',
             'public', 'static', 'extern', 'external', 'packed',
-            'inline', 'noinline'
+            'inline', 'noinline', 'noperspective', 'flat'
             ),
         3 => array(
             'void', 'bool', 'int', 'long', 'short', 'float', 'half', 'fixed',
@@ -196,4 +202,4 @@ $language_data = array (
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/gml.php b/inc/geshi/gml.php
index 86156c2e85e602b1d48662456c67e1654f6e40db..77966bc1b4fa60fdee1ef481cdc684c537fdab22 100644
--- a/inc/geshi/gml.php
+++ b/inc/geshi/gml.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Jos� Jorge Enr�quez (jenriquez@users.sourceforge.net)
  * Copyright: (c) 2005 Jos� Jorge Enr�quez Rodr�guez (http://www.zonamakers.com)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/06/21
  *
  * GML language file for GeSHi.
@@ -435,8 +435,13 @@ $language_data = array (
             ),
         ),
     'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '&&', '||', '^^', '<', '<=', '==', '!=', '>', '>=',
-        '|', '&', '^', '<<', '>>', '+', '-', '*', '/', '!', '-', '~'
+        '(', ')', '{', '}', '[', ']',
+        '&&', '||', '^^', '&', '|', '^',
+        '<', '<=', '==', '!=', '>', '>=', '=',
+        '<<', '>>',
+        '+=', '-=', '*=', '/=',
+        '+', '-', '*', '/',
+        '!', '~', ',', ';'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
diff --git a/inc/geshi/gnuplot.php b/inc/geshi/gnuplot.php
index 1beaab5fb0b77128e4b7f6ab98120afe657ba8d5..3b67fb6faec0133ea7815d018e95e53289fcf0d1 100644
--- a/inc/geshi/gnuplot.php
+++ b/inc/geshi/gnuplot.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/07/07
  *
  * Gnuplot script language file for GeSHi.
@@ -41,6 +41,11 @@ $language_data = array (
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('`', '"', "'"),
     'ESCAPE_CHAR' => '\\',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC |
+        GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_SCI_SHORT |
+        GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         // copy output of help command, indent properly and use this replace regexp:
         // ([a-z0-9_\-]+)(( )+|$)          =>     '\1',\3
@@ -64,7 +69,7 @@ $language_data = array (
             'cbtics', 'clabel', 'clip', 'cntrparam',
             'colorbox', 'contour', 'datafile', 'date_specifiers',
             'decimalsign', 'dgrid3d', 'dummy', 'encoding',
-            'fit', 'fontpath', 'format', 'grid',
+            'fontpath', 'format', 'grid',
             'hidden3d', 'historysize', 'isosamples', 'key',
             'label', 'lmargin', 'loadpath', 'locale',
             'log', 'logscale', 'macros', 'mapping',
@@ -72,12 +77,12 @@ $language_data = array (
             'mx2tics', 'mxtics', 'my2tics', 'mytics',
             'mztics', 'object', 'offsets', 'origin',
             'output', 'palette', 'parametric', 'pm3d',
-            'pointsize', 'polar', 'print', 'rmargin',
+            'pointsize', 'polar', 'rmargin',
             'rrange', 'samples', 'size', 'style',
             'surface', 'table', 'term', 'terminal',
             'termoption', 'tics', 'ticscale', 'ticslevel',
             'time_specifiers', 'timefmt', 'timestamp', 'title',
-            'tmargin', 'trange', 'urange', 'view',
+            'trange', 'urange', 'view',
             'vrange', 'x2data', 'x2dtics', 'x2label',
             'x2mtics', 'x2range', 'x2tics', 'x2zeroaxis',
             'xdata', 'xdtics', 'xlabel', 'xmtics',
@@ -139,11 +144,11 @@ $language_data = array (
             'exists', 'exp', 'floor', 'gamma',
             'gprintf', 'ibeta', 'igamma', 'imag',
             'int', 'inverf', 'invnorm', 'lambertw',
-            'lgamma', 'log', 'log10', 'norm',
+            'lgamma', 'log10', 'norm',
             'rand', 'random', 'real', 'sgn',
             'sin', 'sinh', 'sprintf', 'sqrt',
             'stringcolumn', 'strlen', 'strstrt', 'substr',
-            'system', 'tan', 'tanh', 'timecolumn',
+            'tan', 'tanh', 'timecolumn',
             'tm_hour', 'tm_mday', 'tm_min', 'tm_mon',
             'tm_sec', 'tm_wday', 'tm_yday', 'tm_year',
             'valid', 'word', 'words',
@@ -151,12 +156,12 @@ $language_data = array (
         5 => array(
             // mixed arguments
             // there is no sane way to get these ones easily...
-            'notitle', 'autofreq', 'x', 'y', 'z',
+            'autofreq', 'x', 'y', 'z',
             'lt', 'linetype', 'lw', 'linewidth', 'ls', 'linestyle',
             'out', 'rotate by', 'screen',
             'enhanced', 'via',
             // `help set key`
-            'on', 'off', 'default', 'inside', 'outside', 'lmargin', 'rmargin', 'tmargin', 'bmargin',
+            'on', 'off', 'default', 'inside', 'outside', 'tmargin',
             'at', 'left', 'right', 'center', 'top', 'bottom', 'vertical', 'horizontal', 'Left', 'Right',
             'noreverse', 'reverse', 'noinvert', 'invert', 'samplen', 'spacing', 'width', 'height',
             'noautotitle', 'autotitle', 'noenhanced', 'nobox', 'box',
@@ -165,7 +170,7 @@ $language_data = array (
             'landscape', 'portrait', 'eps', 'defaultplex', 'simplex', 'duplex',
             'fontfile', 'add', 'delete', 'nofontfiles', 'level1', 'leveldefault',
             'color', 'colour', 'monochrome', 'solid', 'dashed', 'dashlength', 'dl',
-            'rounded', 'butt', 'palfuncparam', 'size', 'blacktext', 'colortext', 'colourtext',
+            'rounded', 'butt', 'palfuncparam', 'blacktext', 'colortext', 'colourtext',
             'font',
 
             // help set terminal png
@@ -175,10 +180,10 @@ $language_data = array (
 
             // `help plot`
             'acsplines', 'bezier', 'binary', 'csplines',
-            'datafile', 'every',
+            'every',
             'example', 'frequency', 'index', 'matrix',
-            'parametric', 'ranges', 'sbezier', 'smooth',
-            'special-filenames', 'style', 'thru', 'title',
+            'ranges', 'sbezier', 'smooth',
+            'special-filenames', 'thru',
             'unique', 'using', 'with',
 
             // `help plotting styles`
diff --git a/inc/geshi/groovy.php b/inc/geshi/groovy.php
index 9031473362d04322938254ad40c25730c9c68133..332f163c6d4b0b3579361dd491b135bfc802b756 100644
--- a/inc/geshi/groovy.php
+++ b/inc/geshi/groovy.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com)
  * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/04/29
  *
  * Groovy language file for GeSHi.
diff --git a/inc/geshi/haskell.php b/inc/geshi/haskell.php
index 3dcd01e6a807a36e80f98e5a33afe76b29c6e8dd..a6841ddc57fdd8c725b860de327e67e1f44e4736 100644
--- a/inc/geshi/haskell.php
+++ b/inc/geshi/haskell.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/08/27
  *
  * Haskell language file for GeSHi.
diff --git a/inc/geshi/hq9plus.php b/inc/geshi/hq9plus.php
new file mode 100644
index 0000000000000000000000000000000000000000..89e043432c41b7a078f6ac079d95b1cc68a693ad
--- /dev/null
+++ b/inc/geshi/hq9plus.php
@@ -0,0 +1,104 @@
+<?php
+/*************************************************************************************
+ * hq9plus.php
+ * ----------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/10/31
+ *
+ * HQ9+ language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/31 (1.0.8.1)
+ *   -  First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+$language_data = array (
+    'LANG_NAME' => 'HQ9+',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        ),
+    'SYMBOLS' => array(
+        'H', 'Q', '9', '+', 'h', 'q'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            ),
+        'COMMENTS' => array(
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #a16000;'
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'KEYWORDS' => GESHI_NEVER,
+            'COMMENTS' => GESHI_NEVER,
+            'STRINGS' => GESHI_NEVER,
+            'REGEXPS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+            )
+        )
+);
+
+?>
diff --git a/inc/geshi/html4strict.php b/inc/geshi/html4strict.php
index 3e2da0f613806c700da933a7501308ad359c476d..68a0e5173a0188818c385c051d8e1c0e1c702620 100644
--- a/inc/geshi/html4strict.php
+++ b/inc/geshi/html4strict.php
@@ -4,7 +4,7 @@
  * ---------------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/10
  *
  * HTML 4.01 strict language file for GeSHi.
diff --git a/inc/geshi/idl.php b/inc/geshi/idl.php
index 973d81acba01cf5c639fde7eb70c351d93b137e8..a641554de0c611c17575cc682f8ed9b19527dac1 100644
--- a/inc/geshi/idl.php
+++ b/inc/geshi/idl.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org)
  * Copyright: (c) 2006 Cedric Bosdonnat
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/08/20
  *
  * Unoidl language file for GeSHi.
diff --git a/inc/geshi/ini.php b/inc/geshi/ini.php
index f241f458f4310403107e6ec5705338551584622d..b6e3a3899787d3dce87613e533fdee578269adda 100644
--- a/inc/geshi/ini.php
+++ b/inc/geshi/ini.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br)
  * Copyright: (c) 2005 deguix
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/03/27
  *
  * INI language file for GeSHi.
@@ -100,7 +100,7 @@ $language_data = array (
         0 => '\[.+\]',
         //Entry names
         1 => array(
-            GESHI_SEARCH => '^(\s*)([a-zA-Z0-9_]+)(\s*=)',
+            GESHI_SEARCH => '^(\s*)([a-zA-Z0-9_\-]+)(\s*=)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'm',
             GESHI_BEFORE => '\\1',
diff --git a/inc/geshi/inno.php b/inc/geshi/inno.php
index 41e7c13c6a3ef76eb5480404c2ba17c0ba2d07f6..5cead102ae2cc7ab85873af1ea1ba206d7f3c3b5 100644
--- a/inc/geshi/inno.php
+++ b/inc/geshi/inno.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from J�rja Norbert (jnorbi@vipmail.hu)
  * Copyright: (c) 2004 J�rja Norbert, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/07/29
  *
  * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi.
@@ -185,7 +185,7 @@ $language_data = array (
         'REGEXPS' => array(
             ),
         'SYMBOLS' => array(
-            0 => 'color:  #000000; font-weight: bold;',
+            0 => 'color: #000000; font-weight: bold;',
             ),
         'SCRIPT' => array(
             )
diff --git a/inc/geshi/intercal.php b/inc/geshi/intercal.php
new file mode 100644
index 0000000000000000000000000000000000000000..b4ad049fe53110ce710dbda0fc876b99f2726c6b
--- /dev/null
+++ b/inc/geshi/intercal.php
@@ -0,0 +1,122 @@
+<?php
+/*************************************************************************************
+ * intercal.php
+ * ----------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/10/31
+ *
+ * INTERCAL language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/31 (1.0.8.1)
+ *   -  First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+$language_data = array (
+    'LANG_NAME' => 'INTERCAL',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        //Politeness
+        1 => array(
+            'DO', 'DOES', 'DONT', 'DON\'T', 'NOT', 'PLEASE', 'PLEASENT', 'PLEASEN\'T', 'MAYBE'
+            ),
+        //Statements
+        2 => array(
+            'STASH', 'RETRIEVE', 'NEXT', 'RESUME', 'FORGET', 'ABSTAIN', 'ABSTAINING',
+            'COME', 'FROM', 'CALCULATING', 'REINSTATE', 'IGNORE', 'REMEMBER',
+            'WRITE', 'IN', 'READ', 'OUT', 'GIVE', 'UP'
+            )
+        ),
+    'SYMBOLS' => array(
+        '.', ',', ':', ';', '#',
+        '~', '$', '&', '?',
+        '\'', '"', '<-'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000080; font-weight: bold;',
+            2 => 'color: #000080; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            1 => 'color: #808080; font-style: italic;'
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        1 => '^\(\d+\)'
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'COMMENTS' => GESHI_NEVER,
+            'STRINGS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+            )
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/io.php b/inc/geshi/io.php
index 663afa574a932a0cf0c52cac780bcc2beffe1299..e9117abf4ddc5db5da500be0d7ad32f08de6b250 100644
--- a/inc/geshi/io.php
+++ b/inc/geshi/io.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/09/23
  *
  * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help
diff --git a/inc/geshi/java.php b/inc/geshi/java.php
index 252fa9d36c6fbdd6e08161714e432638dd33e1f4..7e5dc08c68377bf1a53ae5c9b775e679f39f8e86 100644
--- a/inc/geshi/java.php
+++ b/inc/geshi/java.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
@@ -59,7 +59,7 @@ $language_data = array (
         //Import and Package directives (Basic Support only)
         2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
         // javadoc comments
-        3 => '#/\*\*(?!\*).*\*/#sU'
+        3 => '#/\*\*(?![\*\/]).*\*/#sU'
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
@@ -934,7 +934,7 @@ $language_data = array (
             1 => 'color: #666666; font-style: italic;',
             2 => 'color: #006699;',
             3 => 'color: #008000; font-style: italic; font-weight: bold;',
-            3  => 'color: #008000; font-style: italic; font-weight: bold;',
+            3 => 'color: #008000; font-style: italic; font-weight: bold;',
             'MULTI' => 'color: #666666; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
diff --git a/inc/geshi/java5.php b/inc/geshi/java5.php
index a952cb0cede54fe8ace9bd0fc27a2cc5b89d0f67..1766ef954702166d61f2bf121d0286c55ea07907 100644
--- a/inc/geshi/java5.php
+++ b/inc/geshi/java5.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
@@ -56,7 +56,10 @@ $language_data = array (
     'COMMENT_MULTI' => array('/*' => '*/'),
     'COMMENT_REGEXP' => array(
         //Import and Package directives (Basic Support only)
-        2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i'),
+        2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
+        // javadoc comments
+        3 => '#/\*\*(?![\*\/]).*\*/#sU'
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '\\',
@@ -815,6 +818,7 @@ $language_data = array (
         'COMMENTS' => array(
             1 => 'color: #666666; font-style: italic;',
             2 => 'color: #006699;',
+            3 => 'color: #008000; font-style: italic; font-weight: bold;',
             'MULTI' => 'color: #666666; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
diff --git a/inc/geshi/javascript.php b/inc/geshi/javascript.php
index 32b87b03e2bbf5360aa4a3c4255bd5017e753f4c..1232a8aae45b178ae2a78bba0596142cca383571 100644
--- a/inc/geshi/javascript.php
+++ b/inc/geshi/javascript.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/20
  *
  * JavaScript language file for GeSHi.
diff --git a/inc/geshi/kixtart.php b/inc/geshi/kixtart.php
index 73e1e219203daee3eacf8a04254871f183a4520e..3b4dc4c69871d657ed37ace4178abec73881a4f5 100644
--- a/inc/geshi/kixtart.php
+++ b/inc/geshi/kixtart.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Riley McArdle (riley@glyff.net)
  * Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/08/31
  *
  * PHP language file for GeSHi.
diff --git a/inc/geshi/klonec.php b/inc/geshi/klonec.php
index 54e2388c6d610b3e2a297fd2e5ce89aaed02b1b1..599f56b29e3a9660e98f722a863c4f693b0db012 100644
--- a/inc/geshi/klonec.php
+++ b/inc/geshi/klonec.php
@@ -4,7 +4,7 @@
  * --------
  * Author: AUGER Mickael
  * Copyright: Synchronic
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/04/16
  *
  * KLone with C language file for GeSHi.
@@ -46,12 +46,12 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(//mots-cles C
-            'if', 'return', 'while', 'case', 'continue', 'default',
+            'if', 'return', 'while', 'case', 'class', 'continue', 'default',
             'do', 'else', 'for', 'switch', 'goto',
             'null', 'break', 'true', 'enum', 'extern', 'inline', 'false'
             ),
         2 => array(//mots-cles KLone
-            '&lt;%=', '&lt;%!', '&lt;%', '%&gt;', 'out', 'request', 'response',
+            'out', 'request', 'response',
             ),
         3 => array(//fonctions C usuelles
             'printf', 'malloc', 'fopen', 'fclose', 'free', 'fputs', 'fgets', 'feof', 'fwrite',
@@ -152,11 +152,16 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '!', '%', '&', '|', '/',
-        '<', '>',
-        '=', '-', '+', '*',
-        '.', ':', ',', ';', '^'
+        1 => array(
+            '<%=', '<%!', '<%', '%>'
+            ),
+        0 => array(
+            '(', ')', '[', ']', '{', '}',
+            '!', '%', '&', '|', '/',
+            '<', '>',
+            '=', '-', '+', '*',
+            '.', ':', ',', ';', '^'
+            )
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -200,7 +205,8 @@ $language_data = array (
             2 => 'color: #006600;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #000000;'
+            0 => 'color: #000000;',
+            1 => 'color: #000000; font-weight: bold;'
             ),
         'REGEXPS' => array(),
         'SCRIPT' => array(
@@ -265,6 +271,9 @@ $language_data = array (
             6 => array(
                 'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
                 'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
+            ),
+            7 => array(
+                'DISALLOWED_AFTER' => '(?=\s*=)',
             )
         )
     )
diff --git a/inc/geshi/klonecpp.php b/inc/geshi/klonecpp.php
index cb95d4d0e3fcbae413cfb611a476ba4529501822..7be4f40e5f01e3b4ec1fee776fa26e1d5ae5daea 100644
--- a/inc/geshi/klonecpp.php
+++ b/inc/geshi/klonecpp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: AUGER Mickael
  * Copyright: Synchronic
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/04/16
  *
  * KLone with C++ language file for GeSHi.
@@ -66,7 +66,7 @@ $language_data = array (
             'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC'
             ),
         2 => array(//mots-cles KLone
-            '&lt;%=', '&lt;%!', '&lt;%', '%&gt;', 'out', 'request', 'response',
+            'out', 'request', 'response',
             ),
         3 => array(//fonctions C++ usuelles
             'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
@@ -180,11 +180,16 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '!', '%', '&', '|', '/',
-        '<', '>',
-        '=', '-', '+', '*',
-        '.', ':', ',', ';', '^'
+        1 => array(
+            '<%=', '<%!', '<%', '%>'
+            ),
+        0 => array(
+            '(', ')', '[', ']', '{', '}',
+            '!', '%', '&', '|', '/',
+            '<', '>',
+            '=', '-', '+', '*',
+            '.', ':', ',', ';', '^'
+            )
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -228,7 +233,8 @@ $language_data = array (
             2 => 'color: #006600;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #000000;'
+            0 => 'color: #000000;',
+            1 => 'color: #000000; font-weight: bold;'
             ),
         'REGEXPS' => array(),
         'SCRIPT' => array(
@@ -293,6 +299,9 @@ $language_data = array (
             6 => array(
                 'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
                 'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
+            ),
+            7 => array(
+                'DISALLOWED_AFTER' => '(?=\s*=)',
             )
         )
     )
diff --git a/inc/geshi/latex.php b/inc/geshi/latex.php
index 14238aea4e72a5f17f81413e3b3da4d2744ad941..e4926d956e03c959bf73030b4c6107343838dcf5 100644
--- a/inc/geshi/latex.php
+++ b/inc/geshi/latex.php
@@ -2,15 +2,27 @@
 /*************************************************************************************
  * latex.php
  * -----
- * Author: efi, Matthias Pospiech (mail@matthiaspospiech.de)
- * Copyright: (c) 2006 efi, Matthias Pospiech (mail@matthiaspospiech.de), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Author: efi, Matthias Pospiech (matthias@pospiech.eu)
+ * Copyright: (c) 2006 efi, Matthias Pospiech (matthias@pospiech.eu), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.3
  * Date Started: 2006/09/23
  *
  * LaTeX language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2008/08/18 (1.0.8.1)
+ *  - Changes in color and some additional command recognition
+ *  - No special Color for Brackets, it is only distracting
+ *    if color should be reintroduced it should be less bright
+ *  - Math color changed from green to violett, since green is now used for comments
+ *  - Comments are now colored and the only green. The reason for coloring the comments
+ *    is that often important information is in the comments und was merely unvisible before.
+ *  - New Color for [Options]
+ *  - color for labels not specialised anymore. It makes sence in large documents but less in
+ *    small web examples.
+ *  - \@keyword introduced
+ *  - Fixed \& escaped ampersand
  * 2006/09/23 (1.0.0)
  *  -  First Release
  *
@@ -48,18 +60,29 @@ $language_data = array (
     'QUOTEMARKS' => array(),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
+        1 => array(
+            'appendix','backmatter','caption','captionabove','captionbelow',
+            'def','documentclass','edef','equation','flushleft','flushright',
+            'footnote','frontmatter','hline','include','input','item','label',
+            'let','listfiles','listoffigures','listoftables','mainmatter',
+            'makeatletter','makeatother','makebox','mbox','par','raggedleft',
+            'raggedright','raisebox','ref','rule','table','tableofcontents',
+            'textbf','textit','texttt','today'
+            )
         ),
     'SYMBOLS' => array(
-        '.', ',','\\',"~", "{", "}", "[", "]", "$"
+        "&", "\\", "{", "}", "[", "]"
         ),
     'CASE_SENSITIVE' => array(
+        1 => true,
         GESHI_COMMENTS => false,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
+            1 => 'color: #800000; font-weight: bold;',
             ),
         'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;'
+            1 => 'color: #2C922C; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
             0 =>  'color: #000000; font-weight: bold;'
@@ -74,26 +97,27 @@ $language_data = array (
         'METHODS' => array(
             ),
         'SYMBOLS' => array(
-            1 =>  'color: #800000; font-weight: bold;'
+            0 =>  'color: #E02020; '
             ),
         'REGEXPS' => array(
-            1 => 'color: #00A000; font-weight: bold;',  // Math inner
-            2 => 'color: #800000; font-weight: normal;', // \keyword #202020
-            3 => 'color: #2222D0; font-weight: normal;', // {...}
-            4 => 'color: #2222D0; font-weight: normal;', // [Option]
-            5 => 'color: #00A000; font-weight: normal;', // Mathe #CCF020
-            6 => 'color: #F00000; font-weight: normal;', // Structure \begin
-            7 => 'color: #F00000; font-weight: normal;', // Structure \end
-            8 => 'color: #F00000; font-weight: normal;', // Structure: Labels
-            //9 => 'color: #F00000; font-weight: normal;',  // Structure
-            10 => 'color: #0000D0; font-weight: bold;',  // Environment
-            11 => 'color: #0000D0; font-weight: bold;',  // Environment
-            12 => 'color: #800000; font-weight: normal;', // Escaped char
+            1 => 'color: #8020E0; font-weight: normal;',  // Math inner
+            2 => 'color: #C08020; font-weight: normal;', // [Option]
+            3 => 'color: #8020E0; font-weight: normal;', // Maths
+            4 => 'color: #800000; font-weight: normal;', // Structure: Labels
+            5 => 'color: #00008B; font-weight: bold;',  // Structure (\section{->x<-})
+            6 => 'color: #800000; font-weight: normal;', // Structure (\section)
+            7 => 'color: #0000D0; font-weight: normal;', // Environment \end or \begin{->x<-} (brighter blue)
+            8 => 'color: #C00000; font-weight: normal;', // Structure \end or \begin
+            9 => 'color: #2020C0; font-weight: normal;', // {...}
+            10 => 'color: #800000; font-weight: normal;', // \%, \& etc.
+            11 => 'color: #E00000; font-weight: normal;', // \@keyword
+            12 => 'color: #800000; font-weight: normal;', // \keyword
         ),
         'SCRIPT' => array(
             )
         ),
     'URLS' => array(
+        1 => 'http://www.golatex.de/wiki/index.php?title=\\{FNAME}',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
@@ -101,102 +125,64 @@ $language_data = array (
     'REGEXPS' => array(
         // Math inner
         1 => array(
-            GESHI_SEARCH => "(\\\\begin\\{)(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|alignat|flalign)(\\})(.*)(\\\\end\\{)(\\2)(\\})",
-            GESHI_REPLACE => '\4',
-            GESHI_MODIFIERS => 'Us',
-            GESHI_BEFORE => '\1\2\3',
-            GESHI_AFTER => '\5\6\7'
-            ),
-        // \keywords
-        2 => array(
-            GESHI_SEARCH => "(\\\\)([a-zA-Z]+)",
-            GESHI_REPLACE => '\1\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // {parameters}
-        3 => array(
-            GESHI_SEARCH => "(\\{)(.*)(\\})",
-            GESHI_REPLACE => '\2',
+            GESHI_SEARCH => "(\\\\begin\\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|alignat|flalign)\\})(.*)(\\\\end\\{\\2\\})",
+            GESHI_REPLACE => '\3',
             GESHI_MODIFIERS => 'Us',
             GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
+            GESHI_AFTER => '\4'
             ),
         // [options]
-        4 => array(
-            GESHI_SEARCH => "(\[)(.+)(\])",
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => 'Us',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Math mode with $ ... $
-        5 => array(
-            GESHI_SEARCH => "(\\$)(.+)(\\$)",
-            GESHI_REPLACE => '\1\2\3',
+        2 => array(
+            GESHI_SEARCH => "(?<=\[).+(?=\])",
+            GESHI_REPLACE => '\0',
             GESHI_MODIFIERS => 'Us',
             GESHI_BEFORE => '',
             GESHI_AFTER => ''
             ),
-        // Structure begin
-        6 => array(
-            GESHI_SEARCH => "(\\\\begin)(?=[^a-zA-Z])",
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // Structure end
-        7 => array(
-            GESHI_SEARCH => "(\\\\end)(?=[^a-zA-Z])",
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
+        // Math mode with $ ... $
+        3 => array(
+            GESHI_SEARCH => "\\$.+\\$",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => 'Us',
             GESHI_BEFORE => '',
             GESHI_AFTER => ''
             ),
         // Structure: Label
-        8 => array(
-            GESHI_SEARCH => "(\\\\)(label|pageref|ref|cite)(?=[^a-zA-Z])",
-            GESHI_REPLACE => '\\1\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
+        4 => "\\\\(?:label|pageref|ref|cite)(?=[^a-zA-Z])",
         // Structure: sections
-        /*9 => array(
-            GESHI_SEARCH => "(\\\\)(part|chapter|section|subsection|subsubsection|paragraph|subparagraph)(?=[^a-zA-Z])",
-            GESHI_REPLACE => '\1\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\3'
-            ),*/
-
-        // environment begin
-        10 => array(
-            GESHI_SEARCH => "(\\\\begin)(\\{)(.*)(\\})",
-            GESHI_REPLACE => '\\3',
+        5 => array(
+            GESHI_SEARCH => "(\\\\(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph|addpart|addchap|addsec)\*?\\{)(.*)(?=\\})",
+            GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'U',
-            GESHI_BEFORE => '',
+            GESHI_BEFORE => '\\1',
             GESHI_AFTER => ''
             ),
-        // environment end
-        11 => array(
-            GESHI_SEARCH => "(\\\\end)(\\{)(.*)(\\})",
-            GESHI_REPLACE => '\\3',
+        // Structure: sections
+        6 => "\\\\(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph|addpart|addchap|addsec)\*?(?=[^a-zA-Z])",
+        // environment \begin{} and \end{} (i.e. the things inside the {})
+        7 => array(
+            GESHI_SEARCH => "(\\\\(?:begin|end)\\{)(.*)(?=\\})",
+            GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'U',
-            GESHI_BEFORE => '',
+            GESHI_BEFORE => '\\1',
             GESHI_AFTER => ''
             ),
-
-        // environment end
-        12 => array(
-            GESHI_SEARCH => "(\\\\[_$%])",
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
+        // Structure \begin and \end
+        8 => "\\\\(?:end|begin)(?=[^a-zA-Z])",
+        // {parameters}
+        9 => array(
+            GESHI_SEARCH => "(?<=\\{)(?!<\|!REG3XP5!>).*(?=\\})",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => 'Us',
             GESHI_BEFORE => '',
             GESHI_AFTER => ''
-            )
+            ),
+        // \%, \& usw.
+        10 => "\\\\(?:[_$%]|&amp;)",
+        //  \@keywords
+        11 => "(?<!<\|!REG3XP[8]!>)\\\\@[a-zA-Z]+\*?",
+        // \keywords
+        12 => "(?<!<\|!REG3XP[468]!>)\\\\[a-zA-Z]+\*?",
 
 // ---------------------------------------------
         ),
@@ -209,11 +195,15 @@ $language_data = array (
         'COMMENTS' => array(
             'DISALLOWED_BEFORE' => '\\'
         ),
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<=\\\\)",
+            'DISALLOWED_AFTER' => "(?=\b)(?!\w)"
+        ),
         'ENABLE_FLAGS' => array(
             'NUMBERS' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER,
+            'BRACKETS' => GESHI_NEVER
         )
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/lisp.php b/inc/geshi/lisp.php
index 33f570fb5aad8c4d9671ba28c5e4537938159487..de08d9c2c20375ce10b0812b7d76d621cf1650a0 100644
--- a/inc/geshi/lisp.php
+++ b/inc/geshi/lisp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * Generic Lisp language file for GeSHi.
@@ -50,7 +50,7 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            'not','defun','princ',
+            'not','defun','princ','when',
             'eval','apply','funcall','quote','identity','function',
             'complement','backquote','lambda','set','setq','setf',
             'defmacro','gensym','make','symbol','intern',
@@ -73,11 +73,16 @@ $language_data = array (
             'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt',
             'random','logand','logior','logxor','lognot','bignums','logeqv',
             'lognand','lognor','logorc2','logtest','logbitp','logcount',
-            'integer','nil'
+            'integer','nil','parse-integer'
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|'
+        '(', ')', '{', '}', '[', ']',
+        '!', '%', '^', '&',
+        ' + ',' - ',' * ',' / ',
+        '=','<','>',
+        '.',':',',',';',
+        '|'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -128,6 +133,11 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'OOLANG' => array(
+            'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*'
+            )
         )
 );
 
diff --git a/inc/geshi/locobasic.php b/inc/geshi/locobasic.php
new file mode 100644
index 0000000000000000000000000000000000000000..02e6a7a5678349fcb45d57f23d39153b909d4785
--- /dev/null
+++ b/inc/geshi/locobasic.php
@@ -0,0 +1,130 @@
+<?php
+/*************************************************************************************
+ * locobasic.php
+ * -------------
+ * Author: Nacho Cabanes
+ * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/03/22
+ *
+ * Locomotive Basic (Amstrad CPC series) language file for GeSHi.
+ *
+ * More details at http://en.wikipedia.org/wiki/Locomotive_BASIC
+ *
+ * CHANGES
+ * -------
+ * 2009/03/22 (1.0.8.3)
+ *  -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Locomotive Basic',
+    'COMMENT_SINGLE' => array(1 => "'", 2 => 'REM'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            "AFTER", "AND", "AUTO", "BORDER", "BREAK", "CALL", "CAT", "CHAIN",
+            "CLEAR", "CLG", "CLS", "CLOSEIN", "CLOSEOUT", "CONT", "CURSOR",
+            "DATA", "DEF", "DEFINT", "DEFREAL", "DEFSTR", "DEG", "DELETE",
+            "DERR", "DI", "DIM", "DRAW", "DRAWR", "EDIT", "EI", "ELSE", "END",
+            "ENV", "ENT", "EOF", "ERASE", "ERL", "ERR", "ERROR", "EVERY",
+            "FILL", "FN", "FOR", "FRAME", "GOSUB", "GOTO", "GRAPHICS", "HIMEM",
+            "IF", "INK", "INPUT", "KEY", "LET", "LINE", "LIST", "LOAD",
+            "LOCATE", "MASK", "MEMORY", "MERGE", "MODE", "MOVE", "MOVER", "NEW",
+            "NEXT", "NOT", "ON", "OPENIN", "OPENOUT", "OR", "ORIGIN", "PAPER",
+            "PEEK", "PEN", "PLOT", "PLOTR", "POKE", "PRINT", "RAD", "RANDOMIZE",
+            "READ", "RELEASE", "REMAIN", "RENUM", "RESTORE", "RESUME", "RETURN",
+            "RUN", "SAVE", "SPEED", "SOUND", "SPC", "SQ", "STEP", "STOP", "SWAP",
+            "SYMBOL", "TAB", "TAG", "TAGOFF", "TEST", "TESTR", "TIME", "TO",
+            "THEN", "TRON", "TROFF", "USING", "WAIT", "WEND", "WHILE", "WIDTH",
+            "WINDOW", "WRITE", "XOR", "ZONE"
+            ),
+        2 => array(
+            "ABS", "ASC", "ATN", "BIN", "CHR", "CINT", "COPYCHR", "COS",
+            "CREAL", "DEC", "FIX", "FRE", "EXP", "HEX", "INKEY", "INP", "INSTR",
+            "INT", "JOY", "LEFT", "LEN", "LOG", "LOG10", "LOWER", "MAX", "MID",
+            "MIN", "MOD", "OUT", "PI", "POS", "RIGHT", "RND", "ROUND", "SGN",
+            "SIN", "SPACE", "SQR", "STR", "STRING", "TAN", "UNT", "UPPER",
+            "VAL", "VPOS", "XPOS", "YPOS"
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000ff; font-weight: bold;',
+            2 => 'color: #008888; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080;',
+            2 => 'color: #808080;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0044ff;'
+            ),
+        'METHODS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099;'
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/lolcode.php b/inc/geshi/lolcode.php
new file mode 100644
index 0000000000000000000000000000000000000000..19b42f566776903f55d751596ef87e3bcb3520eb
--- /dev/null
+++ b/inc/geshi/lolcode.php
@@ -0,0 +1,152 @@
+<?php
+/*************************************************************************************
+ * lolcode.php
+ * ----------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/10/31
+ *
+ * LOLcode language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/31 (1.0.8.1)
+ *   -  First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+$language_data = array (
+    'LANG_NAME' => 'LOLcode',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        1 => "/\bBTW\b.*$/im",
+        2 => "/(^|\b)(?:OBTW\b.+?\bTLDR|LOL\b.+?\/LOL)(\b|$)/si"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        1 => '/:[)>o":]/',
+        2 => '/:\([\da-f]+\)/i',
+        3 => '/:\{\w+\}/i',
+        4 => '/:\[\w+\]/i',
+        ),
+    'KEYWORDS' => array(
+        //Statements
+        1 => array(
+            'VISIBLE', 'HAI', 'KTHX', 'KTHXBYE', 'SMOOSH', 'GIMMEH', 'PLZ',
+            'ON', 'INVISIBLE', 'R', 'ITZ', 'GTFO', 'COMPLAIN', 'GIMME',
+
+            'OPEN', 'FILE', 'I HAS A', 'AWSUM THX', 'O NOES', 'CAN', 'HAS', 'HAZ',
+            'HOW DOES I', 'IF U SAY SO', 'FOUND YR', 'BORROW', 'OWN', 'ALONG',
+            'WITH', 'WIT', 'LOOK', 'AT', 'AWSUM', 'THX'
+            ),
+        //Conditionals
+        2 => array(
+            'IZ', 'YARLY', 'NOWAI', 'WTF?', 'MEBBE', 'OMG', 'OMGWTF',
+            'ORLY?', 'OF', 'NOPE', 'SO', 'IM', 'MAI',
+
+            'O RLY?', 'SUM', 'BOTH SAEM', 'DIFFRINT', 'BOTH', 'EITHER', 'WON',
+            'DIFF', 'PRODUKT', 'QUOSHUNT', 'MOD', 'MKAY', 'OK', 'THING',
+            'BIGNESS'
+            ),
+        //Repetition
+        3 => array(
+            'IN', 'OUTTA', 'LOOP', 'WHILE'
+            ),
+        //Operators \Math
+        4 => array(
+            'AN', 'AND', 'NOT', 'UP', 'YR', 'UPPIN', 'NERF', 'NERFIN', 'NERFZ',
+            'SMASHING', 'UR', 'KINDA', 'LIKE', 'SAEM', 'BIG', 'SMALL',
+            'BIGGR', 'SMALLR', 'BIGGER', 'SMALLER', 'GOOD', 'CUTE', 'THAN'
+            )
+        ),
+    'SYMBOLS' => array(
+        '.', ',', '?',
+        '!!'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #008000;',
+            2 => 'color: #000080;',
+            3 => 'color: #000080;',
+            4 => 'color: #800000;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; style: italic;',
+            2 => 'color: #666666; style: italic;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'SPACE_AS_WHITESPACE' => true
+            )
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/lotusformulas.php b/inc/geshi/lotusformulas.php
index a49b658a489cedc6e8baa14a8bcc0a4edb95a09e..010fb226c2def48f3d3625533120f8178bb519f1 100644
--- a/inc/geshi/lotusformulas.php
+++ b/inc/geshi/lotusformulas.php
@@ -4,7 +4,7 @@
  * ------------------------
  * Author: Richard Civil (info@richardcivil.net)
  * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/04/12
  *
  * @Formula/@Command language file for GeSHi.
diff --git a/inc/geshi/lotusscript.php b/inc/geshi/lotusscript.php
index 5dc329de3a42a2986c3f3572445dbee6db2adb56..598da3b86d3a7a1390f831bce05f4e250d381be8 100644
--- a/inc/geshi/lotusscript.php
+++ b/inc/geshi/lotusscript.php
@@ -4,7 +4,7 @@
  * ------------------------
  * Author: Richard Civil (info@richardcivil.net)
  * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/04/12
  *
  * LotusScript language file for GeSHi.
diff --git a/inc/geshi/lscript.php b/inc/geshi/lscript.php
new file mode 100644
index 0000000000000000000000000000000000000000..57bb2ba166b482932049c503e4256191a9021d92
--- /dev/null
+++ b/inc/geshi/lscript.php
@@ -0,0 +1,387 @@
+<?php
+/*************************************************************************************
+ * lscript.php
+ * ---------
+ * Author: Arendedwinter (admin@arendedwinter.com)
+ * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com)
+ * Release Version: 1.0.8.3
+ * Date Started: 15/11/2008
+ *
+ * Lightwave Script language file for GeSHi.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'LScript',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+    //Yes, I'm aware these are out of order,
+    //I had to rearrange and couldn't be bothered changing the numbers...
+        7 => array(
+            '@data', '@define', '@else', '@end', '@fpdepth', '@if', '@include',
+            '@insert', '@library', '@localipc', '@name', '@save', '@script',
+            '@sequence', '@version', '@warnings'
+            ),
+        1 => array(
+            'break', 'case', 'continue', 'else', 'end', 'false', 'for',
+            'foreach', 'if', 'return', 'switch', 'true', 'while',
+            ),
+        3 => array(
+            'active', 'alertlevel', 'alpha', 'alphaprefix', 'animfilename', 'autokeycreate',
+            'backdroptype', 'blue', 'boxthreshold', 'button',
+            'channelsvisible', 'childrenvisible', 'compfg', 'compbg', 'compfgalpha',
+            'coneangles', 'cosine', 'count', 'ctl', 'curFilename', 'curFrame',
+            'currenttime', 'curTime', 'curType',
+            'depth', 'diffshade', 'diffuse', 'dimensions', 'displayopts', 'dynamicupdate',
+            'end', 'eta',
+            'filename', 'flags', 'fogtype', 'fps', 'frame', 'frameend', 'frameheight',
+            'framestart', 'framestep', 'framewidth',
+            'generalopts', 'genus', 'geometry', 'gNorm', 'goal', 'green',
+            'h', 'hasAlpha', 'height',
+            'id', 'innerlimit', 'isColor',
+            'keyCount', 'keys',
+            'limiteregion', 'locked', 'luminous',
+            'maxsamplesperpixel', 'minsamplesperpixel', 'mirror', 'motionx', 'motiony',
+            'name', 'newFilename', 'newFrame', 'newTime', 'newType', 'null', 'numthreads',
+            'objID', 'oPos', 'outerlimit', 'oXfrm',
+            'parent', 'pixel', 'pixelaspect', 'point', 'points', 'pointcount', 'polNum',
+            'polycount', 'polygon', 'polygons', 'postBehavior', 'preBehavior', 'previewend',
+            'previewstart', 'previewstep',
+            'range', 'rawblue', 'rawgreen', 'rawred', 'rayLength', 'raySource', 'red',
+            'reflectblue', 'reflectgreen', 'reflectred', 'recursiondepth', 'renderend',
+            'renderopts', 'renderstart', 'renderstep', 'rendertype', 'restlength',
+            'rgbprefix', 'roughness',
+            'selected', 'setColor', 'setPattern', 'shading', 'shadow', 'shadows',
+            'shadowtype', 'size', 'source', 'special', 'specshade', 'specular',
+            'spotsize', 'start', 'sx', 'sy', 'sz',
+            'target', 'totallayers', 'totalpoints', 'totalpolygons', 'trans', 'transparency',
+            'type',
+            'value', 'view', 'visible', 'visibility',
+            'w', 'width', 'wNorm', 'wPos', 'wXfrm',
+            'x', 'xoffset',
+            'y', 'yoffset',
+            'z'
+            ),
+        4 => array(
+            'addLayer', 'addParticle', 'alphaspot', 'ambient', 'asAsc', 'asBin',
+            'asInt', 'asNum', 'asStr', 'asVec', 'attach', 'axislocks',
+            'backdropColor', 'backdropRay', 'backdropSqueeze', 'bone', 'blurLength',
+            'close', 'color', 'contains', 'copy', 'createKey',
+            'deleteKey', 'detach', 'drawCircle', 'drawLine', 'drawPoint', 'drawText',
+            'drawTriangle',
+            'edit', 'eof', 'event',
+            'firstChannel', 'firstLayer', 'firstSelect', 'focalLength', 'fogColor',
+            'fogMaxAmount', 'fogMaxDist', 'fogMinAmount', 'fogMinDist',
+            'fovAngles', 'fStop', 'firstChild', 'focalDistance',
+            'get', 'getChannelGroup', 'getEnvelope', 'getForward', 'getKeyBias',
+            'getKeyContinuity', 'getKeyCurve', 'getKeyHermite', 'getKeyTension',
+            'getKeyTime', 'getKeyValue', 'getParticle', 'getPivot', 'getPosition',
+            'getRight', 'getRotation', 'getSelect', 'getScaling', 'getTag', 'getTexture',
+            'getUp', 'getValue', 'getWorldPosition', 'getWorldForward', 'getWorldRight',
+            'getWorldRotation', 'getWorldUp', 'globalBlur', 'globalMask', 'globalResolution',
+            'hasCCEnd', 'hasCCStart',
+            'illuminate', 'indexOf', 'isAscii', 'isAlnum', 'isAlpha', 'isBone',
+            'isCamera', 'isChannel', 'isChannelGroup', 'isCntrl', 'isCurve', 'isDigit',
+            'isEnvelope', 'isImage', 'isInt', 'isLight', 'isLower', 'isMapped', 'isMesh',
+            'isNil', 'isNum', 'IsOpen', 'isOriginal', 'isPrint', 'isPunct', 'isScene',
+            'isSpace', 'isStr', 'isUpper', 'isValid', 'isVMap', 'isVec', 'isXDigit',
+            'keyExists',
+            'layer', 'layerName', 'layerVisible', 'limits', 'line', 'linecount', 'load', 'luma',
+            'next', 'nextLayer', 'nextSelect', 'nextChannel', 'nextChild', 'nl',
+            'offset', 'open',
+            'pack', 'param', 'parse', 'paste', 'persist', 'polygonCount', 'position',
+            'rayCast', 'rayTrace', 'read', 'readByte', 'readInt', 'readNumber',
+            'readDouble', 'readShort', 'readString', 'readVector', 'reduce',
+            'remParticle', 'renderCamera', 'reopen', 'replace', 'reset', 'restParam',
+            'rewind', 'rgb', 'rgbambient', 'rgbcolor', 'rgbspot',
+            'save', 'schemaPosition', 'select', 'set', 'setChannelGroup', 'setKeyBias',
+            'setKeyContinuity', 'setKeyCurve',
+            'setKeyHermite', 'setKeyTension', 'setKeyValue', 'setParticle', 'setPoints',
+            'setTag', 'setValue', 'server', 'serverFlags', 'sortA', 'sortD', 'surface',
+            'trunc',
+            'write', 'writeln', 'writeByte', 'writeData', 'writeNumber', 'writeDouble',
+            'writeShort', 'writeString', 'writeVector',
+            'vertex', 'vertexCount',
+            'zoomFactor'
+            ),
+        2 => array(
+            'abs', 'acos', 'angle', 'append', 'ascii', 'asin', 'atan',
+            'binary',
+            'ceil', 'center', 'chdir', 'clearimage', 'cloned', 'comringattach',
+            'comringdecode', 'comringdetach', 'comringencode', 'comringmsg', 'cos',
+            'cosh', 'cot', 'cross2d', 'cross3d', 'csc', 'ctlstring', 'ctlinteger',
+            'ctlnumber', 'ctlvector', 'ctldistance', 'ctlchoice', 'ctltext',
+            'ctlcolor', 'ctlsurface', 'ctlfont', 'ctlpopup', 'ctledit', 'ctlpercent',
+            'ctlangle', 'ctlrgb', 'ctlhsv', 'ctlcheckbox', 'ctlstate', 'ctlfilename',
+            'ctlbutton', 'ctllistbox', 'ctlslider', 'ctlminislider', 'ctlsep', 'ctlimage',
+            'ctltab', 'ctlallitems', 'ctlmeshitems', 'ctlcameraitems', 'ctllightitems',
+            'ctlboneitems', 'ctlimageitems', 'ctlchannel', 'ctlviewport', 'Control_Management',
+            'ctlpage', 'ctlgroup', 'ctlposition', 'ctlactive', 'ctlvisible', 'ctlalign',
+            'ctlrefresh', 'ctlmenu', 'ctlinfo',
+            'date', 'debug', 'deg', 'dot2d', 'dot3d', 'drawborder', 'drawbox', 'drawcircle',
+            'drawelipse', 'drawerase', 'drawfillcircle', 'drawfillelipse', 'drawline',
+            'drawpixel', 'drawtext', 'drawtextwidth', 'drawtextheight', 'dump',
+            'error', 'exp', 'expose', 'extent',
+            'fac', 'filecrc', 'filedelete', 'fileexists', 'filefind', 'filerename',
+            'filestat', 'floor', 'format', 'frac', 'fullpath',
+            'gamma', 'getdir', 'getenv', 'getfile', 'getfirstitem', 'getsep', 'getvalue',
+            'globalrecall', 'globalstore',
+            'hash', 'hex', 'hostBuild', 'hostVersion', 'hypot',
+            'info', 'integer',
+            'library', 'licenseId', 'lscriptVersion', 'load', 'loadimage', 'log', 'log10',
+            'matchdirs', 'matchfiles', 'max', 'min', 'mkdir', 'mod', 'monend', 'moninit', 'monstep',
+            'nil', 'normalize', 'number',
+            'octal', 'overlayglyph',
+            'parse', 'platform', 'pow',
+            'rad', 'random', 'randu', 'range', 'read', 'readdouble', 'readInt', 'readNumber',
+            'readShort', 'recall', 'regexp', 'reqabort', 'reqbegin', 'reqend', 'reqisopen',
+            'reqkeyboard', 'reqopen', 'reqposition', 'reqpost', 'reqredraw',
+            'reqsize', 'reqresize', 'requpdate', 'rmdir', 'round', 'runningUnder',
+            'save', 'sec', 'select', 'selector', 'setdesc', 'setvalue', 'sin', 'sinh', 'size',
+            'sizeof', 'sleep', 'spawn', 'split', 'sqrt', 'step', 'store', 'string', 'strleft',
+            'strlower', 'strright', 'strsub', 'strupper',
+            'tan', 'tanh', 'targetobject', 'terminate', 'text', 'time',
+            'wait', 'warn', 'when', 'write', 'writeDouble', 'writeInt', 'writeNumber', 'writeShort',
+            'var', 'vector', 'visitnodes', 'vmag',
+            ),
+        5 => array(
+            'addcurve', 'addpoint', 'addpolygon', 'addquad', 'addtriangle', 'alignpols',
+            'autoflex', 'axisdrill',
+            'bend', 'bevel', 'boolean', 'boundingbox',
+            'changepart', 'changesurface', 'close', 'closeall', 'cmdseq', 'copy', 'copysurface',
+            'createsurface', 'cut',
+            'deformregion', 'delete',
+            'editbegin', 'editend', 'exit', 'extrude',
+            'fixedflex', 'flip', 'fontclear', 'fontcount', 'fontindex', 'fontload',
+            'fontname', 'fracsubdivide', 'freezecurves',
+            'getdefaultsurface',
+            'jitter',
+            'lathe', 'layerName', 'layerVisible', 'lyrbg', 'lyrdata', 'lyrempty', 'lyremptybg',
+            'lyremptyfg', 'lyrfg', 'lyrsetbg', 'lyrsetfg', 'lyrswap',
+            'magnet', 'make4patch', 'makeball', 'makebox', 'makecone', 'makedisc',
+            'maketesball', 'maketext', 'mergepoints', 'mergepols', 'meshedit', 'mirror',
+            'morphpols', 'move',
+            'new', 'nextsurface',
+            'paste', 'pathclone', 'pathextrude', 'pixel', 'pointcount', 'pointinfo',
+            'pointmove', 'pole', 'polycount', 'polyinfo', 'polynormal', 'polypointcount',
+            'polypoints', 'polysurface',
+            'quantize',
+            'railclone', 'railextrude', 'redo', 'removepols', 'rempoint', 'rempoly',
+            'renamesurface', 'revert', 'rotate',
+            'scale', 'selhide', 'selinvert', 'selmode', 'selpoint', 'selpolygon', 'selunhide',
+            'selectvmap', 'setlayername', 'setobject', 'setpivot', 'setsurface', 'shapebevel',
+            'shear', 'skinpols', 'smooth', 'smoothcurves', 'smoothscale', 'smoothshift',
+            'soliddrill', 'splitpols', 'subdivide', 'swaphidden',
+            'taper', 'triple', 'toggleCCend', 'toggleCCstart', 'togglepatches', 'twist',
+            'undo', 'undogroupend', 'undogroupbegin', 'unifypols', 'unweld',
+            'vortex',
+            'weldaverage', 'weldpoints'
+            ),
+        6 => array(
+            'About', 'AboutOpenGL', 'AdaptiveSampling', 'AdaptiveThreshold',
+            'AddAreaLight', 'AddBone', 'AddButton', 'AddCamera', 'AddChildBone',
+            'AddDistantLight', 'AddEnvelope', 'AddLinearLight', 'AddNull',
+            'AddPartigon', 'AddPlugins', 'AddPointLight', 'AddPosition',
+            'AddRotation', 'AddScale', 'AddSpotlight', 'AddToSelection',
+            'AdjustRegionTool', 'AffectCaustics', 'AffectDiffuse', 'AffectOpenGL',
+            'AffectSpecular', 'AlertLevel', 'AmbientColor', 'AmbientIntensity',
+            'Antialiasing', 'ApertureHeight', 'ApplyServer', 'AreaLight',
+            'AutoConfirm', 'AutoFrameAdvance', 'AutoKey',
+            'BackdropColor', 'BackView', 'BController', 'BLimits', 'BLurLength', 'BoneActive',
+            'BoneFalloffType', 'BoneJointComp', 'BoneJointCompAmounts', 'BoneJointCompParent',
+            'BoneLimitedRange', 'BoneMaxRange', 'BoneMinRange', 'BoneMuscleFlex',
+            'BoneMuscleFlexAmounts', 'BoneMuscleFlexParent', 'BoneNormalization',
+            'BoneRestLength', 'BoneRestPosition', 'BoneRestRotation', 'BoneSource',
+            'BoneStrength', 'BoneStrengthMultiply', 'BoneWeightMapName', 'BoneWeightMapOnly',
+            'BoneWeightShade', 'BoneXRay', 'BottomView', 'BoundingBoxThreshold',
+            'BStiffness',
+            'CacheCaustics', 'CacheRadiosity', 'CacheShadowMap',
+            'CameraMask', 'CameraView', 'CameraZoomTool', 'CastShadow', 'CausticIntensity',
+            'CenterItem', 'CenterMouse', 'ChangeTool', 'ClearAllBones', 'ClearAllCameras',
+            'ClearAllLights', 'ClearAllObjects', 'ClearAudio', 'ClearScene', 'ClearSelected',
+            'Clone', 'CommandHistory', 'CommandInput', 'Compositing', 'ConeAngleTool',
+            'ContentDirectory', 'CreateKey',
+            'DecreaseGrid', 'DeleteKey', 'DepthBufferAA', 'DepthOfField', 'DisplayOptions',
+            'DistantLight', 'DrawAntialiasing', 'DrawBones', 'DrawChildBones', 'DynamicUpdate',
+            'EditBones', 'EditCameras', 'EditKeys', 'EditLights',
+            'EditMenus', 'EditObjects', 'EditPlugins', 'EditServer', 'EnableCaustics',
+            'EnableDeformations', 'EnableIK', 'EnableLensFlares', 'EnableRadiosity', 'EnableServer',
+            'EnableShadowMaps', 'EnableVIPER', 'EnableVolumetricLights', 'EnableXH',
+            'EnableYP', 'EnableZB', 'EnahancedAA', 'ExcludeLight', 'ExcludeObject',
+            'EyeSeparation',
+            'FasterBones', 'FirstFrame', 'FirstItem', 'FitAll', 'FitSelected',
+            'FlareIntensity', 'FlareOptions', 'FocalDistance', 'FogColor', 'FogMaxAmount',
+            'FogMaxDistance', 'FogMinAmount', 'FogMinDistance', 'FogType', 'FractionalFrames',
+            'FrameSize', 'FramesPerSecond', 'FrameStep', 'FreePreview', 'FrontView', 'FullTimeIK',
+            'GeneralOptions', 'Generics', 'GlobalApertureHeight', 'GlobalBlurLength',
+            'GlobalFrameSize', 'GlobalIllumination', 'GlobalMaskPosition', 'GlobalMotionBlur',
+            'GlobalParticleBlur', 'GlobalPixelAspect', 'GlobalResolutionMulitplier', 'GoalItem',
+            'GoalStrength', 'GoToFrame', 'GradientBackdrop', 'GraphEditor', 'GridSize', 'GroundColor',
+            'HController', 'HideToolbar', 'HideWindows', 'HLimits', 'HStiffness',
+            'ImageEditor', 'ImageProcessing', 'IncludeLight', 'IncludeObject', 'IncreaseGrid',
+            'IndirectBounces', 'Item_SetWindowPos', 'ItemActive', 'ItemColor', 'ItemLock',
+            'ItemProperties', 'ItemVisibilty',
+            'KeepGoalWithinReach',
+            'LastFrame', 'LastItem', 'LastPluginInterface', 'Layout_SetWindowPos',
+            'Layout_SetWindowSize', 'LeftView', 'LensFlare', 'LensFStop', 'LightColor',
+            'LightConeAngle', 'LightEdgeAngle', 'LightFalloffType', 'LightIntensity',
+            'LightIntensityTool', 'LightQuality', 'LightRange', 'LightView', 'LimitB',
+            'LimitDynamicRange', 'LimitedRegion', 'LimitH', 'LimitP', 'LinearLight',
+            'LoadAudio', 'LoadFromScene', 'LoadMotion', 'LoadObject', 'LoadObjectLayer',
+            'LoadPreview', 'LoadScene', 'LocalCoordinateSystem',
+            'MakePreview', 'MaskColor', 'MaskPosition', 'MasterPlugins', 'MatchGoalOrientation',
+            'MatteColor', 'MatteObject', 'MetaballResolution', 'Model', 'MorphAmount',
+            'MorphAmountTool', 'MorphMTSE', 'MorphSurfaces', 'MorphTarget', 'MotionBlur',
+            'MotionBlurDOFPreview', 'MotionOptions', 'MovePathTool', 'MovePivotTool', 'MoveTool',
+            'NadirColor', 'NetRender', 'NextFrame', 'NextItem', 'NextKey', 'NextSibling',
+            'NextViewLayout', 'NoiseReduction', 'Numeric',
+            'ObjectDissolve',
+            'ParentCoordinateSystem', 'ParentInPlace', 'ParentItem',
+            'ParticleBlur', 'PathAlignLookAhead', 'PathAlignMaxLookSteps', 'PathAlignReliableDist',
+            'Pause', 'PController', 'PerspectiveView',
+            'PivotPosition', 'PivotRotation', 'PixelAspect', 'PlayAudio', 'PlayBackward',
+            'PlayForward', 'PlayPreview', 'PLimits', 'PointLight', 'PolygonEdgeColor',
+            'PolygonEdgeFlags', 'PolygonEdgeThickness', 'PolygonEdgeZScale', 'PolygonSize',
+            'Position', 'Presets', 'PreviewFirstFrame', 'PreviewFrameStep', 'PreviewLastFrame',
+            'PreviewOptions', 'PreviousFrame', 'PreviousItem', 'PreviousKey', 'PreviousSibling',
+            'PreviousViewLayout', 'PStiffness',
+            'Quit',
+            'RadiosityIntensity', 'RadiosityTolerance', 'RadiosityType', 'RayRecursionLimit',
+            'RayTraceReflection', 'RayTraceShadows',
+            'RayTraceTransparency', 'ReceiveShadow', 'RecentContentDirs', 'RecentScenes',
+            'ReconstructionFilter', 'RecordMaxAngles', 'RecordMinAngles', 'RecordPivotRotation',
+            'RecordRestPosition', 'Redraw', 'RedrawNow', 'Refresh', 'RefreshNow', 'RegionPosition',
+            'RemoveEnvelope', 'RemoveFromSelection', 'RemoveServer', 'Rename', 'RenderFrame',
+            'RenderOptions', 'RenderScene', 'RenderSelected', 'RenderThreads',
+            'ReplaceObjectLayer', 'ReplaceWithNull', 'ReplaceWithObject', 'Reset',
+            'ResolutionMultiplier', 'RestLengthTool', 'RightView', 'RotatePivotTool',
+            'RotateTool', 'Rotation',
+            'SaveAllObjects', 'SaveCommandList', 'SaveCommandMessages',
+            'SaveEndomorph', 'SaveLight', 'SaveLWSC1', 'SaveMotion', 'SaveObject', 'SaveObjectCopy',
+            'SavePreview', 'SaveScene', 'SaveSceneAs', 'SaveSceneCopy', 'SaveTransformed',
+            'SaveViewLayout', 'Scale', 'Scene_SetWindowPos', 'Scene_SetWindowSize',
+            'SceneEditor', 'SchematicPosition', 'SchematicView', 'SelectAllBones',
+            'SelectAllCameras', 'SelectAllLights', 'SelectAllObjects', 'SelectByName',
+            'SelectChild', 'SelectItem', 'SelectParent', 'SelfShadow', 'ShadowColor',
+            'ShadowExclusion', 'ShadowMapAngle', 'ShadowMapFitCone', 'ShadowMapFuzziness',
+            'ShadowMapSize', 'ShadowType', 'ShowCages', 'ShowFieldChart', 'ShowHandles',
+            'ShowIKChains', 'ShowMotionPaths', 'ShowSafeAreas', 'ShowTargetLines',
+            'ShrinkEdgesWithDistance', 'SingleView', 'SizeTool', 'SkelegonsToBones', 'SkyColor',
+            'Spotlight', 'SquashTool', 'Statistics', 'StatusMsg', 'Stereoscopic', 'StretchTool',
+            'SubdivisionOrder', 'SubPatchLevel', 'SurfaceEditor', 'Synchronize',
+            'TargetItem', 'TopView',
+            'UnaffectedByFog', 'UnaffectedByIK', 'Undo', 'UnseenByAlphaChannel', 'UnseenByCamera',
+            'UnseenByRays', 'UseGlobalResolution', 'UseGlobalBlur', 'UseGlobalMask',
+            'UseMorphedPositions',
+            'ViewLayout', 'VIPER', 'VolumetricLighting',
+            'VolumetricLightingOptions', 'VolumetricRadiosity', 'Volumetrics',
+            'WorldCoordinateSystem',
+            'XYView', 'XZView',
+            'ZenithColor', 'ZoomFactor', 'ZoomIn', 'ZoomInX2', 'ZoomOut', 'ZoomOutX2', 'ZYView',
+            'Camera', 'Channel', 'ChannelGroup', 'Envelope', 'File', 'Glyph', 'Icon', 'Image',
+            'Light', 'Mesh', 'Scene', 'Surface', 'VMap'
+            ),
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '{', '}', '[', ']', '=', '<', '>', '+', '-', '*', '/', '!', '%', '&', '@'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false,
+        7 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000000; font-weight: bold;',
+            2 => 'color: #FF6820; font-weight: bold;', //LS_COMMANDS
+            3 => 'color: #007F7F; font-weight: bold;', //LS_MEMBERS
+            4 => 'color: #800080; font-weight: bold;', //LS_METHODS
+            5 => 'color: #51BD95; font-weight: bold;', //LS_MODELER
+            6 => 'color: #416F85; font-weight: bold;', //LS_GENERAL
+            7 => 'color: #C92929; font-weight: bold;'  //LS_COMMANDS (cont)
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #7F7F7F;',
+            'MULTI' => 'color: #7F7F7F;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #0040A0;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #00C800;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #6953AC;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #0040A0;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'ESCAPE_CHAR' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            3 => array(
+                'DISALLOWED_BEFORE' => '(?<=\.)'
+                ),
+            4 => array(
+                'DISALLOWED_BEFORE' => '(?<=\.)'
+                )
+            )
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/lsl2.php b/inc/geshi/lsl2.php
new file mode 100644
index 0000000000000000000000000000000000000000..27c558038d0a3f0eff1d4ca462abeade5c79bea6
--- /dev/null
+++ b/inc/geshi/lsl2.php
@@ -0,0 +1,898 @@
+<?php
+/*************************************************************************************
+ * lsl2.php
+ * --------
+ * Author: William Fry (william.fry@nyu.edu)
+ * Copyright: (c) 2009 William Fry
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/02/04
+ *
+ * Linden Scripting Language (LSL2) language file for GeSHi.
+ *
+ *   Data derived and validated against the following:
+ *      http://wiki.secondlife.com/wiki/LSL_Portal
+ *      http://www.lslwiki.net/lslwiki/wakka.php?wakka=HomePage
+ *      http://rpgstats.com/wiki/index.php?title=Main_Page
+ *
+ * CHANGES
+ * -------
+ * 2009/02/05 (1.0.0)
+ *   -  First Release
+ *
+ * TODO (updated 2009/02/05)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'LSL2',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array( // flow control
+            'do',
+            'else',
+            'for',
+            'if',
+            'jump',
+            'return',
+            'state',
+            'while',
+            ),
+        2 => array( // manifest constants
+            'ACTIVE',
+            'AGENT',
+            'AGENT_ALWAYS_RUN',
+            'AGENT_ATTACHMENTS',
+            'AGENT_AWAY',
+            'AGENT_BUSY',
+            'AGENT_CROUCHING',
+            'AGENT_FLYING',
+            'AGENT_IN_AIR',
+            'AGENT_MOUSELOOK',
+            'AGENT_ON_OBJECT',
+            'AGENT_SCRIPTED',
+            'AGENT_SITTING',
+            'AGENT_TYPING',
+            'AGENT_WALKING',
+            'ALL_SIDES',
+            'ANIM_ON',
+            'ATTACH_BACK',
+            'ATTACH_BELLY',
+            'ATTACH_CHEST',
+            'ATTACH_CHIN',
+            'ATTACH_HEAD',
+            'ATTACH_HUD_BOTTOM',
+            'ATTACH_HUD_BOTTOM_LEFT',
+            'ATTACH_HUD_BOTTOM_RIGHT',
+            'ATTACH_HUD_CENTER_1',
+            'ATTACH_HUD_CENTER_2',
+            'ATTACH_HUD_TOP_CENTER',
+            'ATTACH_HUD_TOP_LEFT',
+            'ATTACH_HUD_TOP_RIGHT',
+            'ATTACH_LEAR',
+            'ATTACH_LEYE',
+            'ATTACH_LFOOT',
+            'ATTACH_LHAND',
+            'ATTACH_LHIP',
+            'ATTACH_LLARM',
+            'ATTACH_LLLEG',
+            'ATTACH_LPEC',
+            'ATTACH_LSHOULDER',
+            'ATTACH_LUARM',
+            'ATTACH_LULEG',
+            'ATTACH_MOUTH',
+            'ATTACH_NOSE',
+            'ATTACH_PELVIS',
+            'ATTACH_REAR',
+            'ATTACH_REYE',
+            'ATTACH_RFOOT',
+            'ATTACH_RHAND',
+            'ATTACH_RHIP',
+            'ATTACH_RLARM',
+            'ATTACH_RLLEG',
+            'ATTACH_RPEC',
+            'ATTACH_RSHOULDER',
+            'ATTACH_RUARM',
+            'ATTACH_RULEG',
+            'CAMERA_ACTIVE',
+            'CAMERA_BEHINDNESS_ANGLE',
+            'CAMERA_BEHINDNESS_LAG',
+            'CAMERA_DISTANCE',
+            'CAMERA_FOCUS',
+            'CAMERA_FOCUS_LAG',
+            'CAMERA_FOCUS_LOCKED',
+            'CAMERA_FOCUS_OFFSET',
+            'CAMERA_FOCUS_THRESHOLD',
+            'CAMERA_PITCH',
+            'CAMERA_POSITION',
+            'CAMERA_POSITION_LAG',
+            'CAMERA_POSITION_LOCKED',
+            'CAMERA_POSITION_THRESHOLD',
+            'CHANGED_ALLOWED_DROP',
+            'CHANGED_COLOR',
+            'CHANGED_INVENTORY',
+            'CHANGED_LINK',
+            'CHANGED_OWNER',
+            'CHANGED_REGION',
+            'CHANGED_SCALE',
+            'CHANGED_SHAPE',
+            'CHANGED_TELEPORT',
+            'CHANGED_TEXTURE',
+            'CLICK_ACTION_NONE',
+            'CLICK_ACTION_OPEN',
+            'CLICK_ACTION_OPEN_MEDIA',
+            'CLICK_ACTION_PAY',
+            'CLICK_ACTION_SIT',
+            'CLICK_ACTION_TOUCH',
+            'CONTROL_BACK',
+            'CONTROL_DOWN',
+            'CONTROL_FWD',
+            'CONTROL_LBUTTON',
+            'CONTROL_LEFT',
+            'CONTROL_ML_LBUTTON',
+            'CONTROL_RIGHT',
+            'CONTROL_ROT_LEFT',
+            'CONTROL_ROT_RIGHT',
+            'CONTROL_UP',
+            'DATA_BORN',
+            'DATA_NAME',
+            'DATA_ONLINE',
+            'DATA_PAYINFO',
+            'DATA_RATING',
+            'DATA_SIM_POS',
+            'DATA_SIM_RATING',
+            'DATA_SIM_STATUS',
+            'DEBUG_CHANNEL',
+            'DEG_TO_RAD',
+            'EOF',
+            'FALSE',
+            'HTTP_BODY_MAXLENGTH',
+            'HTTP_BODY_TRUNCATED',
+            'HTTP_METHOD',
+            'HTTP_MIMETYPE',
+            'HTTP_VERIFY_CERT',
+            'INVENTORY_ALL',
+            'INVENTORY_ANIMATION',
+            'INVENTORY_BODYPART',
+            'INVENTORY_CLOTHING',
+            'INVENTORY_GESTURE',
+            'INVENTORY_LANDMARK',
+            'INVENTORY_NONE',
+            'INVENTORY_NOTECARD',
+            'INVENTORY_OBJECT',
+            'INVENTORY_SCRIPT',
+            'INVENTORY_SOUND',
+            'INVENTORY_TEXTURE',
+            'LAND_LEVEL',
+            'LAND_LOWER',
+            'LAND_NOISE',
+            'LAND_RAISE',
+            'LAND_REVERT',
+            'LAND_SMOOTH',
+            'LINK_ALL_CHILDREN',
+            'LINK_ALL_OTHERS',
+            'LINK_ROOT',
+            'LINK_SET',
+            'LINK_THIS',
+            'LIST_STAT_GEOMETRIC_MEAN',
+            'LIST_STAT_MAX',
+            'LIST_STAT_MEAN',
+            'LIST_STAT_MEDIAN',
+            'LIST_STAT_MIN',
+            'LIST_STAT_NUM_COUNT',
+            'LIST_STAT_RANGE',
+            'LIST_STAT_STD_DEV',
+            'LIST_STAT_SUM',
+            'LIST_STAT_SUM_SQUARES',
+            'LOOP',
+            'MASK_BASE',
+            'MASK_EVERYONE',
+            'MASK_GROUP',
+            'MASK_NEXT',
+            'MASK_OWNER',
+            'NULL_KEY',
+            'OBJECT_CREATOR',
+            'OBJECT_DESC',
+            'OBJECT_GROUP',
+            'OBJECT_NAME',
+            'OBJECT_OWNER',
+            'OBJECT_POS',
+            'OBJECT_ROT',
+            'OBJECT_UNKNOWN_DETAIL',
+            'OBJECT_VELOCITY',
+            'PARCEL_DETAILS_AREA',
+            'PARCEL_DETAILS_DESC',
+            'PARCEL_DETAILS_GROUP',
+            'PARCEL_DETAILS_NAME',
+            'PARCEL_DETAILS_OWNER',
+            'PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY',
+            'PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS',
+            'PARCEL_FLAG_ALLOW_CREATE_OBJECTS',
+            'PARCEL_FLAG_ALLOW_DAMAGE',
+            'PARCEL_FLAG_ALLOW_FLY',
+            'PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY',
+            'PARCEL_FLAG_ALLOW_GROUP_SCRIPTS',
+            'PARCEL_FLAG_ALLOW_LANDMARK',
+            'PARCEL_FLAG_ALLOW_SCRIPTS',
+            'PARCEL_FLAG_ALLOW_TERRAFORM',
+            'PARCEL_FLAG_LOCAL_SOUND_ONLY',
+            'PARCEL_FLAG_RESTRICT_PUSHOBJECT',
+            'PARCEL_FLAG_USE_ACCESS_GROUP',
+            'PARCEL_FLAG_USE_ACCESS_LIST',
+            'PARCEL_FLAG_USE_BAN_LIST',
+            'PARCEL_FLAG_USE_LAND_PASS_LIST',
+            'PARCEL_MEDIA_COMMAND_AGENT',
+            'PARCEL_MEDIA_COMMAND_AUTO_ALIGN',
+            'PARCEL_MEDIA_COMMAND_DESC',
+            'PARCEL_MEDIA_COMMAND_LOOP_SET',
+            'PARCEL_MEDIA_COMMAND_PAUSE',
+            'PARCEL_MEDIA_COMMAND_PLAY',
+            'PARCEL_MEDIA_COMMAND_SIZE',
+            'PARCEL_MEDIA_COMMAND_STOP',
+            'PARCEL_MEDIA_COMMAND_TEXTURE',
+            'PARCEL_MEDIA_COMMAND_TIME',
+            'PARCEL_MEDIA_COMMAND_TYPE',
+            'PARCEL_MEDIA_COMMAND_URL',
+            'PASSIVE',
+            'PAYMENT_INFO_ON_FILE',
+            'PAYMENT_INFO_USED',
+            'PAY_DEFAULT',
+            'PAY_HIDE',
+            'PERMISSION_ATTACH',
+            'PERMISSION_CHANGE_LINKS',
+            'PERMISSION_CONTROL_CAMERA',
+            'PERMISSION_DEBIT',
+            'PERMISSION_TAKE_CONTROLS',
+            'PERMISSION_TRACK_CAMERA',
+            'PERMISSION_TRIGGER_ANIMATION',
+            'PERM_ALL',
+            'PERM_COPY',
+            'PERM_MODIFY',
+            'PERM_MOVE',
+            'PERM_TRANSFER',
+            'PI',
+            'PI_BY_TWO',
+            'PRIM_BUMP_BARK',
+            'PRIM_BUMP_BLOBS',
+            'PRIM_BUMP_BRICKS',
+            'PRIM_BUMP_BRIGHT',
+            'PRIM_BUMP_CHECKER',
+            'PRIM_BUMP_CONCRETE',
+            'PRIM_BUMP_DARK',
+            'PRIM_BUMP_DISKS',
+            'PRIM_BUMP_GRAVEL',
+            'PRIM_BUMP_LARGETILE',
+            'PRIM_BUMP_NONE',
+            'PRIM_BUMP_SHINY',
+            'PRIM_BUMP_SIDING',
+            'PRIM_BUMP_STONE',
+            'PRIM_BUMP_STUCCO',
+            'PRIM_BUMP_SUCTION',
+            'PRIM_BUMP_TILE',
+            'PRIM_BUMP_WEAVE',
+            'PRIM_BUMP_WOOD',
+            'PRIM_COLOR',
+            'PRIM_FULLBRIGHT',
+            'PRIM_HOLE_CIRCLE',
+            'PRIM_HOLE_DEFAULT',
+            'PRIM_HOLE_SQUARE',
+            'PRIM_HOLE_TRIANGLE',
+            'PRIM_MATERIAL',
+            'PRIM_MATERIAL_FLESH',
+            'PRIM_MATERIAL_GLASS',
+            'PRIM_MATERIAL_LIGHT',
+            'PRIM_MATERIAL_METAL',
+            'PRIM_MATERIAL_PLASTIC',
+            'PRIM_MATERIAL_RUBBER',
+            'PRIM_MATERIAL_STONE',
+            'PRIM_MATERIAL_WOOD',
+            'PRIM_PHANTOM',
+            'PRIM_PHYSICS',
+            'PRIM_POSITION',
+            'PRIM_ROTATION',
+            'PRIM_SHINY_HIGH',
+            'PRIM_SHINY_LOW',
+            'PRIM_SHINY_MEDIUM',
+            'PRIM_SHINY_NONE',
+            'PRIM_SIZE',
+            'PRIM_TEMP_ON_REZ',
+            'PRIM_TEXTURE',
+            'PRIM_TYPE',
+            'PRIM_TYPE_BOX',
+            'PRIM_TYPE_CYLINDER',
+            'PRIM_TYPE_PRISM',
+            'PRIM_TYPE_RING',
+            'PRIM_TYPE_SPHERE',
+            'PRIM_TYPE_TORUS',
+            'PRIM_TYPE_TUBE',
+            'PSYS_PART_BOUNCE_MASK',
+            'PSYS_PART_EMISSIVE_MASK',
+            'PSYS_PART_END_ALPHA',
+            'PSYS_PART_END_COLOR',
+            'PSYS_PART_END_SCALE',
+            'PSYS_PART_FLAGS',
+            'PSYS_PART_FOLLOW_SRC_MASK',
+            'PSYS_PART_FOLLOW_VELOCITY_MASK',
+            'PSYS_PART_INTERP_COLOR_MASK',
+            'PSYS_PART_INTERP_SCALE_MASK',
+            'PSYS_PART_MAX_AGE',
+            'PSYS_PART_START_ALPHA',
+            'PSYS_PART_START_COLOR',
+            'PSYS_PART_START_SCALE',
+            'PSYS_PART_TARGET_LINEAR_MASK',
+            'PSYS_PART_TARGET_POS_MASK',
+            'PSYS_PART_WIND_MASK',
+            'PSYS_SRC_ACCEL',
+            'PSYS_SRC_ANGLE_BEGIN',
+            'PSYS_SRC_ANGLE_END',
+            'PSYS_SRC_BURST_PART_COUNT',
+            'PSYS_SRC_BURST_RADIUS',
+            'PSYS_SRC_BURST_RATE',
+            'PSYS_SRC_BURST_SPEED_MAX',
+            'PSYS_SRC_BURST_SPEED_MIN',
+            'PSYS_SRC_INNERANGLE',
+            'PSYS_SRC_MAX_AGE',
+            'PSYS_SRC_OMEGA',
+            'PSYS_SRC_OUTERANGLE',
+            'PSYS_SRC_PATTERN',
+            'PSYS_SRC_PATTERN_ANGLE',
+            'PSYS_SRC_PATTERN_ANGLE_CONE',
+            'PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY',
+            'PSYS_SRC_PATTERN_DROP',
+            'PSYS_SRC_PATTERN_EXPLODE',
+            'PSYS_SRC_TARGET_KEY',
+            'PSYS_SRC_TEXTURE',
+            'RAD_TO_DEG',
+            'REMOTE_DATA_CHANNEL',
+            'REMOTE_DATA_REQUEST',
+            'SCRIPTED',
+            'SQRT2',
+            'STATUS_BLOCK_GRAB',
+            'STATUS_DIE_AT_EDGE',
+            'STATUS_PHANTOM',
+            'STATUS_PHYSICS',
+            'STATUS_RETURN_AT_EDGE',
+            'STATUS_ROTATE_X',
+            'STATUS_ROTATE_Y',
+            'STATUS_ROTATE_Z',
+            'STATUS_SANDBOX',
+            'TRUE',
+            'TWO_PI',
+            'VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY',
+            'VEHICLE_ANGULAR_DEFLECTION_TIMESCALE',
+            'VEHICLE_ANGULAR_FRICTION_TIMESCALE',
+            'VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE',
+            'VEHICLE_ANGULAR_MOTOR_DIRECTION',
+            'VEHICLE_ANGULAR_MOTOR_TIMESCALE',
+            'VEHICLE_BANKING_EFFICIENCY',
+            'VEHICLE_BANKING_MIX',
+            'VEHICLE_BANKING_TIMESCALE',
+            'VEHICLE_BUOYANCY',
+            'VEHICLE_FLAG_CAMERA_DECOUPLED',
+            'VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT',
+            'VEHICLE_FLAG_HOVER_TERRAIN_ONLY',
+            'VEHICLE_FLAG_HOVER_UP_ONLY',
+            'VEHICLE_FLAG_HOVER_WATER_ONLY',
+            'VEHICLE_FLAG_LIMIT_MOTOR_UP',
+            'VEHICLE_FLAG_LIMIT_ROLL_ONLY',
+            'VEHICLE_FLAG_MOUSELOOK_BANK',
+            'VEHICLE_FLAG_MOUSELOOK_STEER',
+            'VEHICLE_FLAG_NO_DEFLECTION_UP',
+            'VEHICLE_HOVER_EFFICIENCY',
+            'VEHICLE_HOVER_HEIGHT',
+            'VEHICLE_HOVER_TIMESCALE',
+            'VEHICLE_LINEAR_DEFLECTION_EFFICIENCY',
+            'VEHICLE_LINEAR_DEFLECTION_TIMESCALE',
+            'VEHICLE_LINEAR_FRICTION_TIMESCALE',
+            'VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE',
+            'VEHICLE_LINEAR_MOTOR_DIRECTION',
+            'VEHICLE_LINEAR_MOTOR_OFFSET',
+            'VEHICLE_LINEAR_MOTOR_TIMESCALE',
+            'VEHICLE_REFERENCE_FRAME',
+            'VEHICLE_TYPE_AIRPLANE',
+            'VEHICLE_TYPE_BALLOON',
+            'VEHICLE_TYPE_BOAT',
+            'VEHICLE_TYPE_CAR',
+            'VEHICLE_TYPE_NONE',
+            'VEHICLE_TYPE_SLED',
+            'VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY',
+            'VEHICLE_VERTICAL_ATTRACTION_TIMESCALE',
+            'ZERO_ROTATION',
+            'ZERO_VECTOR',
+            ),
+        3 => array( // handlers
+            'at_rot_target',
+            'at_target',
+            'attached',
+            'changed',
+            'collision',
+            'collision_end',
+            'collision_start',
+            'control',
+            'dataserver',
+            'email',
+            'http_response',
+            'land_collision',
+            'land_collision_end',
+            'land_collision_start',
+            'link_message',
+            'listen',
+            'money',
+            'moving_end',
+            'moving_start',
+            'no_sensor',
+            'not_at_rot_target',
+            'not_at_target',
+            'object_rez',
+            'on_rez',
+            'remote_data',
+            'run_time_permissions',
+            'sensor',
+            'state_entry',
+            'state_exit',
+            'timer',
+            'touch',
+            'touch_end',
+            'touch_start',
+            ),
+        4 => array( // data types
+            'float',
+            'integer',
+            'key',
+            'list',
+            'rotation',
+            'string',
+            'vector',
+            ),
+        5 => array( // library
+            'default',
+            'llAbs',
+            'llAcos',
+            'llAddToLandBanList',
+            'llAddToLandPassList',
+            'llAdjustSoundVolume',
+            'llAllowInventoryDrop',
+            'llAngleBetween',
+            'llApplyImpulse',
+            'llApplyRotationalImpulse',
+            'llAsin',
+            'llAtan2',
+            'llAttachToAvatar',
+            'llAvatarOnSitTarget',
+            'llAxes2Rot',
+            'llAxisAngle2Rot',
+            'llBase64ToInteger',
+            'llBase64ToString',
+            'llBreakAllLinks',
+            'llBreakLink',
+            'llCeil',
+            'llClearCameraParams',
+            'llCloseRemoteDataChannel',
+            'llCloud',
+            'llCollisionFilter',
+            'llCollisionSound',
+            'llCollisionSprite',
+            'llCos',
+            'llCreateLink',
+            'llCSV2List',
+            'llDeleteSubList',
+            'llDeleteSubString',
+            'llDetachFromAvatar',
+            'llDetectedGrab',
+            'llDetectedGroup',
+            'llDetectedKey',
+            'llDetectedLinkNumber',
+            'llDetectedName',
+            'llDetectedOwner',
+            'llDetectedPos',
+            'llDetectedRot',
+            'llDetectedTouchBinormal',
+            'llDetectedTouchFace',
+            'llDetectedTouchNormal',
+            'llDetectedTouchPos',
+            'llDetectedTouchST',
+            'llDetectedTouchUV',
+            'llDetectedType',
+            'llDetectedVel',
+            'llDialog',
+            'llDie',
+            'llDumpList2String',
+            'llEdgeOfWorld',
+            'llEjectFromLand',
+            'llEmail',
+            'llEscapeURL',
+            'llEuler2Rot',
+            'llFabs',
+            'llFloor',
+            'llForceMouselook',
+            'llFrand',
+            'llGetAccel',
+            'llGetAgentInfo',
+            'llGetAgentLanguage',
+            'llGetAgentSize',
+            'llGetAlpha',
+            'llGetAndResetTime',
+            'llGetAnimation',
+            'llGetAnimationList',
+            'llGetAttached',
+            'llGetBoundingBox',
+            'llGetCameraPos',
+            'llGetCameraRot',
+            'llGetCenterOfMass',
+            'llGetColor',
+            'llGetCreator',
+            'llGetDate',
+            'llGetEnergy',
+            'llGetForce',
+            'llGetFreeMemory',
+            'llGetGeometricCenter',
+            'llGetGMTclock',
+            'llGetInventoryCreator',
+            'llGetInventoryKey',
+            'llGetInventoryName',
+            'llGetInventoryNumber',
+            'llGetInventoryPermMask',
+            'llGetInventoryType',
+            'llGetKey',
+            'llGetLandOwnerAt',
+            'llGetLinkKey',
+            'llGetLinkName',
+            'llGetLinkNumber',
+            'llGetListEntryType',
+            'llGetListLength',
+            'llGetLocalPos',
+            'llGetLocalRot',
+            'llGetMass',
+            'llGetNextEmail',
+            'llGetNotecardLine',
+            'llGetNumberOfNotecardLines',
+            'llGetNumberOfPrims',
+            'llGetNumberOfSides',
+            'llGetObjectDesc',
+            'llGetObjectDetails',
+            'llGetObjectMass',
+            'llGetObjectName',
+            'llGetObjectPermMask',
+            'llGetObjectPrimCount',
+            'llGetOmega',
+            'llGetOwner',
+            'llGetOwnerKey',
+            'llGetParcelDetails',
+            'llGetParcelFlags',
+            'llGetParcelMaxPrims',
+            'llGetParcelPrimCount',
+            'llGetParcelPrimOwners',
+            'llGetPermissions',
+            'llGetPermissionsKey',
+            'llGetPos',
+            'llGetPrimitiveParams',
+            'llGetRegionAgentCount',
+            'llGetRegionCorner',
+            'llGetRegionFlags',
+            'llGetRegionFPS',
+            'llGetRegionName',
+            'llGetRegionTimeDilation',
+            'llGetRootPosition',
+            'llGetRootRotation',
+            'llGetRot',
+            'llGetScale',
+            'llGetScriptName',
+            'llGetScriptState',
+            'llGetSimulatorHostname',
+            'llGetStartParameter',
+            'llGetStatus',
+            'llGetSubString',
+            'llGetSunDirection',
+            'llGetTexture',
+            'llGetTextureOffset',
+            'llGetTextureRot',
+            'llGetTextureScale',
+            'llGetTime',
+            'llGetTimeOfDay',
+            'llGetTimestamp',
+            'llGetTorque',
+            'llGetUnixTime',
+            'llGetVel',
+            'llGetWallclock',
+            'llGiveInventory',
+            'llGiveInventoryList',
+            'llGiveMoney',
+            'llGround',
+            'llGroundContour',
+            'llGroundNormal',
+            'llGroundRepel',
+            'llGroundSlope',
+            'llHTTPRequest',
+            'llInsertString',
+            'llInstantMessage',
+            'llIntegerToBase64',
+            'llKey2Name',
+            'llList2CSV',
+            'llList2Float',
+            'llList2Integer',
+            'llList2Key',
+            'llList2List',
+            'llList2ListStrided',
+            'llList2Rot',
+            'llList2String',
+            'llList2Vector',
+            'llListen',
+            'llListenControl',
+            'llListenRemove',
+            'llListFindList',
+            'llListInsertList',
+            'llListRandomize',
+            'llListReplaceList',
+            'llListSort',
+            'llListStatistics',
+            'llLoadURL',
+            'llLog',
+            'llLog10',
+            'llLookAt',
+            'llLoopSound',
+            'llLoopSoundMaster',
+            'llLoopSoundSlave',
+            'llMapDestination',
+            'llMD5String',
+            'llMessageLinked',
+            'llMinEventDelay',
+            'llModifyLand',
+            'llModPow',
+            'llMoveToTarget',
+            'llOffsetTexture',
+            'llOpenRemoteDataChannel',
+            'llOverMyLand',
+            'llOwnerSay',
+            'llParcelMediaCommandList',
+            'llParcelMediaQuery',
+            'llParseString2List',
+            'llParseStringKeepNulls',
+            'llParticleSystem',
+            'llPassCollisions',
+            'llPassTouches',
+            'llPlaySound',
+            'llPlaySoundSlave',
+            'llPow',
+            'llPreloadSound',
+            'llPushObject',
+            'llRegionSay',
+            'llReleaseControls',
+            'llRemoteDataReply',
+            'llRemoteDataSetRegion',
+            'llRemoteLoadScriptPin',
+            'llRemoveFromLandBanList',
+            'llRemoveFromLandPassList',
+            'llRemoveInventory',
+            'llRemoveVehicleFlags',
+            'llRequestAgentData',
+            'llRequestInventoryData',
+            'llRequestPermissions',
+            'llRequestSimulatorData',
+            'llResetLandBanList',
+            'llResetLandPassList',
+            'llResetOtherScript',
+            'llResetScript',
+            'llResetTime',
+            'llRezAtRoot',
+            'llRezObject',
+            'llRot2Angle',
+            'llRot2Axis',
+            'llRot2Euler',
+            'llRot2Fwd',
+            'llRot2Left',
+            'llRot2Up',
+            'llRotateTexture',
+            'llRotBetween',
+            'llRotLookAt',
+            'llRotTarget',
+            'llRotTargetRemove',
+            'llRound',
+            'llSameGroup',
+            'llSay',
+            'llScaleTexture',
+            'llScriptDanger',
+            'llSendRemoteData',
+            'llSensor',
+            'llSensorRemove',
+            'llSensorRepeat',
+            'llSetAlpha',
+            'llSetBuoyancy',
+            'llSetCameraAtOffset',
+            'llSetCameraEyeOffset',
+            'llSetCameraParams',
+            'llSetClickAction',
+            'llSetColor',
+            'llSetDamage',
+            'llSetForce',
+            'llSetForceAndTorque',
+            'llSetHoverHeight',
+            'llSetLinkAlpha',
+            'llSetLinkColor',
+            'llSetLinkPrimitiveParams',
+            'llSetLinkTexture',
+            'llSetLocalRot',
+            'llSetObjectDesc',
+            'llSetObjectName',
+            'llSetParcelMusicURL',
+            'llSetPayPrice',
+            'llSetPos',
+            'llSetPrimitiveParams',
+            'llSetRemoteScriptAccessPin',
+            'llSetRot',
+            'llSetScale',
+            'llSetScriptState',
+            'llSetSitText',
+            'llSetSoundQueueing',
+            'llSetSoundRadius',
+            'llSetStatus',
+            'llSetText',
+            'llSetTexture',
+            'llSetTextureAnim',
+            'llSetTimerEvent',
+            'llSetTorque',
+            'llSetTouchText',
+            'llSetVehicleFlags',
+            'llSetVehicleFloatParam',
+            'llSetVehicleRotationParam',
+            'llSetVehicleType',
+            'llSetVehicleVectorParam',
+            'llSHA1String',
+            'llShout',
+            'llSin',
+            'llSitTarget',
+            'llSleep',
+            'llSqrt',
+            'llStartAnimation',
+            'llStopAnimation',
+            'llStopHover',
+            'llStopLookAt',
+            'llStopMoveToTarget',
+            'llStopSound',
+            'llStringLength',
+            'llStringToBase64',
+            'llStringTrim',
+            'llSubStringIndex',
+            'llTakeControls',
+            'llTan',
+            'llTarget',
+            'llTargetOmega',
+            'llTargetRemove',
+            'llTeleportAgentHome',
+            'llToLower',
+            'llToUpper',
+            'llTriggerSound',
+            'llTriggerSoundLimited',
+            'llUnescapeURL',
+            'llUnSit',
+            'llVecDist',
+            'llVecMag',
+            'llVecNorm',
+            'llVolumeDetect',
+            'llWater',
+            'llWhisper',
+            'llWind',
+            'llXorBase64StringsCorrect',
+            ),
+        6 => array( // deprecated
+            'llMakeExplosion',
+            'llMakeFire',
+            'llMakeFountain',
+            'llMakeSmoke',
+            'llSound',
+            'llSoundPreload',
+            'llXorBase64Strings',
+            ),
+        7 => array( // unimplemented
+            'llPointAt',
+            'llRefreshPrimURL',
+            'llReleaseCamera',
+            'llRemoteLoadScript',
+            'llSetPrimURL',
+            'llStopPointAt',
+            'llTakeCamera',
+            'llTextBox',
+            ),
+        8 => array( // God mode
+            'llGodLikeRezObject',
+            'llSetInventoryPermMask',
+            'llSetObjectPermMask',
+            ),
+        ),
+    'SYMBOLS' => array(
+        '{', '}', '(', ')', '[', ']',
+        '=', '+', '-', '*', '/',
+        '+=', '-=', '*=', '/=', '++', '--',
+        '!', '%', '&amp;', '|', '&amp;&amp;', '||',
+        '==', '!=', '&lt;', '&gt;', '&lt;=', '&gt;=',
+        '~', '&lt;&lt;', '&gt;&gt;', '^', ':',
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000ff;',
+            2 => 'color: #000080;',
+            3 => 'color: #008080;',
+            4 => 'color: #228b22;',
+            5 => 'color: #b22222;',
+            6 => 'color: #8b0000; background-color: #ffff00;',
+            7 => 'color: #8b0000; background-color: #fa8072;',
+            8 => 'color: #000000; background-color: #ba55d3;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #ff7f50; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #006400;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #000000;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
+        4 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
+        5 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
+        6 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
+        7 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
+        8 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+?>
\ No newline at end of file
diff --git a/inc/geshi/lua.php b/inc/geshi/lua.php
index a1aa7a6068d140d8b4ce0db8cff53a05f09957b1..58ed30aac63933d7cfa5cf4e6c65ab02a0654e34 100644
--- a/inc/geshi/lua.php
+++ b/inc/geshi/lua.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/10
  *
  * LUA language file for GeSHi.
diff --git a/inc/geshi/m68k.php b/inc/geshi/m68k.php
index 38fc79a64f48ed05c9059271e852d48e9a113bbf..9c16d7d1a426322f9da33097d0b55300dd316652 100644
--- a/inc/geshi/m68k.php
+++ b/inc/geshi/m68k.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/02/06
  *
  * Motorola 68000 Assembler language file for GeSHi.
diff --git a/inc/geshi/make.php b/inc/geshi/make.php
new file mode 100644
index 0000000000000000000000000000000000000000..b15f459e2c875b96aa476a5d36e661cbb5d83c8b
--- /dev/null
+++ b/inc/geshi/make.php
@@ -0,0 +1,151 @@
+<?php
+/*************************************************************************************
+ * make.php
+ * --------
+ * Author: Neil Bird <phoenix@fnxweb.com>
+ * Copyright: (c) 2008 Neil Bird
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/08/26
+ *
+ * make language file for GeSHi.
+ *
+ * (GNU make specific)
+ *
+ * CHANGES
+ * -------
+ * 2008/09/05 (1.0.0)
+ *  -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'GNU make',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_REGEXP' => array(
+        //Escaped String Starters
+        2 => "/\\\\['\"]/siU"
+        ),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            // core
+            'ifeq', 'else', 'endif', 'ifneq', 'ifdef', 'ifndef',
+            'include', 'vpath', 'export', 'unexport', 'override',
+            'info', 'warning', 'error'
+            ),
+        2 => array(
+            // macros, literals
+            '.SUFFIXES', '.PHONY', '.DEFAULT', '.PRECIOUS', '.IGNORE', '.SILENT', '.EXPORT_ALL_VARIABLES', '.KEEP_STATE',
+            '.LIBPATTERNS', '.NOTPARALLEL', '.DELETE_ON_ERROR', '.INTERMEDIATE', '.POSIX', '.SECONDARY'
+            ),
+        /*
+        3 => array(
+            // funcs - see regex
+            //'subst', 'addprefix', 'addsuffix', 'basename', 'call', 'dir', 'error', 'eval', 'filter-out', 'filter',
+            //'findstring', 'firstword', 'foreach', 'if', 'join', 'notdir', 'origin', 'patsubst', 'shell', 'sort', 'strip',
+            //'suffix', 'warning', 'wildcard', 'word', 'wordlist', 'words'
+            )*/
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}',
+        '!', '@', '%', '&', '|', '/',
+        '<', '>',
+        '=', '-', '+', '*',
+        '.', ':', ',', ';',
+        '$'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        //3 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #666622; font-weight: bold;',
+            2 => 'color: #990000;',
+            //3 => 'color: #000000; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #339900; font-style: italic;',
+            2 => 'color: #000099; font-weight: bold;',
+            'MULTI' => ''
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(  # keep same as symbols so as to make ${} and $() equiv.
+            0 => 'color: #004400;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #CC2200;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #CC2200;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #004400;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #000088; font-weight: bold;',
+            1 => 'color: #0000CC; font-weight: bold;',
+            2 => 'color: #000088;'
+            ),
+        'SCRIPT' => array(),
+        'METHODS' => array()
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        //3 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        //Simple variables
+        0 => "\\$(?:[^{(&]|&(?:amp|lt|gt);)",
+        //Complex variables/functions [built-ins]
+        1 => array(
+            GESHI_SEARCH => '(\\$[({])(subst|addprefix|addsuffix|basename|call|dir|error|eval|filter-out|filter,|findstring|firstword|foreach|if|join|notdir|origin|patsubst|shell|sort|strip,|suffix|warning|wildcard|word|wordlist|words)([ })])',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '\\3'
+            ),
+            //Complex variables/functions [others]
+        2 => array(
+            GESHI_SEARCH => '(\\$[({])([A-Za-z_][A-Za-z_0-9]*)([ })])',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '\\3'
+            ),
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 8
+// vim: set sw=4 sts=4 :
+);
+?>
diff --git a/inc/geshi/matlab.php b/inc/geshi/matlab.php
index d90fe557af1f7eee5ed181cbffc6cd842e7c94df..d3963ef809ef5be38c5d6081d5b89b9311fcd8df 100644
--- a/inc/geshi/matlab.php
+++ b/inc/geshi/matlab.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Florian Knorn (floz@gmx.de)
  * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/02/09
  *
  * Matlab M-file language file for GeSHi.
@@ -45,7 +45,9 @@ $language_data = array (
     'COMMENT_SINGLE' => array(1 => '%'),
     'COMMENT_MULTI' => array(),
     //Matlab Strings
-    'COMMENT_REGEXP' => array(2 => "/(?<!\\w)('[^\\n\\r']*?')/"),
+    'COMMENT_REGEXP' => array(
+        2 => "/(?<![\\w\\)\\]\\}\\.])('[^\\n']*?')/"
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array(),
     'ESCAPE_CHAR' => '',
@@ -56,113 +58,105 @@ $language_data = array (
             'switch', 'try', 'while'
             ),
         2 => array(
-            'all','any','exist','find','is','isa','logical','mislocked',
+            'all','any','exist','is','logical','mislocked',
 
-            'builtin','eval','evalc','evalin','feval','function','global',
-            'nargchk','persistent','script','break','case','catch','else',
-            'elseif','end','error','for','if','otherwise','return','switch',
-            'try','warning','while','input','keyboard','menu','pause','class',
-            'double','inferiorto','inline','int8','int16','int32','isa',
-            'loadobj','saveobj','single','superiorto','uint8','int16','uint32',
-            'dbclear','dbcont','dbdown','dbmex','dbquit','dbstack','dbstatus',
-            'dbstep','dbstop','dbtype','dbup','blkdiag','eye','linspace',
-            'logspace','ones','rand','randn','zeros','ans','computer','eps',
-            'flops','i','Inf','inputname','j','NaN','nargin','nargout','pi',
-            'realmax','realmin','varargin','varargout','calendar','clock',
-            'cputime','date','datenum','datestr','datevec','eomday','etime',
-            'now','tic','toc','weekday','cat','diag','fliplr','flipud','repmat',
-            'reshape','rot90','tril','triu','compan','gallery','hadamard',
-            'hankel','hilb','invhilb','magic','pascal','toeplitz','wilkinson',
-            'abs','acos','acosh','acot','acoth','acsc','acsch','angle','asec',
-            'asech','asin','asinh','atan','atanh','atan2','ceil','complex',
-            'conj','cos','cosh','cot','coth','csc','csch','exp','fix','floor',
-            'gcd','imag','lcm','log','log2','log10','mod','nchoosek','real',
-            'rem','round','sec','sech','sign','sin','sinh','sqrt','tan','tanh',
-            'airy','besselh','besseli','besselk','besselj','Bessely','beta',
-            'betainc','betaln','ellipj','ellipke','erf','erfc','erfcx','erfiny',
-            'expint','factorial','gamma','gammainc','gammaln','legendre','pow2',
-            'rat','rats','cart2pol','cart2sph','pol2cart','sph2cart','abs',
-            'eval','real','strings','deblank','findstr','lower','strcat',
-            'strcmp','strcmpi','strjust','strmatch','strncmp','strrep','strtok',
-            'strvcat','symvar','texlabel','upper','char','int2str','mat2str',
-            'num2str','sprintf','sscanf','str2double','str2num','bin2dec',
-            'dec2bin','dec2hex','hex2dec','hex2num','fclose','fopen','fread',
-            'fwrite','fgetl','fgets','fprintf','fscanf','feof','ferror',
-            'frewind','fseek','ftell','sprintf','sscanf','dlmread','dlmwrite',
-            'hdf','imfinfo','imread','imwrite','textread','wk1read','wk1write',
-            'bitand','bitcmp','bitor','bitmax','bitset','bitshift','bitget',
-            'bitxor','fieldnames','getfield','rmfield','setfield','struct',
-            'struct2cell','class','isa','cell','cellfun','cellstr',
-            'cell2struct','celldisp','cellplot','num2cell','cat','flipdim',
-            'ind2sub','ipermute','ndgrid','ndims','permute','reshape',
-            'shiftdim','squeeze','sub2ind','cond','condeig','det','norm','null',
-            'orth','rank','rcond','rref','rrefmovie','subspace','trace','chol',
-            'inv','lscov','lu','nnls','pinv','qr','balance','cdf2rdf','eig',
-            'gsvd','hess','poly','qz','rsf2csf','schur','svd','expm','funm',
-            'logm','sqrtm','qrdelete','qrinsert','bar','barh','hist','hold',
-            'loglog','pie','plot','polar','semilogx','semilogy','subplot',
-            'bar3','bar3h','comet3','cylinder','fill3','plot3','quiver3',
-            'slice','sphere','stem3','waterfall','clabel','datetick','grid',
-            'gtext','legend','plotyy','title','xlabel','ylabel','zlabel',
-            'contour','contourc','contourf','hidden','meshc','mesh','peaks',
-            'surf','surface','surfc','surfl','trimesh','trisurf','coneplot',
-            'contourslice','isocaps','isonormals','isosurface','reducepatch',
-            'reducevolume','shrinkfaces','smooth3','stream2','stream3',
-            'streamline','surf2patch','subvolume','griddata','meshgrid','area',
-            'box','comet','compass','errorbar','ezcontour','ezcontourf',
+            'abs','acos','acosh','acot','acoth','acsc','acsch','airy','angle',
+            'ans','area','asec','asech','asin','asinh','atan','atan2','atanh',
+            'auread','autumn','auwrite','axes','axis','balance','bar','bar3',
+            'bar3h','barh','besselh','besseli','besselj','besselk','Bessely',
+            'beta','betainc','betaln','bicg','bicgstab','bin2dec','bitand',
+            'bitcmp','bitget','bitmax','bitor','bitset','bitshift','bitxor',
+            'blkdiag','bone','box','brighten','builtin','bwcontr','calendar',
+            'camdolly','camlight','camlookat','camorbit','campan','campos',
+            'camproj','camroll','camtarget','camup','camva','camzoom','capture',
+            'cart2pol','cart2sph','cat','caxis','cdf2rdf','ceil','cell',
+            'cell2struct','celldisp','cellfun','cellplot','cellstr','cgs',
+            'char','chol','cholinc','cholupdate','cla','clabel','class','clc',
+            'clf','clg','clock','close','colmmd','colorbar','colorcube',
+            'colordef','colormap','colperm','comet','comet3','compan','compass',
+            'complex','computer','cond','condeig','condest','coneplot','conj',
+            'contour','contourc','contourf','contourslice','contrast','conv',
+            'conv2','convhull','cool','copper','copyobj','corrcoef','cos',
+            'cosh','cot','coth','cov','cplxpair','cputime','cross','csc','csch',
+            'cumprod','cumsum','cumtrapz','cylinder','daspect','date','datenum',
+            'datestr','datetick','datevec','dbclear','dbcont','dbdown',
+            'dblquad','dbmex','dbquit','dbstack','dbstatus','dbstep','dbstop',
+            'dbtype','dbup','deblank','dec2bin','dec2hex','deconv','del2',
+            'delaunay','det','diag','dialog','diff','diffuse','dlmread',
+            'dlmwrite','dmperm','double','dragrect','drawnow','dsearch','eig',
+            'eigs','ellipj','ellipke','eomday','eps','erf','erfc','erfcx',
+            'erfiny','error','errorbar','errordlg','etime','eval','evalc',
+            'evalin','exp','expint','expm','eye','ezcontour','ezcontourf',
             'ezmesh','ezmeshc','ezplot','ezplot3','ezpolar','ezsurf','ezsurfc',
-            'feather','fill','fplot','pareto','pie3','plotmatrix','pcolor',
-            'rose','quiver','ribbon','stairs','scatter','scatter3','stem',
-            'convhull','delaunay','dsearch','inpolygon','polyarea','tsearch',
-            'voronoi','camdolly','camlookat','camorbit','campan','campos',
-            'camproj','camroll','camtarget','camup','camva','camzoom','daspect',
-            'pbaspect','view','viewmtx','xlim','ylim','zlim','camlight',
-            'diffuse','lighting','lightingangle','material','specular',
-            'brighten','bwcontr','caxis','colorbar','colorcube','colordef',
-            'colormap','graymon','hsv2rgb','rgb2hsv','rgbplot','shading',
-            'spinmap','surfnorm','whitebg','autumn','bone','contrast','cool',
-            'copper','flag','gray','hot','hsv','jet','lines','prism','spring',
-            'summer','winter','orient','print','printopt','saveas','copyobj',
-            'findobj','gcbo','gco','get','rotate','ishandle','set','axes',
-            'figure','image','light','line','patch','rectangle','surface',
-            'text Create','uicontext Create','capture','clc','clf','clg',
-            'close','gcf','newplot','refresh','saveas','axis','cla','gca',
-            'propedit','reset','rotate3d','selectmoveresize','shg','ginput',
-            'zoom','dragrect','drawnow','rbbox','dialog','errordlg','helpdlg',
-            'inputdlg','listdlg','msgbox','pagedlg','printdlg','questdlg',
-            'uigetfile','uiputfile','uisetcolor','uisetfont','warndlg','menu',
-            'menuedit','uicontextmenu','uicontrol','uimenu','dragrect',
-            'findfigs','gcbo','rbbox','selectmoveresize','textwrap','uiresume',
-            'uiwait Used','waitbar','waitforbuttonpress','convhull','cumprod',
-            'cumsum','cumtrapz','delaunay','dsearch','factor','inpolygon','max',
-            'mean','median','min','perms','polyarea','primes','prod','sort',
-            'sortrows','std','sum','trapz','tsearch','var','voronoi','del2',
-            'diff','gradient','corrcoef','cov','conv','conv2','deconv','filter',
-            'filter2','abs','angle','cplxpair','fft','fft2','fftshift','ifft',
-            'ifft2','ifftn','ifftshift','nextpow2','unwrap','cross','intersect',
-            'ismember','setdiff','setxor','union','unique','conv','deconv',
-            'poly','polyder','polyeig','polyfit','polyval','polyvalm','residue',
-            'roots','griddata','interp1','interp2','interp3','interpft',
-            'interpn','meshgrid','ndgrid','spline','dblquad','fmin','fmins',
-            'fzero','ode45,','ode113,','ode15s,','ode23s,','ode23t,','ode23tb',
-            'odefile','odeget','odeset','quad,','vectorize','spdiags','speye',
-            'sprand','sprandn','sprandsym','find','full','sparse','spconvert',
-            'nnz','nonzeros','nzmax','spalloc','spfun','spones','colmmd',
-            'colperm','dmperm','randperm','symmmd','symrcm','condest','normest',
-            'bicg','bicgstab','cgs','cholinc','cholupdate','gmres','luinc',
-            'pcg','qmr','qr','qrdelete','qrinsert','qrupdate','eigs','svds',
-            'spparms','lin2mu','mu2lin','sound','soundsc','auread','auwrite',
-            'wavread','wavwrite',
+            'factor','factorial','fclose','feather','feof','ferror','feval',
+            'fft','fft2','fftshift','fgetl','fgets','fieldnames','figure',
+            'fill','fill3','filter','filter2','find','findfigs','findobj',
+            'findstr','fix','flag','flipdim','fliplr','flipud','floor','flops',
+            'fmin','fmins','fopen','fplot','fprintf','fread','frewind','fscanf',
+            'fseek','ftell','full','funm','fwrite','fzero','gallery','gamma',
+            'gammainc','gammaln','gca','gcbo','gcd','gcf','gco','get',
+            'getfield','ginput','gmres','gradient','gray','graymon','grid',
+            'griddata','gsvd','gtext','hadamard','hankel','hdf','helpdlg',
+            'hess','hex2dec','hex2num','hidden','hilb','hist','hold','hot',
+            'hsv','hsv2rgb','i','ifft','ifft2','ifftn','ifftshift','imag',
+            'image','imfinfo','imread','imwrite','ind2sub','Inf','inferiorto',
+            'inline','inpolygon','input','inputdlg','inputname','int16',
+            'int2str','int32','int8','interp1','interp2','interp3','interpft',
+            'interpn','intersect','inv','invhilb','ipermute','isa','ishandle',
+            'ismember','isocaps','isonormals','isosurface','j','jet','keyboard',
+            'lcm','legend','legendre','light','lighting','lightingangle',
+            'lin2mu','line','lines','linspace','listdlg','loadobj','log',
+            'log10','log2','loglog','logm','logspace','lower','lscov','lu',
+            'luinc','magic','mat2str','material','max','mean','median','menu',
+            'menuedit','mesh','meshc','meshgrid','min','mod','msgbox','mu2lin',
+            'NaN','nargchk','nargin','nargout','nchoosek','ndgrid','ndims',
+            'newplot','nextpow2','nnls','nnz','nonzeros','norm','normest','now',
+            'null','num2cell','num2str','nzmax','ode113,','ode15s,','ode23s,',
+            'ode23t,','ode23tb','ode45,','odefile','odeget','odeset','ones',
+            'orient','orth','pagedlg','pareto','pascal','patch','pause',
+            'pbaspect','pcg','pcolor','peaks','perms','permute','pi','pie',
+            'pie3','pinv','plot','plot3','plotmatrix','plotyy','pol2cart',
+            'polar','poly','polyarea','polyder','polyeig','polyfit','polyval',
+            'polyvalm','pow2','primes','print','printdlg','printopt','prism',
+            'prod','propedit','qmr','qr','qrdelete','qrinsert','qrupdate',
+            'quad','questdlg','quiver','quiver3','qz','rand','randn','randperm',
+            'rank','rat','rats','rbbox','rcond','real','realmax','realmin',
+            'rectangle','reducepatch','reducevolume','refresh','rem','repmat',
+            'reset','reshape','residue','rgb2hsv','rgbplot','ribbon','rmfield',
+            'roots','rose','rot90','rotate','rotate3d','round','rref',
+            'rrefmovie','rsf2csf','saveobj','scatter','scatter3','schur',
+            'script','sec','sech','selectmoveresize','semilogx','semilogy',
+            'set','setdiff','setfield','setxor','shading','shg','shiftdim',
+            'shrinkfaces','sign','sin','single','sinh','slice','smooth3','sort',
+            'sortrows','sound','soundsc','spalloc','sparse','spconvert',
+            'spdiags','specular','speye','spfun','sph2cart','sphere','spinmap',
+            'spline','spones','spparms','sprand','sprandn','sprandsym','spring',
+            'sprintf','sqrt','sqrtm','squeeze','sscanf','stairs','std','stem',
+            'stem3','str2double','str2num','strcat','strcmp','strcmpi',
+            'stream2','stream3','streamline','strings','strjust','strmatch',
+            'strncmp','strrep','strtok','struct','struct2cell','strvcat',
+            'sub2ind','subplot','subspace','subvolume','sum','summer',
+            'superiorto','surf','surf2patch','surface','surfc','surfl',
+            'surfnorm','svd','svds','symmmd','symrcm','symvar','tan','tanh',
+            'texlabel','text Create','textread','textwrap','tic','title','toc',
+            'toeplitz','trace','trapz','tril','trimesh','trisurf','triu',
+            'tsearch','uicontext Create','uicontextmenu','uicontrol',
+            'uigetfile','uimenu','uint32','uint8','uiputfile','uiresume',
+            'uisetcolor','uisetfont','uiwait Used','union','unique','unwrap',
+            'upper','var','varargin','varargout','vectorize','view','viewmtx',
+            'voronoi','waitbar','waitforbuttonpress','warndlg','warning',
+            'waterfall','wavread','wavwrite','weekday','whitebg','wilkinson',
+            'winter','wk1read','wk1write','xlabel','xlim','ylabel','ylim',
+            'zeros','zlabel','zlim','zoom',
             //'[Keywords 6]',
-            'addpath','doc','docopt','help','helpdesk','helpwin','lasterr',
-            'lastwarn','lookfor','partialpath','path','pathtool','profile',
-            'profreport','rmpath','type','ver','version','web','what',
-            'whatsnew','which','clear','disp','length','load','mlock',
-            'munlock','openvar','pack','save','saveas','size','who','whos',
-            'workspace','clc','echo','format','home','more','cd','copyfile',
-            'delete','diary','dir','edit','fileparts','fullfile','inmem','ls',
-            'matlabroot','mkdir','open','pwd','tempdir','tempname','matlabrc',
-            'quit'
+            'addpath','cd','clear','copyfile','delete','diary','dir','disp',
+            'doc','docopt','echo','edit','fileparts','format','fullfile','help',
+            'helpdesk','helpwin','home','inmem','lasterr','lastwarn','length',
+            'load','lookfor','ls','matlabrc','matlabroot','mkdir','mlock',
+            'more','munlock','open','openvar','pack','partialpath','path',
+            'pathtool','profile','profreport','pwd','quit','rmpath','save',
+            'saveas','size','tempdir','tempname','type','ver','version','web',
+            'what','whatsnew','which','who','whos','workspace'
             )
         ),
     'SYMBOLS' => array(
@@ -204,6 +198,7 @@ $language_data = array (
             0 => 'color: #080;'
             ),
         'REGEXPS' => array(
+            0 => 'color: #33f;'
             ),
         'SCRIPT' => array(
             0 => ''
@@ -211,9 +206,7 @@ $language_data = array (
         ),
     'URLS' => array(
         1 => '',
-        2 => 'http://www.mathworks.com/access/helpdesk/help/techdoc/ref/{FNAMEL}.html',
-        3 => '',
-        4 => ''
+        2 => 'http://www.mathworks.com/access/helpdesk/help/techdoc/ref/{FNAMEL}.html'
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
@@ -221,6 +214,8 @@ $language_data = array (
         2 => '::'
         ),
     'REGEXPS' => array(
+        //Complex numbers
+        0 => '(?<![\\w])[+-]?[\\d]*([\\d]\\.|\\.[\\d])?[\\d]*[ij](?![\\w])'
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
diff --git a/inc/geshi/mirc.php b/inc/geshi/mirc.php
index 8a2d0fb0d55da5377fa7c12b009035c0e600a681..1547ff4f59eb954d0137ad85c5467579164db1b8 100644
--- a/inc/geshi/mirc.php
+++ b/inc/geshi/mirc.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com)
  * Copyright: (c) 2006 Alberto de Areba
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/05/29
  *
  * mIRC Scripting language file for GeSHi.
@@ -48,7 +48,7 @@ $language_data = array (
             'alias', 'menu', 'dialog',
             ),
         2 => array(
-            'if', 'elseif', 'else', 'while', 'return', 'goto',
+            'if', 'elseif', 'else', 'while', 'return', 'goto','var'
             ),
         3 => array(
             'action','ajinvite','amsg','ame','anick','aop','auser',
@@ -76,7 +76,7 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
+        '(', ')', '{', '}', '[', ']'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -104,6 +104,7 @@ $language_data = array (
             0 => '',
             ),
         'METHODS' => array(
+            0 => 'color: #008000;'
             ),
         'SYMBOLS' => array(
             0 => 'color: #FF0000;',
@@ -111,11 +112,12 @@ $language_data = array (
         'REGEXPS' => array(
             0 => 'color: #000099;',
             1 => 'color: #990000;',
-            2 => 'color: #888800;',
+            2 => 'color: #000099;',
             3 => 'color: #888800;',
-            4 => 'color: #000099;',
+            4 => 'color: #888800;',
             5 => 'color: #000099;',
             6 => 'color: #990000; font-weight: bold;',
+            7 => 'color: #990000; font-weight: bold;'
             ),
         'SCRIPT' => array(
             )
@@ -125,19 +127,15 @@ $language_data = array (
         2 => '',
         3 => 'http://www.mirc.com/{FNAMEL}'
         ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array('.'),
     'REGEXPS' => array(
         //Variable names
         0 => '\$[a-zA-Z0-9]+',
         //Variable names
-        1 => '(%|&amp;)[a-zA-Z0-9]+',
-        //Channel names
-        2 => '(#|@)[a-zA-Z0-9]+',
-        3 => '-[a-z\d]+',
+        1 => '(%|&amp;)[a-zA-Z0-9äöü]+',
         //Client to Client Protocol handling
-        4 => '(on|ctcp) (!|@|&amp;)?(\d|\*):[a-zA-Z]+:',
+        2 => '(on|ctcp) (!|@|&amp;)?(\d|\*):[a-zA-Z]+:',
         /*4 => array(
             GESHI_SEARCH => '((on|ctcp) (!|@|&)?(\d|\*):(Action|Active|Agent|AppActive|Ban|Chat|Close|Connect|Ctcp|CtcpReply|DccServer|DeHelp|DeOp|DeVoice|Dialog|Dns|Error|Exit|FileRcvd|FileSent|GetFail|Help|Hotlink|Input|Invite|Join|KeyDown|KeyUp|Kick|Load|Logon|MidiEnd|Mode|Mp3End|Nick|NoSound|Notice|Notify|Op|Open|Part|Ping|Pong|PlayEnd|Quit|Raw|RawMode|SendFail|Serv|ServerMode|ServerOp|Signal|Snotice|Start|Text|Topic|UnBan|Unload|Unotify|User|Mode|Voice|Wallops|WaveEnd):)',
             GESHI_REPLACE => '\\1',
@@ -145,10 +143,15 @@ $language_data = array (
             GESHI_BEFORE => '',
             GESHI_AFTER => ''
             ),*/
+        //Channel names
+        3 => '(#|@)[a-zA-Z0-9]+',
+        4 => '-[a-z\d]+',
         //Raw protocol handling
         5 => 'raw (\d|\*):',
         //Timer handling
         6 => '\/timer(?!s\b)[0-9a-zA-Z_]+',
+        // /...
+        7 => '\/[a-zA-Z0-9]+'
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
@@ -157,7 +160,12 @@ $language_data = array (
         ),
     'PARSER_CONTROL' => array(
         'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+            ),
+        'KEYWORDS' => array(
+            2 => array(
+                'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>^&\/])'
+            )
         )
     )
 );
diff --git a/inc/geshi/modula3.php b/inc/geshi/modula3.php
new file mode 100644
index 0000000000000000000000000000000000000000..a136442a1825efff2e00e7ca832ef9a49c4dd6fd
--- /dev/null
+++ b/inc/geshi/modula3.php
@@ -0,0 +1,135 @@
+<?php
+/*************************************************************************************
+ * modula3.php
+ * ----------
+ * Author: mbishop (mbishop@esoteriq.org)
+ * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/01/21
+ *
+ * Modula-3 language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ *
+ * TODO
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Modula-3',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array('(*' => '*)'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'HARDQUOTE' => array("'", "'"),
+    'HARDESCAPE' => array("''"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'AND', 'ANY', 'ARRAY', 'AS', 'BEGIN', 'BITS', 'BRANDED', 'BY', 'CASE',
+            'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EVAL', 'EXCEPT', 'EXCEPTION',
+            'EXIT', 'EXPORTS', 'FINALLY', 'FOR', 'FROM', 'GENERIC', 'IF', 'IMPORT', 'IN',
+            'INTERFACE', 'LOCK', 'LOOP', 'METHODS', 'MOD', 'MODULE', 'NOT', 'OBJECT', 'OF',
+            'OR', 'OVERRIDE', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
+            'REPEAT', 'RETURN', 'REVEAL', 'ROOT', 'SET', 'THEN', 'TO', 'TRY', 'TYPE', 'TYPECASE',
+            'UNSAFE', 'UNTIL', 'UNTRACED', 'VALUE', 'VAR', 'WHILE', 'WITH'
+            ),
+        2 => array(
+            'NIL', 'NULL', 'FALSE', 'TRUE',
+            ),
+        3 => array(
+            'ABS','ADR','ADRSIZE','BITSIZE','BYTESIZE','CEILING','DEC','DISPOSE',
+            'EXTENDED','FIRST','FLOAT','FLOOR','INC','ISTYPE','LAST','LOOPHOLE','MAX','MIN',
+            'NARROW','NEW','NUMBER','ORD','ROUND','SUBARRAY','TRUNC','TYPECODE', 'VAL'
+            ),
+        4 => array(
+            'ADDRESS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER',
+            'LONGREAL', 'MUTEX', 'REAL', 'REFANY', 'TEXT'
+            ),
+        ),
+    'SYMBOLS' => array(
+        ',', ':', '=', '+', '-', '*', '/', '#'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000000; font-weight: bold;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #000066;',
+            4 => 'color: #000066; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            'HARD' => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;',
+            'HARD' => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #0066ee;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/mpasm.php b/inc/geshi/mpasm.php
index 44c72cd19a873521be1758a30bce0c8f56ce4b6e..30b192c34e1fcf4646e3954d1affa1a50d15d6ae 100644
--- a/inc/geshi/mpasm.php
+++ b/inc/geshi/mpasm.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Bakalex (bakalex@gmail.com)
  * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/12/6
  *
  * Microchip Assembler language file for GeSHi.
diff --git a/inc/geshi/mxml.php b/inc/geshi/mxml.php
index 07d7502543cbd0161b143b2140ad62705d79be8e..939632be3e0db3ebc148176d8f3bdf48b9539534 100644
--- a/inc/geshi/mxml.php
+++ b/inc/geshi/mxml.php
@@ -4,7 +4,7 @@
  * -------
  * Author: David Spurr
  * Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/10/04
  *
  * MXML language file for GeSHi. Based on the XML file by Nigel McNie
diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php
index aa30085da735ae223e9ab0773e959b0b598c733e..0017eef29111b1bda9d709172bc8113fdca29250 100644
--- a/inc/geshi/mysql.php
+++ b/inc/geshi/mysql.php
@@ -1,14 +1,28 @@
 <?php
- /*************************************************************************************
+/*************************************************************************************
  * mysql.php
  * ---------
- * Author: Carl F�rstenberg (azatoth@gmail.com)
- * Copyright: (c) 2005 Carl F�rstenberg, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
- * Date Started: 2004/06/04
+ * Author: Marjolein Katsma (marjolein.is.back@gmail.com)
+ * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008-12-12
  *
  * MySQL language file for GeSHi.
  *
+ * Based on original MySQL language file by Carl Fürstenberg (2004); brought
+ * up-to-date for current MySQL versions, and with more classes for different
+ * types of keywords; several minor errors were corrected as well.
+ *
+ * Some "classes" have two groups here: this is to allow for the fact that some
+ * keywords in MySQL have a double function: many of those are either a function
+ * (must be immediately followed by an opening bracket) or some other keyword:
+ * so they can be distinguished by the presence (or not) of that opening bracket.
+ * (An immediately following opening bracket is a default rule for functions in
+ * MySQL, though this may be overridden; because it's only a default, we use a
+ * regex lookahead only where necessary to distinguish homonyms, not generally
+ * to match any function.)
+ * Other keywords with double usage cannot be distinguished and are classified
+ * in the "Mix" category.
  *
  *************************************************************************************
  *
@@ -32,99 +46,257 @@
 
 $language_data = array (
     'LANG_NAME' => 'MySQL',
-    'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'),
+    //'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'),    // '--' MUST be folowed by whitespace,not necessarily a space
+    'COMMENT_SINGLE' => array(
+        1 =>'-- ',
+        2 => '#'
+        ),
+    'COMMENT_REGEXP' => array(
+        1 => "/(?:--\s).*?$/",                          // double dash followed by any whitespace
+        ),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => 1,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,            // @@@ would be nice if this could be defined per group!
+    'QUOTEMARKS' => array("'", '"', '`'),
+    'ESCAPE_CHAR' => '\\',                              // by default only, can be specified
+    'ESCAPE_REGEXP' => array(
+        1 => "/[_%]/",                                  // search wildcards
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC |
+        GESHI_NUMBER_OCT_PREFIX |
+        GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_SCI_SHORT |
+        GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
-            /* Mix */
-            'ALTER DATABASE', 'ALTER TABLE', 'CREATE DATABASE', 'CREATE INDEX', 'CREATE TABLE', 'DROP DATABASE',
-            'DROP INDEX', 'DROP TABLE', 'RENAME TABLE', 'DELETE', 'DO', 'HANDLER', 'INSERT', 'LOAD DATA INFILE',
-            'REPLACE', 'SELECT', 'TRUNCATE', 'UPDATE', 'DESCRIBE', 'USE', 'START TRANSACTION', 'COMMIT', 'ROLLBACK',
-            'SAVEPOINT', 'ROLLBACK TO SAVEPOINT', 'LOCK TABLES', 'UNLOCK_TABLES', 'SET TRANACTIONS', 'SET', 'SHOW',
-            'CREATE PROCEDURE', 'CREATE FUNCTION', 'ALTER PROCEDURE', 'ALTER FUNCTION', 'DROP PROCEDURE', 'DROP FUNCTION',
-            'SHOW CREATE PROCEDURE', 'SHOW CREATE FUNCTION', 'SHOW PROCEDURE STATUS', 'SHOW FUNCTION STATUS',
-            'CALL', 'BEGIN', 'END', 'DECLARE', 'CREATE ROUTINE', 'ALTER ROUTINE', 'CREATE', 'ALTER', 'DROP',
-            'PRIMARY KEY', 'VALUES', 'INTO', 'FROM',
-            'ANALYZE', 'BDB', 'BERKELEYDB', 'BTREE', 'BY', 'CASCADE', 'CHECK', 'COLUMN', 'COLUMNS', 'CONSTRAINT',
-            'CROSS', 'DATABASES', 'DELAYED', 'DISTINCT', 'DISTINCTROW', 'ENCLOSED', 'ERRORS', 'ESCAPED', 'EXISTS',
-            'EXPLAIN', 'FALSE', 'FIELDS', 'FORCE', 'FOREIGN', 'FULLTEXT', 'GEOMETRY', 'GRANT', 'GROUP', 'HASH',
-            'HAVING', 'HELP', 'HIGH_PRIORITY', 'IGNORE', 'INNER', 'INNODB', 'INTERVAL', 'JOIN', 'KEYS', 'KILL',
-            'LINES', 'LOW_PRIORITY', 'MASTER_SERVER_ID', 'MATCH', 'MIDDLEINT', 'MRG_MYISAM', 'NATURAL', 'OPTIMIZE',
-            'OPTION', 'OPTIONALLY', 'ORDER', 'OUTER', 'OUTFILE', 'PRIVILEGES', 'PURGE', 'READ', 'REFERENCES',
-            'REQUIRE', 'RESTRICT', 'RETURNS', 'REVOKE', 'RLIKE', 'RTREE', 'SOME', 'SONAME', 'SPATIAL', 'SQL_BIG_RESULT',
-            'SQL_CALC_FOUND_ROWS', 'SQL_SMALL_RESULT', 'SSL', 'STARTING', 'STRAIGHT_JOIN', 'STRIPED', 'TERMINATED',
-            'TRUE', 'TYPES', 'UNION', 'USAGE', 'USER_RESOURCES', 'USING', 'VARCHARACTER', 'WARNINGS', 'WHERE', 'WRITE',
-
-            /* Control Flow Functions */
-            'CASE', 'WHEN', 'THEN', 'ELSE', 'END',
-
-            /* String Functions */
-            'UNHEX', 'BIN', 'BIT_LENGTH', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'COMPRESS', 'CONCAT',
-            'CONCAT_WS', 'CONV', 'ELT', 'EXPORT_SET', 'FIELD', 'FIND_IN_SET', 'FORMAT', 'HEX',
-            'INSERT', 'INSTR', 'LCASE', 'LEFT', 'LENGTH', 'LOAD_FILE', 'LOCATE', 'LOWER', 'LPAD',
-            'LTRIM', 'MAKE_SET', 'MID', 'OCT', 'OCTET_LENGTH', 'ORD', 'POSITION', 'QUOTE', 'REPEAT',
-            'REPLACE', 'REVERSE', 'RIGHT', 'RPAD', 'RTRIM', 'SOUNDEX', 'SPACE', 'SUBSTRING',
-            'SUBSTRING_INDEX', 'TRIM', 'UCASE', 'UPPER', 'UNCOMPRESS', 'UNCOMPRESSD_LENGTH',
-            'MD5', 'SHA1',
-
-            /* Numeric Functions */
-            'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATAN2', 'CEILING', 'CEIL', 'COS', 'COT', 'CRC32', 'DEGREES',
-            'EXP', 'FLOOR', 'LN', 'LOG', 'LOG2', 'LOG10', 'MOD', 'PI', 'POW', 'POWER', 'RADIANS', 'RAND',
-            'ROUND', 'SIGN', 'SIN', 'SQRT', 'TAN', 'TRUNCATE',
-
-            /* Date and Time Functions */
-            'ADDDATE', 'ADDTIME', 'CONVERT_TZ', 'CURDATE', 'CURRENT_DATE', 'CURTIME', 'CURRENT_TIME',
-            'CURRENT_TIMESTAMP', 'DATEDIFF', 'DATE_ADD', 'DATE_SUB', 'DATE_FORMAT', 'DAY',
-            'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'EXTRACT', 'FROM_DAYS', 'FROM_UNIXTIME',
-            'GET_FORMAT', 'LAST_DAY', 'LOCALTIME', 'LOCALTIMESTAMP', 'MAKEDATE', 'MAKETIME',
-            'MICROSECOND', 'MONTHNAME', 'NOW', 'PERIOD_ADD', 'PERIOD_DIFF', 'QUARTER',
-            'SECOND', 'SEC_TO_TIME', 'STR_TO_DATE', 'SUBDATE', 'SUBTIME', 'SYSDATE', 'TIME', 'TIMEDIFF',
-            'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS',
-            'UNIX_TIMESTAMP', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', 'WEEKDAY', 'WEEKOFYEAR',
-            'YEARWEEK',
+            // Mix: statement keywords and keywords that don't fit in any other
+            // category, or have multiple usage/meanings
+            'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY',
+            'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL',
+            'CASCADED','CASCADE','CHAIN','CHECK','COLUMNS','COLUMN','COMMENT',
+            'COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL','CONSISTENT',
+            'CONVERT','CREATE','CROSS','DATA','DATABASES',
+            'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC',
+            'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO',
+            'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE',
+            'ERRORS','ESCAPED BY','EXISTS','EXPLAIN','EXTENDED','FIELDS',
+            'FIRST','FOR EACH ROW','FORCE','FOREIGN KEY','FROM','FULL',
+            'FUNCTION','GLOBAL','GRANT','GROUP BY','HANDLER','HASH','HAVING',
+            'HELP','HIGH_PRIORITY','IF NOT EXISTS','IGNORE','IMPORT','INDEX',
+            'INFILE','INNER','INNODB','INOUT','INTO','INVOKER',
+            'ISOLATION LEVEL','JOIN','KEYS','KEY','KILL','LANGUAGE SQL','LAST',
+            'LIMIT','LINES','LOAD','LOCAL','LOCK','LOW_PRIORITY',
+            'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA',
+            'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON',
+            'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT',
+            'PARTIAL','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE','PURGE',
+            'QUICK','READS SQL DATA','READ','REFERENCES','RELEASE','RENAME',
+            'REPEATABLE','REQUIRE','RESTRICT','RETURNS','REVOKE',
+            'ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
+            'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE',
+            'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT',
+            'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS',
+            'SQL_NO_CACHE','SQL_SMALL_RESULT','SSL','START','STARTING BY',
+            'STATUS','STRAIGHT_JOIN','STRIPED','TABLESPACE','TABLES','TABLE',
+            'TEMPORARY','TEMPTABLE','TERMINATED BY','TO','TRANSACTIONS',
+            'TRANSACTION','TRIGGER','TYPES','TYPE','UNCOMMITTED','UNDEFINED',
+            'UNION','UNLOCK_TABLES','UPDATE','USAGE','USE','USER_RESOURCES',
+            'USING','VALUES','VALUE','VIEW','WARNINGS','WHERE','WITH ROLLUP',
+            'WITH','WORK','WRITE',
             ),
-        2 => array(
-            'INTEGER', 'SMALLINT', 'DECIMAL', 'NUMERIC', 'FLOAT', 'REAL', 'DOUBLE PRECISION',
-            'DOUBLE', 'INT', 'DEC', 'BIT' ,'TINYINT', 'SMALLINT', 'MEDIUMINT', 'BIGINT',
-            'DATETIME', 'DATE', 'TIMESTAMP', 'TIME', 'YEAR',
-            'CHAR', 'VARCHAR', 'BINARY', 'CHARACTER VARYING', 'VARBINARY', 'TINYBLOB', 'TINYTEXT',
-            'BLOB', 'TEXT','MEDIUMBLOB', 'MEDIUMTEXT', 'LONGBLOB', 'LONGTEXT', 'ENUM', 'SET',
-            'SERIAL DEFAULT VALUE', 'SERIAL', 'FIXED'
+        2 => array(     //No ( must follow
+            // Mix: statement keywords distinguished from functions by the same name
+            "CURRENT_USER", "DATABASE", "IN", "INSERT", "DEFAULT", "REPLACE", "SCHEMA", "TRUNCATE"
             ),
         3 => array(
-            'ZEROFILL', 'NOT NULL', 'UNSIGNED', 'AUTO_INCREMENT', 'UNIQUE', 'NOT', 'NULL', 'CHARACTER SET', 'CHARSET',
-            'ASCII', 'UNICODE', 'NATIONAL', 'BOTH', 'LEADING', 'TRAILING','DEFAULT'
+            // Values (Constants)
+            'FALSE','NULL','TRUE',
             ),
         4 => array(
-            'MICROSECOND', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'QUARTER', 'YEAR', 'SECOND_MICROSECOND',
-            'MINUTE_MICROSECOND', 'MINUTE_SECOND', 'HOUR_MICROSECOND', 'HOUR_SECOND', 'HOUR_MINUTE', 'DAY_MICROSECOND',
-            'DAY_SECOND', 'DAY_MINUTE', 'DAY_HOUR', 'YEAR_MONTH'
+            // Column Data Types
+            'BIGINT','BIT','BLOB','BOOLEAN','BOOL','CHARACTER VARYING',
+            'CHAR VARYING','DATETIME','DECIMAL','DEC','DOUBLE PRECISION',
+            'DOUBLE','ENUM','FIXED','FLOAT','GEOMETRYCOLLECTION','GEOMETRY',
+            'INTEGER','INT','LINESTRING','LONGBLOB','LONGTEXT','MEDIUMBLOB',
+            'MEDIUMINT','MEDIUMTEXT','MULTIPOINT','MULTILINESTRING',
+            'MULTIPOLYGON','NATIONAL CHARACTER','NATIONAL CHARACTER VARYING',
+            'NATIONAL CHAR VARYING','NATIONAL VARCHAR','NCHAR VARCHAR','NCHAR',
+            'NUMERIC','POINT','POLYGON','REAL','SERIAL',
+            'SMALLINT','TEXT','TIMESTAMP','TINYBLOB','TINYINT',
+            'TINYTEXT','VARBINARY','VARCHARACTER','VARCHAR',
+            ),
+        5 => array(     //No ( must follow
+            // Column data types distinguished from functions by the same name
+            "CHAR", "DATE", "TIME"
+            ),
+        6 => array(
+            // Table, Column & Index Attributes
+            'AUTO_INCREMENT','AVG_ROW_LENGTH','BOTH','CHECKSUM','CONNECTION',
+            'DATA DIRECTORY','DEFAULT NULL','DELAY_KEY_WRITE','FULLTEXT',
+            'INDEX DIRECTORY','INSERT_METHOD','LEADING','MAX_ROWS','MIN_ROWS',
+            'NOT NULL','PACK_KEYS','ROW_FORMAT','SERIAL DEFAULT VALUE','SIGNED',
+            'SPATIAL','TRAILING','UNIQUE','UNSIGNED','ZEROFILL'
+            ),
+        7 => array(     //No ( must follow
+            // Column attribute distinguished from function by the same name
+            "CHARSET"
+            ),
+        8 => array(
+            // Date and Time Unit Specifiers
+            'DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND',
+            'HOUR_MICROSECOND','HOUR_MINUTE','HOUR_SECOND',
+            'MINUTE_MICROSECOND','MINUTE_SECOND',
+            'SECOND_MICROSECOND','YEAR_MONTH'
+            ),
+        9 => array(     //No ( must follow
+            // Date-time unit specifiers distinguished from functions by the same name
+            "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", "SECOND", "WEEK", "YEAR"
+            ),
+        10 => array(
+            // Operators (see also Symbols)
+            'AND','BETWEEN','CHARACTER SET','COLLATE','DIV','IS NOT NULL',
+            'IS NOT','IS NULL','IS','LIKE','NOT','OFFSET','OR','REGEXP','RLIKE',
+            'SOUNDS LIKE','XOR'
+            ),
+        11 => array(     //No ( must follow
+            // Operator distinghuished from function by the same name
+            "INTERVAL"
+            ),
+        12 => array(
+            // Control Flow (functions)
+            'CASE','ELSE','END','IFNULL','IF','NULLIF','THEN','WHEN',
+            ),
+        13 => array(
+            // String Functions
+            'ASCII','BIN','BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH',
+            'CONCAT_WS','CONCAT','ELT','EXPORT_SET','FIELD',
+            'FIND_IN_SET','FORMAT','HEX','INSTR','LCASE','LEFT','LENGTH',
+            'LOAD_FILE','LOCATE','LOWER','LPAD','LTRIM','MAKE_SET','MID',
+            'OCTET_LENGTH','ORD','POSITION','QUOTE','REPEAT','REVERSE',
+            'RIGHT','RPAD','RTRIM','SOUNDEX','SPACE','STRCMP','SUBSTRING_INDEX',
+            'SUBSTRING','TRIM','UCASE','UNHEX','UPPER',
+            ),
+        14 => array(     //A ( must follow
+            // String functions distinguished from other keywords by the same name
+            "INSERT", "REPLACE", "CHAR"
+            ),
+        15 => array(
+            // Numeric Functions
+            'ABS','ACOS','ASIN','ATAN2','ATAN','CEILING','CEIL',
+            'CONV','COS','COT','CRC32','DEGREES','EXP','FLOOR','LN','LOG10',
+            'LOG2','LOG','MOD','OCT','PI','POWER','POW','RADIANS','RAND',
+            'ROUND','SIGN','SIN','SQRT','TAN',
+            ),
+        16 => array(     //A ( must follow
+            // Numeric function distinguished from other keyword by the same name
+            "TRUNCATE"
+            ),
+        17 => array(
+            // Date and Time Functions
+            'ADDDATE','ADDTIME','CONVERT_TZ','CURDATE','CURRENT_DATE',
+            'CURRENT_TIME','CURRENT_TIMESTAMP','CURTIME','DATE_ADD',
+            'DATE_FORMAT','DATE_SUB','DATEDIFF','DAYNAME','DAYOFMONTH',
+            'DAYOFWEEK','DAYOFYEAR','EXTRACT','FROM_DAYS','FROM_UNIXTIME',
+            'GET_FORMAT','LAST_DAY','LOCALTIME','LOCALTIMESTAMP','MAKEDATE',
+            'MAKETIME','MONTHNAME','NOW','PERIOD_ADD',
+            'PERIOD_DIFF','SEC_TO_TIME','STR_TO_DATE','SUBDATE','SUBTIME',
+            'SYSDATE','TIME_FORMAT','TIME_TO_SEC',
+            'TIMESTAMPADD','TIMESTAMPDIFF','TO_DAYS',
+            'UNIX_TIMESTAMP','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','WEEKDAY',
+            'WEEKOFYEAR','YEARWEEK',
             ),
-        5 => array(
-            'OR', 'XOR', 'AND', 'NOT', 'BETWEEN', 'IS', 'LIKE', 'REGEXP', 'IN', 'DIV',
-            'MOD', 'BINARY', 'COLLATE', 'LIMIT', 'OFFSET'
+        18 => array(     //A ( must follow
+            // Date-time functions distinguished from other keywords by the same name
+            "DATE", "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER",
+            "SECOND", "TIME", "WEEK", "YEAR"
+            ),
+        19 => array(
+            // Comparison Functions
+            'COALESCE','GREATEST','ISNULL','LEAST',
+            ),
+        20 => array(     //A ( must follow
+            // Comparison functions distinguished from other keywords by the same name
+            "IN", "INTERVAL"
+            ),
+        21 => array(
+            // Encryption and Compression Functions
+            'AES_DECRYPT','AES_ENCRYPT','COMPRESS','DECODE','DES_DECRYPT',
+            'DES_ENCRYPT','ENCODE','ENCRYPT','MD5','OLD_PASSWORD','PASSWORD',
+            'SHA1','SHA','UNCOMPRESS','UNCOMPRESSED_LENGTH',
+            ),
+        22 => array(
+            // GROUP BY (aggregate) Functions
+            'AVG','BIT_AND','BIT_OR','BIT_XOR','COUNT','GROUP_CONCAT',
+            'MAX','MIN','STDDEV_POP','STDDEV_SAMP','STDDEV','STD','SUM',
+            'VAR_POP','VAR_SAMP','VARIANCE',
+            ),
+        23 => array(
+            // Information Functions
+            'BENCHMARK','COERCIBILITY','COLLATION','CONNECTION_ID',
+            'FOUND_ROWS','LAST_INSERT_ID','ROW_COUNT',
+            'SESSION_USER','SYSTEM_USER','USER','VERSION',
+            ),
+        24 => array(     //A ( must follow
+            // Information functions distinguished from other keywords by the same name
+            "CURRENT_USER", "DATABASE", "SCHEMA", "CHARSET"
+            ),
+        25 => array(
+            // Miscellaneous Functions
+            'ExtractValue','BIT_COUNT','GET_LOCK','INET_ATON','INET_NTOA',
+            'IS_FREE_LOCK','IS_USED_LOCK','MASTER_POS_WAIT','NAME_CONST',
+            'RELEASE_LOCK','SLEEP','UpdateXML','UUID',
+            ),
+        26 => array(     //A ( must follow
+            // Miscellaneous function distinguished from other keyword by the same name
+            "DEFAULT"
+            ),
+        27 => array(
+            // Geometry Functions
+            'Area','AsBinary','AsText','AsWKB','AsWKT','Boundary','Buffer',
+            'Centroid','Contains','ConvexHull','Crosses',
+            'Difference','Dimension','Disjoint','Distance',
+            'EndPoint','Envelope','Equals','ExteriorRing',
+            'GLength','GeomCollFromText','GeomCollFromWKB','GeomFromText',
+            'GeomFromWKB','GeometryCollectionFromText',
+            'GeometryCollectionFromWKB','GeometryFromText','GeometryFromWKB',
+            'GeometryN','GeometryType',
+            'InteriorRingN','Intersection','Intersects','IsClosed','IsEmpty',
+            'IsRing','IsSimple',
+            'LineFromText','LineFromWKB','LineStringFromText',
+            'LineStringFromWKB',
+            'MBRContains','MBRDisjoint','MBREqual','MBRIntersects',
+            'MBROverlaps','MBRTouches','MBRWithin','MLineFromText',
+            'MLineFromWKB','MPointFromText','MPointFromWKB','MPolyFromText',
+            'MPolyFromWKB','MultiLineStringFromText','MultiLineStringFromWKB',
+            'MultiPointFromText','MultiPointFromWKB','MultiPolygonFromText',
+            'MultiPolygonFromWKB',
+            'NumGeometries','NumInteriorRings','NumPoints',
+            'Overlaps',
+            'PointFromText','PointFromWKB','PointN','PointOnSurface',
+            'PolyFromText','PolyFromWKB','PolygonFromText','PolygonFromWKB',
+            'Related','SRID','StartPoint','SymDifference',
+            'Touches',
+            'Union',
+            'Within',
+            'X',
+            'Y',
             ),
         ),
     'SYMBOLS' => array(
-        ':=',
-        '||', 'OR', 'XOR',
-        '&&', 'AND',
-        'NOT',
-        'BETWEEN', 'CASE', 'WHEN', 'THEN', 'ELSE',
-        '=', '<=>', '>=', '>', '<=', '<', '<>', '!=', 'IS', 'LIKE', 'REGEXP', 'IN',
-        '|',
-        '&',
-        '<<', '>>',
-        '-', '+',
-        '*', '/', 'DIV', '%', 'MOD',
-        '^',
-        '~',
-        '!',
-        'BINARY', 'COLLATE',
-        '(', ')',
+        1 => array(
+            /* Operators */
+            '=', ':=',                                      // assignment operators
+            '||', '&&', '!',                                // locical operators
+            '=', '<=>', '>=', '>', '<=', '<', '<>', '!=',   // comparison operators
+            '|', '&', '^', '~', '<<', '>>',                 // bitwise operators
+            '-', '+', '*', '/', '%',                        // numerical operators
+            ),
+        2 => array(
+            /* Other syntactical symbols */
+            '(', ')',
+            ',', ';',
+            ),
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -132,37 +304,86 @@ $language_data = array (
         2 => false,
         3 => false,
         4 => false,
-        5 => false
+        5 => false,
+        6 => false,
+        7 => false,
+        8 => false,
+        9 => false,
+        10 => false,
+        11 => false,
+        12 => false,
+        13 => false,
+        13 => false,
+        14 => false,
+        15 => false,
+        16 => false,
+        17 => false,
+        18 => false,
+        19 => false,
+        20 => false,
+        21 => false,
+        22 => false,
+        23 => false,
+        24 => false,
+        25 => false,
+        26 => false,
+        27 => false,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #993333; font-weight: bold;',
-            2 => 'color: #aa9933; font-weight: bold;',
-            3 => 'color: #aa3399; font-weight: bold;',
-            4 => 'color: #33aa99; font-weight: bold;',
-            5 => 'color: #993333; font-weight: bold;'
+            1 => 'color: #990099; font-weight: bold;',      // mix
+            2 => 'color: #990099; font-weight: bold;',      // mix
+            3 => 'color: #9900FF; font-weight: bold;',      // constants
+            4 => 'color: #999900; font-weight: bold;',      // column data types
+            5 => 'color: #999900; font-weight: bold;',      // column data types
+            6 => 'color: #FF9900; font-weight: bold;',      // attributes
+            7 => 'color: #FF9900; font-weight: bold;',      // attributes
+            8 => 'color: #9900FF; font-weight: bold;',      // date-time units
+            9 => 'color: #9900FF; font-weight: bold;',      // date-time units
+
+            10 => 'color: #CC0099; font-weight: bold;',      // operators
+            11 => 'color: #CC0099; font-weight: bold;',      // operators
+
+            12 => 'color: #009900;',     // control flow (functions)
+            13 => 'color: #000099;',     // string functions
+            14 => 'color: #000099;',     // string functions
+            15 => 'color: #000099;',     // numeric functions
+            16 => 'color: #000099;',     // numeric functions
+            17 => 'color: #000099;',     // date-time functions
+            18 => 'color: #000099;',     // date-time functions
+            19 => 'color: #000099;',     // comparison functions
+            20 => 'color: #000099;',     // comparison functions
+            21 => 'color: #000099;',     // encryption functions
+            22 => 'color: #000099;',     // aggregate functions
+            23 => 'color: #000099;',     // information functions
+            24 => 'color: #000099;',     // information functions
+            25 => 'color: #000099;',     // miscellaneous functions
+            26 => 'color: #000099;',     // miscellaneous functions
+            27 => 'color: #00CC00;',     // geometry functions
             ),
         'COMMENTS' => array(
-            'MULTI' => 'color: #808080; font-style: italic;',
+            'MULTI' => 'color: #808000; font-style: italic;',
             1 => 'color: #808080; font-style: italic;',
             2 => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            0 => 'color: #004000; font-weight: bold;',
+            1 => 'color: #008080; font-weight: bold;'       // search wildcards
             ),
         'BRACKETS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #FF00FF;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #008000;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
+            0 => 'color: #008080;'
             ),
         'METHODS' => array(
             ),
         'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
+            1 => 'color: #CC0099;',         // operators
+            2 => 'color: #000033;',         // syntax
             ),
         'SCRIPT' => array(
             ),
@@ -170,11 +391,35 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
+        1 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        2 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        3 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        4 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        5 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        6 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        7 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        8 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+        9 => 'http://search.mysql.com/search?site=refman-51&amp;q={FNAME}&amp;lr=lang_en',
+
+        10 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html',
+        11 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html',
+
+        12 => 'http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html',
+        13 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html',
+        14 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html',
+        15 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html',
+        16 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html',
+        17 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html',
+        18 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html',
+        19 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html',
+        20 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html',
+        21 => 'http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html',
+        22 => 'http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html',
+        23 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html',
+        24 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html',
+        25 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html',
+        26 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html',
+        27 => 'http://dev.mysql.com/doc/refman/5.1/en/analysing-spatial-information.html',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
@@ -185,6 +430,45 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            2 => array(
+                'DISALLOWED_AFTER' => '(?![\(\w])'
+                ),
+            5 => array(
+                'DISALLOWED_AFTER' => '(?![\(\w])'
+                ),
+            7 => array(
+                'DISALLOWED_AFTER' => '(?![\(\w])'
+                ),
+            9 => array(
+                'DISALLOWED_AFTER' => '(?![\(\w])'
+                ),
+            11 => array(
+                'DISALLOWED_AFTER' => '(?![\(\w])'
+                ),
+
+            14 => array(
+                'DISALLOWED_AFTER' => '(?=\()'
+                ),
+            16 => array(
+                'DISALLOWED_AFTER' => '(?=\()'
+                ),
+            18 => array(
+                'DISALLOWED_AFTER' => '(?=\()'
+                ),
+            20 => array(
+                'DISALLOWED_AFTER' => '(?=\()'
+                ),
+            24 => array(
+                'DISALLOWED_AFTER' => '(?=\()'
+                ),
+            26 => array(
+                'DISALLOWED_AFTER' => '(?=\()'
+                )
+            )
         )
 );
 
diff --git a/inc/geshi/nsis.php b/inc/geshi/nsis.php
index dbab07df1ee8cdf455e4b276dfd1e4d3f4e19dcb..9f3e1ccca7f8248047c70a915d824745b01c3c74 100644
--- a/inc/geshi/nsis.php
+++ b/inc/geshi/nsis.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/)
  * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/12/03
  *
  * Nullsoft Scriptable Install System language file for GeSHi.
diff --git a/inc/geshi/oberon2.php b/inc/geshi/oberon2.php
new file mode 100644
index 0000000000000000000000000000000000000000..3e528401f290a85251e3ef7785dbf6d01942e3fa
--- /dev/null
+++ b/inc/geshi/oberon2.php
@@ -0,0 +1,135 @@
+<?php
+/*************************************************************************************
+ * oberon2.php
+ * ----------
+ * Author: mbishop (mbishop@esoteriq.org)
+ * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/02/10
+ *
+ * Oberon-2 language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ *
+ * TODO
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Oberon-2',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array('(*' => '*)'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'HARDQUOTE' => array("'", "'"),
+    'HARDESCAPE' => array("''"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'ARRAY', 'BEGIN', 'BY', 'CASE',
+            'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END',
+            'EXIT', 'FOR', 'IF', 'IMPORT', 'IN', 'IS',
+            'LOOP', 'MOD', 'MODULE', 'OF',
+            'OR', 'POINTER', 'PROCEDURE', 'RECORD',
+            'REPEAT', 'RETURN', 'THEN', 'TO',
+            'TYPE', 'UNTIL', 'VAR', 'WHILE', 'WITH'
+            ),
+        2 => array(
+            'NIL', 'FALSE', 'TRUE',
+            ),
+        3 => array(
+            'ABS', 'ASH', 'ASSERT', 'CAP', 'CHR', 'COPY', 'DEC',
+            'ENTIER', 'EXCL', 'HALT', 'INC', 'INCL', 'LEN',
+            'LONG', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD', 'SHORT', 'SIZE'
+            ),
+        4 => array(
+            'BOOLEAN', 'CHAR', 'SHORTINT', 'LONGINT',
+            'INTEGER', 'LONGREAL', 'REAL', 'SET', 'PTR'
+            ),
+        ),
+    'SYMBOLS' => array(
+        ',', ':', '=', '+', '-', '*', '/', '#', '~'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000000; font-weight: bold;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #000066;',
+            4 => 'color: #000066; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            'HARD' => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;',
+            'HARD' => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #0066ee;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/objc.php b/inc/geshi/objc.php
index ed51467027e0ebce687c9bbd426b5addab49a7a1..668f14b8a74b1eb5dbddceb581d17fb146bad675 100644
--- a/inc/geshi/objc.php
+++ b/inc/geshi/objc.php
@@ -5,7 +5,7 @@
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
  * Contributors: Quinn Taylor (quinntaylor@mac.com)
  * Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * Objective-C language file for GeSHi.
@@ -49,8 +49,8 @@
 
 $language_data = array (
     'LANG_NAME' => 'Objective-C',
-	'COMMENT_SINGLE' => array(
-	    //Compiler directives
+    'COMMENT_SINGLE' => array(
+        //Compiler directives
         1 => '#',
         //Single line C-Comments
         2 => '//'
@@ -63,12 +63,12 @@ $language_data = array (
         3 => "/@(?=\")/"
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-	'QUOTEMARKS' => array('"', "'"),
+    'QUOTEMARKS' => array('"', "'"),
     'ESCAPE_CHAR' => '\\',
 
     'KEYWORDS' => array(
-		// Objective-C keywords
-		1 => array(
+        // Objective-C keywords
+        1 => array(
             'while', 'switch', 'return', 'in', 'if', 'goto', 'foreach', 'for',
             'else', 'do', 'default', 'continue', 'case', '@try', '@throw',
             '@synthesize', '@synchronized', '@selector', '@public', '@protocol',
@@ -76,13 +76,13 @@ $language_data = array (
             '@implementation', '@finally', '@end', '@encode', '@defs', '@class',
             '@catch'
             ),
-		// Macros and constants
-		2 => array(
+        // Macros and constants
+        2 => array(
             'YES', 'USHRT_MAX', 'ULONG_MAX', 'UINT_MAX', 'UCHAR_MAX', 'true',
             'TMP_MAX', 'stdout', 'stdin', 'stderr', 'SIGTERM', 'SIGSEGV',
             'SIGINT', 'SIGILL', 'SIG_IGN', 'SIGFPE', 'SIG_ERR', 'SIG_DFL',
             'SIGABRT', 'SHRT_MIN', 'SHRT_MAX', 'SEEK_SET', 'SEEK_END',
-            'SEEK_CUR', 'SCHAR_MIN', 'SCHAR_MAX', 'RAND_MAX', 'NULL', 'NULL',
+            'SEEK_CUR', 'SCHAR_MIN', 'SCHAR_MAX', 'RAND_MAX', 'NULL',
             'NO', 'nil', 'Nil', 'L_tmpnam', 'LONG_MIN', 'LONG_MAX',
             'LDBL_MIN_EXP', 'LDBL_MIN', 'LDBL_MAX_EXP', 'LDBL_MAX',
             'LDBL_MANT_DIG', 'LDBL_EPSILON', 'LDBL_DIG', 'INT_MIN', 'INT_MAX',
@@ -94,8 +94,8 @@ $language_data = array (
             'CLOCKS_PER_SEC', 'CHAR_MIN', 'CHAR_MAX', 'CHAR_BIT', 'BUFSIZ',
             'break'
             ),
-		// C standard library functions
-		3 => array(
+        // C standard library functions
+        3 => array(
             'vsprintf', 'vprintf', 'vfprintf', 'va_start', 'va_end', 'va_arg',
             'ungetc', 'toupper', 'tolower', 'tmpname', 'tmpfile', 'time',
             'tanh', 'tan', 'system', 'strxfrm', 'strtoul', 'strtol', 'strtok',
@@ -108,7 +108,7 @@ $language_data = array (
             'printf', 'pow', 'perror', 'offsetof', 'modf', 'mktime', 'memset',
             'memmove', 'memcpy', 'memcmp', 'memchr', 'malloc', 'longjmp',
             'log10', 'log', 'localtime', 'ldiv', 'ldexp', 'labs', 'isxdigit',
-            'isupper', 'isspace', 'ispunct', 'ispunct', 'isprint', 'islower',
+            'isupper', 'isspace', 'ispunct', 'isprint', 'islower',
             'isgraph', 'isdigit', 'iscntrl', 'isalpha', 'isalnum', 'gmtime',
             'gets', 'getenv', 'getchar', 'getc', 'fwrite', 'ftell', 'fsetpos',
             'fseek', 'fscanf', 'frexp', 'freopen', 'free', 'fread', 'fputs',
@@ -116,20 +116,20 @@ $language_data = array (
             'fgetc', 'fflush', 'ferror', 'feof', 'fclose', 'fabs', 'exp',
             'exit', 'div', 'difftime', 'ctime', 'cosh', 'cos', 'clock',
             'clearerr', 'ceil', 'calloc', 'bsearch', 'atol', 'atoi', 'atof',
-            'atexit', 'atan2', 'atan2', 'atan', 'atan', 'assert', 'asin',
-            'asin', 'asctime', 'acos', 'acos', 'abs', 'abort'
+            'atexit', 'atan2', 'atan', 'assert', 'asin', 'asctime', 'acos',
+            'abs', 'abort'
             ),
-		// Data types (C, Objective-C, Cocoa)
-		4 => array(
+        // Data types (C, Objective-C, Cocoa)
+        4 => array(
             'volatile', 'void', 'va_list', 'unsigned', 'union', 'typedef', 'tm',
-            'time_t', 'struct', 'string', 'static', 'size_t', 'sizeof',
+            'time_t', 'struct', 'string', 'static', 'size_t',
             'signed', 'signal', 'short', 'SEL', 'register', 'raise',
             'ptrdiff_t', 'NSZone', 'NSRect', 'NSRange', 'NSPoint', 'long',
             'ldiv_t', 'jmp_buf', 'int', 'IMP', 'id', 'fpos_t', 'float', 'FILE',
             'extern', 'double', 'div_t', 'const', 'clock_t', 'Class', 'char',
             'BOOL', 'auto'
             ),
-		// Foundation classes
+        // Foundation classes
         5 => array(
             'NSXMLParser', 'NSXMLNode', 'NSXMLElement', 'NSXMLDTDNode',
             'NSXMLDTD', 'NSXMLDocument', 'NSWhoseSpecifier',
@@ -186,18 +186,18 @@ $language_data = array (
             'NSAppleEventDescriptor', 'NSAffineTransform'
             ),
         // Foundation protocols
-		6 => array(
+        6 => array(
             'NSURLProtocolClient', 'NSURLHandleClient', 'NSURLClient',
             'NSURLAuthenticationChallengeSender', 'NSScriptObjectSpecifiers',
             'NSScriptKeyValueCoding', 'NSScriptingComparisonMethods',
-            'NSObject', 'NSObjCTypeSerializationCallBack', 'NSMutableCopying',
+            'NSObjCTypeSerializationCallBack', 'NSMutableCopying',
             'NSLocking', 'NSKeyValueObserving', 'NSKeyValueCoding',
             'NSFastEnumeration', 'NSErrorRecoveryAttempting',
             'NSDecimalNumberBehaviors', 'NSCopying', 'NSComparisonMethods',
             'NSCoding'
             ),
-		// AppKit classes
-		7 => array(
+        // AppKit classes
+        7 => array(
             'NSWorkspace', 'NSWindowController', 'NSWindow', 'NSViewController',
             'NSViewAnimation', 'NSView', 'NSUserDefaultsController',
             'NSTypesetter', 'NSTreeNode', 'NSTreeController', 'NSTrackingArea',
@@ -245,11 +245,11 @@ $language_data = array (
             'NSArrayController', 'NSApplication', 'NSAnimationContext',
             'NSAnimation', 'NSAlert', 'NSActionCell'
             ),
-		// AppKit protocols
-		8 => array(
+        // AppKit protocols
+        8 => array(
             'NSWindowScripting', 'NSValidatedUserInterfaceItem',
             'NSUserInterfaceValidations', 'NSToolTipOwner',
-            'NSToolbarItemValidation', 'NSTextInput', 'NSTextAttachmentCell',
+            'NSToolbarItemValidation', 'NSTextInput',
             'NSTableDataSource', 'NSServicesRequests',
             'NSPrintPanelAccessorizing', 'NSPlaceholders',
             'NSPathControlDelegate', 'NSPathCellDelegate',
@@ -263,8 +263,8 @@ $language_data = array (
             'NSColorPickingDefault', 'NSColorPickingCustom', 'NSChangeSpelling',
             'NSAnimatablePropertyContainer', 'NSAccessibility'
             ),
-		// CoreData classes
-		9 => array(
+        // CoreData classes
+        9 => array(
             'NSRelationshipDescription', 'NSPropertyMapping',
             'NSPropertyDescription', 'NSPersistentStoreCoordinator',
             'NSPersistentStore', 'NSMigrationManager', 'NSMappingModel',
@@ -280,52 +280,52 @@ $language_data = array (
         '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
         ),
     'CASE_SENSITIVE' => array(
-		GESHI_COMMENTS => true,
-		1 => true,
-		2 => true,
-		3 => true,
-		4 => true,
-		5 => true,
-		6 => true,
-		7 => true,
-		8 => true,
-		9 => true
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true
         ),
-	// Define the colors for the groups listed above
+    // Define the colors for the groups listed above
     'STYLES' => array(
         'KEYWORDS' => array(
-			1 => 'color: #a61390;',	// Objective-C keywords
-			2 => 'color: #a61390;',	// Macros and constants
-			3 => 'color: #a61390;',	// C standard library functions
-			4 => 'color: #a61390;',	// data types
-			5 => 'color: #400080;',	// Foundation classes
-			6 => 'color: #2a6f76;',	// Foundation protocols
-			7 => 'color: #400080;',	// AppKit classes
-			8 => 'color: #2a6f76;',	// AppKit protocols
-			9 => 'color: #400080;'	// CoreData classes
+            1 => 'color: #a61390;', // Objective-C keywords
+            2 => 'color: #a61390;', // Macros and constants
+            3 => 'color: #a61390;', // C standard library functions
+            4 => 'color: #a61390;', // data types
+            5 => 'color: #400080;', // Foundation classes
+            6 => 'color: #2a6f76;', // Foundation protocols
+            7 => 'color: #400080;', // AppKit classes
+            8 => 'color: #2a6f76;', // AppKit protocols
+            9 => 'color: #400080;' // CoreData classes
             ),
         'COMMENTS' => array(
-			1 => 'color: #6e371a;',	// Preprocessor directives
-			2 => 'color: #11740a; font-style: italic;',	// Normal C single-line comments
-			3 => 'color: #bf1d1a;', // Q-sign in front of Strings
-			'MULTI' => 'color: #11740a; font-style: italic;'
+            1 => 'color: #6e371a;', // Preprocessor directives
+            2 => 'color: #11740a; font-style: italic;', // Normal C single-line comments
+            3 => 'color: #bf1d1a;', // Q-sign in front of Strings
+            'MULTI' => 'color: #11740a; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-		    0 => 'color: #2400d9;'
+            0 => 'color: #2400d9;'
             ),
         'BRACKETS' => array(
-		    0 => 'color: #002200;'
+            0 => 'color: #002200;'
             ),
         'STRINGS' => array(
-		    0 => 'color: #bf1d1a;'
+            0 => 'color: #bf1d1a;'
             ),
         'NUMBERS' => array(
-		    0 => 'color: #2400d9;'
+            0 => 'color: #2400d9;'
             ),
         'METHODS' => array(
             ),
         'SYMBOLS' => array(
-		    0 => 'color: #002200;'
+            0 => 'color: #002200;'
             ),
         'REGEXPS' => array(
             ),
@@ -335,13 +335,13 @@ $language_data = array (
     'URLS' => array(
         1 => '',
         2 => '',
-		3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html',
+        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html',
         4 => '',
-		5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/{FNAME}_Class/',
-		6 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/{FNAME}_Protocol/',
-		7 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/{FNAME}_Class/',
-		8 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/{FNAME}_Protocol/',
-		9 => 'http://developer.apple.com/documentation/Cocoa/Reference/CoreDataFramework/Classes/{FNAME}_Class/'
+        5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/{FNAME}_Class/',
+        6 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/{FNAME}_Protocol/',
+        7 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/{FNAME}_Class/',
+        8 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/{FNAME}_Protocol/',
+        9 => 'http://developer.apple.com/documentation/Cocoa/Reference/CoreDataFramework/Classes/{FNAME}_Class/'
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/ocaml-brief.php b/inc/geshi/ocaml-brief.php
index da23c162fbb9bc8372d9ba4b9ff4a10a63a14662..8c1551920b656a695feaba20b7ef20f527932ea1 100644
--- a/inc/geshi/ocaml-brief.php
+++ b/inc/geshi/ocaml-brief.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
@@ -47,7 +47,7 @@ $language_data = array (
     'KEYWORDS' => array(
         /* main OCaml keywords */
         1 => array(
-            'and', 'As', 'asr', 'begin', 'Class', 'Closed', 'constraint', 'do', 'done', 'downto', 'else',
+            'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else',
             'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor',
             'if', 'in', 'include', 'inherit',  'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor',
             'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser',
@@ -57,9 +57,9 @@ $language_data = array (
         ),
     /* highlighting symbols is really important in OCaml */
     'SYMBOLS' => array(
-            ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
-            '>', '<', '(', ')', '[', ']', '&', '|', '#', "'"
-            ),
+        ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
+        '>', '<', '(', ')', '[', ']', '&', '|', '#', "'"
+        ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => false,
diff --git a/inc/geshi/ocaml.php b/inc/geshi/ocaml.php
index d7f4dad608e989d8e0bf8711f2151b638ed4c93b..e21ca7f225f9a85352fb3200c93a5f3dbaebd81c 100644
--- a/inc/geshi/ocaml.php
+++ b/inc/geshi/ocaml.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
@@ -47,10 +47,10 @@ $language_data = array (
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => "",
     'KEYWORDS' => array(
-       /* main OCaml keywords */
+        /* main OCaml keywords */
         1 => array(
             'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else',
-            'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor',
+            'end', 'exception', 'external', 'failwith', 'false', 'for', 'fun', 'function', 'functor',
             'if', 'in', 'include', 'inherit',  'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor',
             'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser',
             'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then',
@@ -68,26 +68,32 @@ $language_data = array (
             ),
         /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */
         3 => array(
-            'raise', 'invalid_arg', 'failwith', 'compare', 'min', 'max', 'succ', 'pred', 'mod', 'abs',
-            'max_int', 'min_int', 'sqrt', 'exp', 'log', 'log10', 'cos', 'sin', 'tan', 'acos', 'asin',
-            'atan', 'atan2', 'cosh', 'sinh', 'tanh', 'ceil', 'floor', 'abs_float', 'mod_float', 'frexp',
-            'ldexp', 'modf', 'float', 'float_of_int', 'truncate', 'int_of_float', 'infinity', 'nan',
-            'max_float', 'min_float', 'epsilon_float', 'classify_float', 'int_of_char', 'char_of_int',
-            'ignore', 'string_of_bool', 'bool_of_string', 'string_of_int', 'int_of_string',
-            'string_of_float', 'float_of_string', 'fst', 'snd', 'stdin', 'stdout', 'stderr', 'print_char',
-            'print_string', 'print_int', 'print_float', 'print_endline', 'print_newline', 'prerr_char',
-            'prerr_string', 'prerr_int', 'prerr_float', 'prerr_endline', 'prerr_newline', 'read_line',
-            'read_int', 'read_float', 'open_out', 'open_out_bin', 'open_out_gen', 'flush', 'flush_all',
-            'output_char', 'output_string', 'output', 'output_byte', 'output_binary_int', 'output_value',
-            'seek_out', 'pos_out',  'out_channel_length', 'close_out', 'close_out_noerr', 'set_binary_mode_out',
-            'open_in', 'open_in_bin', 'open_in_gen', 'input_char', 'input_line', 'input', 'really_input',
-            'input_byte', 'input_binary_int', 'input_value', 'seek_in', 'pos_in', 'in_channel_length',
-            'close_in', 'close_in_noerr', 'set_binary_mode_in', 'incr', 'decr', 'string_of_format',
-            'format_of_string', 'exit', 'at_exit'
+            'abs', 'abs_float', 'acos', 'asin', 'at_exit', 'atan', 'atan2',
+            'bool_of_string', 'ceil', 'char_of_int', 'classify_float',
+            'close_in', 'close_in_noerr', 'close_out', 'close_out_noerr',
+            'compare', 'cos', 'cosh', 'decr', 'epsilon_float', 'exit', 'exp',
+            'float', 'float_of_int', 'float_of_string', 'floor', 'flush',
+            'flush_all', 'format_of_string', 'frexp', 'fst', 'ignore',
+            'in_channel_length', 'infinity', 'input', 'input_binary_int',
+            'input_byte', 'input_char', 'input_line', 'input_value',
+            'int_of_char', 'int_of_float', 'int_of_string', 'invalid_arg',
+            'ldexp', 'log', 'log10', 'max', 'max_float', 'max_int', 'min',
+            'min_float', 'min_int', 'mod_float', 'modf', 'nan', 'open_in',
+            'open_in_bin', 'open_in_gen', 'open_out', 'open_out_bin',
+            'open_out_gen', 'out_channel_length', 'output', 'output_binary_int',
+            'output_byte', 'output_char', 'output_string', 'output_value',
+            'pos_in', 'pos_out',  'pred', 'prerr_char', 'prerr_endline',
+            'prerr_float', 'prerr_int', 'prerr_newline', 'prerr_string',
+            'print_char', 'print_endline', 'print_float', 'print_int',
+            'print_newline', 'print_string', 'read_float', 'read_int',
+            'read_line', 'really_input', 'seek_in', 'seek_out',
+            'set_binary_mode_in', 'set_binary_mode_out', 'sin', 'sinh', 'snd',
+            'sqrt', 'string_of_bool', 'string_of_float', 'string_of_format',
+            'string_of_int', 'succ', 'tan', 'tanh', 'truncate'
             ),
         /* here Pervasives Types */
         4 => array (
-            'fpclass', 'in_channel', 'out_channel', 'open_flag', 'Sys_error', 'ref', 'format'
+            'fpclass', 'in_channel', 'out_channel', 'open_flag', 'Sys_error', 'format'
             ),
         /* finally Pervasives Exceptions */
         5 => array (
diff --git a/inc/geshi/oobas.php b/inc/geshi/oobas.php
index 824bb42d7a346473a451b368e30cf99d73820ce3..5ca65cdcdf90e34c82e50b8113d41ba0f7321c0b 100644
--- a/inc/geshi/oobas.php
+++ b/inc/geshi/oobas.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * OpenOffice.org Basic language file for GeSHi.
diff --git a/inc/geshi/oracle11.php b/inc/geshi/oracle11.php
new file mode 100644
index 0000000000000000000000000000000000000000..7d267b1e45dacf94845b2d93ab649867ecf465fd
--- /dev/null
+++ b/inc/geshi/oracle11.php
@@ -0,0 +1,614 @@
+<?php
+/*************************************************************************************
+ * oracle11.php
+ * -----------
+ * Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
+ * Contributions:
+ * - Updated for 11i by Simon Redhead
+ * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.3
+ * Date Started: 2004/06/04
+ *
+ * Oracle 11i language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/04/08 (1.0.8)
+ *  -  SR changes to oracle8.php to support Oracle 11i reserved words.
+ * 2005/01/29 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2004/11/27)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Oracle 11 SQL',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array("'", '"', '`'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+//Put your package names here - e.g. select distinct ''''|| lower(name) || ''',' from user_source;
+//        6 => array(
+//            ),
+
+//Put your table names here - e.g. select distinct ''''|| lower(table_name) || ''',' from user_tables;
+//        5 => array(
+//            ),
+
+//Put your view names here - e.g. select distinct ''''|| lower(view_name) || ''',' from user_views;
+//        4 => array(
+//            ),
+
+//Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns;
+//        3 => array(
+//            ),
+
+        //Put ORACLE reserved keywords here (11i).  I like mine uppercase.
+        1 => array(
+            'ABS',
+            'ACCESS',
+            'ACOS',
+            'ADD',
+            'ADD_MONTHS',
+            'ALL',
+            'ALTER',
+            'ANALYZE',
+            'AND',
+            'ANY',
+            'APPENDCHILDXML',
+            'ARRAY',
+            'AS',
+            'ASC',
+            'ASCII',
+            'ASCIISTR',
+            'ASIN',
+            'ASSOCIATE',
+            'AT',
+            'ATAN',
+            'ATAN2',
+            'AUDIT',
+            'AUTHID',
+            'AVG',
+            'BEGIN',
+            'BETWEEN',
+            'BFILENAME',
+            'BIN_TO_NUM',
+            'BINARY_INTEGER',
+            'BITAND',
+            'BODY',
+            'BOOLEAN',
+            'BULK',
+            'BY',
+            'CALL',
+            'CARDINALITY',
+            'CASCADE',
+            'CASE',
+            'CAST',
+            'CEIL',
+            'CHAR',
+            'CHAR_BASE',
+            'CHARTOROWID',
+            'CHECK',
+            'CHR',
+            'CLOSE',
+            'CLUSTER',
+            'CLUSTER_ID',
+            'CLUSTER_PROBABILITY',
+            'CLUSTER_SET',
+            'COALESCE',
+            'COLLECT',
+            'COLUMN',
+            'COMMENT',
+            'COMMIT',
+            'COMPOSE',
+            'COMPRESS',
+            'CONCAT',
+            'CONNECT',
+            'CONSTANT',
+            'CONSTRAINT',
+            'CONSTRAINTS',
+            'CONTEXT',
+            'CONTROLFILE',
+            'CONVERT',
+            'CORR',
+            'CORR_K',
+            'CORR_S',
+            'COS',
+            'COSH',
+            'COST',
+            'COUNT',
+            'COVAR_POP',
+            'COVAR_SAMP',
+            'CREATE',
+            'CUBE_TABLE',
+            'CUME_DIST',
+            'CURRENT',
+            'CURRENT_DATE',
+            'CURRENT_TIMESTAMP',
+            'CURRVAL',
+            'CURSOR',
+            'CV',
+            'DATABASE',
+            'DATAOBJ_TO_PARTITION',
+            'DATE',
+            'DAY',
+            'DBTIMEZONE',
+            'DECIMAL',
+            'DECLARE',
+            'DECODE',
+            'DECOMPOSE',
+            'DEFAULT',
+            'DELETE',
+            'DELETEXML',
+            'DENSE_RANK',
+            'DEPTH',
+            'DEREF',
+            'DESC',
+            'DIMENSION',
+            'DIRECTORY',
+            'DISASSOCIATE',
+            'DISTINCT',
+            'DO',
+            'DROP',
+            'DUMP',
+            'ELSE',
+            'ELSIF',
+            'EMPTY_BLOB',
+            'EMPTY_CLOB',
+            'END',
+            'EXCEPTION',
+            'EXCLUSIVE',
+            'EXEC',
+            'EXECUTE',
+            'EXISTS',
+            'EXISTSNODE',
+            'EXIT',
+            'EXP',
+            'EXPLAIN',
+            'EXTENDS',
+            'EXTRACT',
+            'EXTRACTVALUE',
+            'FALSE',
+            'FEATURE_ID',
+            'FEATURE_SET',
+            'FEATURE_VALUE',
+            'FETCH',
+            'FILE',
+            'FIRST',
+            'FIRST_VALUE',
+            'FLOAT',
+            'FLOOR',
+            'FOR',
+            'FORALL',
+            'FROM',
+            'FROM_TZ',
+            'FUNCTION',
+            'GOTO',
+            'GRANT',
+            'GREATEST',
+            'GROUP',
+            'GROUP_ID',
+            'GROUPING',
+            'GROUPING_ID',
+            'HAVING',
+            'HEAP',
+            'HEXTORAW',
+            'HOUR',
+            'IDENTIFIED',
+            'IF',
+            'IMMEDIATE',
+            'IN',
+            'INCREMENT',
+            'INDEX',
+            'INDEXTYPE',
+            'INDICATOR',
+            'INITCAP',
+            'INITIAL',
+            'INSERT',
+            'INSERTCHILDXML',
+            'INSERTXMLBEFORE',
+            'INSTR',
+            'INSTRB',
+            'INTEGER',
+            'INTERFACE',
+            'INTERSECT',
+            'INTERVAL',
+            'INTO',
+            'IS',
+            'ISOLATION',
+            'ITERATION_NUMBER',
+            'JAVA',
+            'KEY',
+            'LAG',
+            'LAST',
+            'LAST_DAY',
+            'LAST_VALUE',
+            'LEAD',
+            'LEAST',
+            'LENGTH',
+            'LENGTHB',
+            'LEVEL',
+            'LIBRARY',
+            'LIKE',
+            'LIMITED',
+            'LINK',
+            'LN',
+            'LNNVL',
+            'LOCALTIMESTAMP',
+            'LOCK',
+            'LOG',
+            'LONG',
+            'LOOP',
+            'LOWER',
+            'LPAD',
+            'LTRIM',
+            'MAKE_REF',
+            'MATERIALIZED',
+            'MAX',
+            'MAXEXTENTS',
+            'MEDIAN',
+            'MIN',
+            'MINUS',
+            'MINUTE',
+            'MLSLABEL',
+            'MOD',
+            'MODE',
+            'MODIFY',
+            'MONTH',
+            'MONTHS_BETWEEN',
+            'NANVL',
+            'NATURAL',
+            'NATURALN',
+            'NCHR',
+            'NEW',
+            'NEW_TIME',
+            'NEXT_DAY',
+            'NEXTVAL',
+            'NLS_CHARSET_DECL_LEN',
+            'NLS_CHARSET_ID',
+            'NLS_CHARSET_NAME',
+            'NLS_INITCAP',
+            'NLS_LOWER',
+            'NLS_UPPER',
+            'NLSSORT',
+            'NOAUDIT',
+            'NOCOMPRESS',
+            'NOCOPY',
+            'NOT',
+            'NOWAIT',
+            'NTILE',
+            'NULL',
+            'NULLIF',
+            'NUMBER',
+            'NUMBER_BASE',
+            'NUMTODSINTERVAL',
+            'NUMTOYMINTERVAL',
+            'NVL',
+            'NVL2',
+            'OCIROWID',
+            'OF',
+            'OFFLINE',
+            'ON',
+            'ONLINE',
+            'OPAQUE',
+            'OPEN',
+            'OPERATOR',
+            'OPTION',
+            'OR',
+            'ORA_HASH',
+            'ORDER',
+            'ORGANIZATION',
+            'OTHERS',
+            'OUT',
+            'OUTLINE',
+            'PACKAGE',
+            'PARTITION',
+            'PATH',
+            'PCTFREE',
+            'PERCENT_RANK',
+            'PERCENTILE_CONT',
+            'PERCENTILE_DISC',
+            'PLAN',
+            'PLS_INTEGER',
+            'POSITIVE',
+            'POSITIVEN',
+            'POWER',
+            'POWERMULTISET',
+            'POWERMULTISET_BY_CARDINALITY',
+            'PRAGMA',
+            'PREDICTION',
+            'PREDICTION_BOUNDS',
+            'PREDICTION_COST',
+            'PREDICTION_DETAILS',
+            'PREDICTION_PROBABILITY',
+            'PREDICTION_SET',
+            'PRESENTNNV',
+            'PRESENTV',
+            'PREVIOUS',
+            'PRIMARY',
+            'PRIOR',
+            'PRIVATE',
+            'PRIVILEGES',
+            'PROCEDURE',
+            'PROFILE',
+            'PUBLIC',
+            'RAISE',
+            'RANGE',
+            'RANK',
+            'RATIO_TO_REPORT',
+            'RAW',
+            'RAWTOHEX',
+            'RAWTONHEX',
+            'REAL',
+            'RECORD',
+            'REF',
+            'REFTOHEX',
+            'REGEXP_COUNT',
+            'REGEXP_INSTR',
+            'REGEXP_REPLACE',
+            'REGEXP_SUBSTR',
+            'REGR_AVGX',
+            'REGR_AVGY',
+            'REGR_COUNT',
+            'REGR_INTERCEPT',
+            'REGR_R2',
+            'REGR_SLOPE',
+            'REGR_SXX',
+            'REGR_SXY',
+            'REGR_SYY',
+            'RELEASE',
+            'REMAINDER',
+            'RENAME',
+            'REPLACE',
+            'RESOURCE',
+            'RETURN',
+            'RETURNING',
+            'REVERSE',
+            'REVOKE',
+            'ROLE',
+            'ROLLBACK',
+            'ROUND',
+            'ROW',
+            'ROW_NUMBER',
+            'ROWID',
+            'ROWIDTOCHAR',
+            'ROWIDTONCHAR',
+            'ROWNUM',
+            'ROWS',
+            'ROWTYPE',
+            'RPAD',
+            'RTRIM',
+            'SAVEPOINT',
+            'SCHEMA',
+            'SCN_TO_TIMESTAMP',
+            'SECOND',
+            'SEGMENT',
+            'SELECT',
+            'SEPERATE',
+            'SEQUENCE',
+            'SESSION',
+            'SESSIONTIMEZONE',
+            'SET',
+            'SHARE',
+            'SIGN',
+            'SIN',
+            'SINH',
+            'SIZE',
+            'SMALLINT',
+            'SOUNDEX',
+            'SPACE',
+            'SQL',
+            'SQLCODE',
+            'SQLERRM',
+            'SQRT',
+            'START',
+            'STATISTICS',
+            'STATS_BINOMIAL_TEST',
+            'STATS_CROSSTAB',
+            'STATS_F_TEST',
+            'STATS_KS_TEST',
+            'STATS_MODE',
+            'STATS_MW_TEST',
+            'STATS_ONE_WAY_ANOVA',
+            'STATS_T_TEST_INDEP',
+            'STATS_T_TEST_INDEPU',
+            'STATS_T_TEST_ONE',
+            'STATS_T_TEST_PAIRED',
+            'STATS_WSR_TEST',
+            'STDDEV',
+            'STDDEV_POP',
+            'STDDEV_SAMP',
+            'STOP',
+            'SUBSTR',
+            'SUBSTRB',
+            'SUBTYPE',
+            'SUCCESSFUL',
+            'SUM',
+            'SYNONYM',
+            'SYS_CONNECT_BY_PATH',
+            'SYS_CONTEXT',
+            'SYS_DBURIGEN',
+            'SYS_EXTRACT_UTC',
+            'SYS_GUID',
+            'SYS_TYPEID',
+            'SYS_XMLAGG',
+            'SYS_XMLGEN',
+            'SYSDATE',
+            'SYSTEM',
+            'SYSTIMESTAMP',
+            'TABLE',
+            'TABLESPACE',
+            'TAN',
+            'TANH',
+            'TEMPORARY',
+            'THEN',
+            'TIME',
+            'TIMESTAMP',
+            'TIMESTAMP_TO_SCN',
+            'TIMEZONE_ABBR',
+            'TIMEZONE_HOUR',
+            'TIMEZONE_MINUTE',
+            'TIMEZONE_REGION',
+            'TIMING',
+            'TO',
+            'TO_BINARY_DOUBLE',
+            'TO_BINARY_FLOAT',
+            'TO_CHAR',
+            'TO_CLOB',
+            'TO_DATE',
+            'TO_DSINTERVAL',
+            'TO_LOB',
+            'TO_MULTI_BYTE',
+            'TO_NCHAR',
+            'TO_NCLOB',
+            'TO_NUMBER',
+            'TO_SINGLE_BYTE',
+            'TO_TIMESTAMP',
+            'TO_TIMESTAMP_TZ',
+            'TO_YMINTERVAL',
+            'TRANSACTION',
+            'TRANSLATE',
+            'TREAT',
+            'TRIGGER',
+            'TRIM',
+            'TRUE',
+            'TRUNC',
+            'TRUNCATE',
+            'TYPE',
+            'TZ_OFFSET',
+            'UI',
+            'UID',
+            'UNION',
+            'UNIQUE',
+            'UNISTR',
+            'UPDATE',
+            'UPDATEXML',
+            'UPPER',
+            'USE',
+            'USER',
+            'USERENV',
+            'USING',
+            'VALIDATE',
+            'VALUE',
+            'VALUES',
+            'VAR_POP',
+            'VAR_SAMP',
+            'VARCHAR',
+            'VARCHAR2',
+            'VARIANCE',
+            'VIEW',
+            'VSIZE',
+            'WHEN',
+            'WHENEVER',
+            'WHERE',
+            'WHILE',
+            'WIDTH_BUCKET',
+            'WITH',
+            'WORK',
+            'WRITE',
+            'XMLAGG',
+            'XMLCAST',
+            'XMLCDATA',
+            'XMLCOLATTVAL',
+            'XMLCOMMENT',
+            'XMLCONCAT',
+            'XMLDIFF',
+            'XMLELEMENT',
+            'XMLEXISTS',
+            'XMLFOREST',
+            'XMLPARSE',
+            'XMLPATCH',
+            'XMLPI',
+            'XMLQUERY',
+            'XMLROOT',
+            'XMLSEQUENCE',
+            'XMLSERIALIZE',
+            'XMLTABLE',
+            'XMLTRANSFORM',
+            'YEAR',
+            'ZONE'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '=', '<', '>', '|', '+', '-', '*', '/', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+//        3 => false,
+//        4 => false,
+//        5 => false,
+//        6 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #993333; font-weight: bold; text-transform: uppercase;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #ff0000;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+//        3 => '',
+//        4 => '',
+//        5 => '',
+//        6 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
diff --git a/inc/geshi/oracle8.php b/inc/geshi/oracle8.php
index 067d228cde0627760f6abc8ce15878ffc71ff66c..d54b1e3a8c7d24bcf4c5ef37cb01955320a2a676 100644
--- a/inc/geshi/oracle8.php
+++ b/inc/geshi/oracle8.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * Oracle 8 language file for GeSHi.
@@ -60,6 +60,7 @@ $language_data = array (
 //Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns;
 //        3 => array(
 //            ),
+
 //Put ORACLE reserved keywords here (8.1.7).  I like mine uppercase.
         1 => array(
             'ABS',
diff --git a/inc/geshi/pascal.php b/inc/geshi/pascal.php
index e553a0eb2e6f35f5448b427f0d257045a118040c..d2acd0fc870cb2b380501d623f98fef5025221d7 100644
--- a/inc/geshi/pascal.php
+++ b/inc/geshi/pascal.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Tux (tux@inamil.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/26
  *
  * Pascal language file for GeSHi.
diff --git a/inc/geshi/per.php b/inc/geshi/per.php
index d783cd70b84cca9286b52b66ab6d1df372b29246..092aae071c81e1fd8265459007092c77977e9682 100644
--- a/inc/geshi/per.php
+++ b/inc/geshi/per.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/06/03
  *
  * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/inc/geshi/perl.php b/inc/geshi/perl.php
index ce4fe9ecafe3390b2b7789e25a927f92dad19ad2..f8ac0961fcad25bc9896b5850c7ea7305096bd29 100644
--- a/inc/geshi/perl.php
+++ b/inc/geshi/perl.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/20
  *
  * Perl language file for GeSHi.
@@ -63,7 +63,7 @@ $language_data = array (
         '=for' => '=cut',
         '=encoding' => '=cut',
         '=pod' => '=cut'
-    ),
+        ),
     'COMMENT_REGEXP' => array(
         //Regular expressions
         2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
@@ -72,30 +72,31 @@ $language_data = array (
         //Heredoc
         4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
         //Predefined variables
-        5 => '/\$(\^[a-zA-Z]?|[\$`\'&_\.,+\-~:\\\\\/"\|%=\?!@<>\(\)\[\]])|@_/',
-    ),
+        5 => '/\$(\^[a-zA-Z]?|[\*\$`\'&_\.,+\-~:;\\\\\/"\|%=\?!@#<>\(\)\[\]])(?!\w)|@[_+\-]|%[!]|\$(?=\{)/',
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"','`'),
     'HARDQUOTE' => array("'", "'"),            // An optional 2-element array defining the beginning and end of a hard-quoted string
-    'HARDESCAPE' => array('\\\'',),        // Things that must still be escaped inside a hard-quoted string
-                            // If HARDQUOTE is defined, HARDESCAPE must be defined
-                            // This will not work unless the first character of each element is either in the
-                            // QUOTEMARKS array or is the ESCAPE_CHAR
+    'HARDESCAPE' => array('\\\'',),
+        // Things that must still be escaped inside a hard-quoted string
+        // If HARDQUOTE is defined, HARDESCAPE must be defined
+        // This will not work unless the first character of each element is either in the
+        // QUOTEMARKS array or is the ESCAPE_CHAR
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
             'case', 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', 'while', 'foreach', 'my',
-            'or', 'and', 'unless', 'next', 'last', 'redo', 'not', 'our',
-            'reset', 'continue','and', 'cmp', 'ne'
+            'xor', 'or', 'and', 'unless', 'next', 'last', 'redo', 'not', 'our',
+            'reset', 'continue', 'cmp', 'ne', 'eq', 'lt', 'gt', 'le', 'ge',
             ),
         2 => array(
             'use', 'sub', 'new', '__END__', '__DATA__', '__DIE__', '__WARN__', 'BEGIN',
-            'STDIN', 'STDOUT', 'STDERR'
+            'STDIN', 'STDOUT', 'STDERR', 'ARGV', 'ARGVOUT'
             ),
         3 => array(
             'abs', 'accept', 'alarm', 'atan2', 'bind', 'binmode', 'bless',
             'caller', 'chdir', 'chmod', 'chomp', 'chop', 'chown', 'chr',
-            'chroot', 'close', 'closedir', 'connect', 'continue', 'cos',
+            'chroot', 'close', 'closedir', 'connect', 'cos',
             'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die',
             'dump', 'each', 'endgrent', 'endhostent', 'endnetent', 'endprotoent',
             'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit',
@@ -107,13 +108,13 @@ $language_data = array (
             'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent',
             'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep',
             'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill',
-            'last', 'lc', 'lcfirst', 'length', 'link', 'listen', 'local',
+            'lc', 'lcfirst', 'length', 'link', 'listen', 'local',
             'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget',
-            'msgrcv', 'msgsnd', 'my', 'next', 'no', 'oct', 'open', 'opendir',
-            'ord', 'our', 'pack', 'package', 'pipe', 'pop', 'pos', 'print',
+            'msgrcv', 'msgsnd', 'no', 'oct', 'open', 'opendir',
+            'ord', 'pack', 'package', 'pipe', 'pop', 'pos', 'print',
             'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw',
             'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe',
-            'recv', 'redo', 'ref', 'rename', 'require', 'return',
+            'recv', 'ref', 'rename', 'require', 'return',
             'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek',
             'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent',
             'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent',
@@ -129,9 +130,9 @@ $language_data = array (
         ),
     'SYMBOLS' => array(
         '<', '>', '=',
-        '!', '@', '~', '&', '|',
+        '!', '@', '~', '&', '|', '^',
         '+','-', '*', '/', '%',
-        ',', ';', '?', ':'
+        ',', ';', '?', '.', ':'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -193,7 +194,7 @@ $language_data = array (
         ),
     'REGEXPS' => array(
         //Variable
-        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
+        0 => '(?:\$[\$#]?|\\\\(?:[@%*]?|\\\\*\$|&amp;)|%[$]?|@[$]?|\*[$]?|&amp;[$]?)[a-zA-Z_][a-zA-Z0-9_]*',
         //File Descriptor
         4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
         ),
@@ -204,9 +205,9 @@ $language_data = array (
         ),
     'PARSER_CONTROL' => array(
         'COMMENTS' => array(
-           'DISALLOWED_BEFORE' => '$'
+            'DISALLOWED_BEFORE' => '$'
         )
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/php-brief.php b/inc/geshi/php-brief.php
index dd9d0640e3d13a918f2c2cfac906cf97311c0a82..dd6781d5d05125b31d178ab9f8b7916d4c3c44d3 100644
--- a/inc/geshi/php-brief.php
+++ b/inc/geshi/php-brief.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/02
  *
  * PHP (brief version) language file for GeSHi.
@@ -58,8 +58,9 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'HARDQUOTE' => array("'", "'"),
     'HARDESCAPE' => array("\'"),
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
-                 GESHI_NUMBER_FLT_SCI_ZERO,
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
             'include', 'require', 'include_once', 'require_once',
@@ -68,7 +69,7 @@ $language_data = array (
             ),
         2 => array(
             'null', '__LINE__', '__FILE__',
-            'false', '&lt;?php', '&lt;?', '&lt;?=', '?&gt;', '&lt;%', '&lt;%=', '%&gt;',
+            'false', '&lt;?php',
             'true', 'var', 'default',
             'function', 'class', 'new', '&amp;new', 'public', 'private', 'interface', 'extends',
             'const', 'self'
@@ -90,11 +91,16 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '!', '@', '%', '&', '|', '/',
-        '<', '>',
-        '=', '-', '+', '*',
-        '.', ':', ',', ';'
+        1 => array(
+            '<%', '<%=', '%>', '<?', '<?=', '?>'
+            ),
+        0 => array(
+            '(', ')', '[', ']', '{', '}',
+            '!', '@', '%', '&', '|', '/',
+            '<', '>',
+            '=', '-', '+', '*',
+            '.', ':', ',', ';'
+            )
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -136,7 +142,8 @@ $language_data = array (
             2 => 'color: #004000;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #339933;'
+            0 => 'color: #339933;',
+            1 => 'color: #000000; font-weight: bold;'
             ),
         'REGEXPS' => array(
             0 => 'color: #0000ff;'
@@ -178,8 +185,8 @@ $language_data = array (
         3 => array(
             '<script language="php">' => '</script>'
             ),
-        4 => "/(<\?(?:php)?)(?:'[^']*?'|\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm",
-        5 => "/(<%)(?:'[^']*?'|\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm"
+        4 => "/(<\?(?:php)?)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm",
+        5 => "/(<%)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm"
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         0 => true,
diff --git a/inc/geshi/php.php b/inc/geshi/php.php
index 52050d58440b1d1002fda15ebafb69e6ff42936c..fc6be6c388c0404236033c3623f8b07c715cfe41 100644
--- a/inc/geshi/php.php
+++ b/inc/geshi/php.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/20
  *
  * PHP language file for GeSHi.
@@ -50,253 +50,969 @@
  *
  ************************************************************************************/
 
-$language_data = array (
+$language_data = array(
     'LANG_NAME' => 'PHP',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
     'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("\'"),
+    'HARDESCAPE' => array("'", "\\"),
+    'HARDCHAR' => "\\",
     'COMMENT_REGEXP' => array(
         //Heredoc and Nowdoc syntax
         3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+?)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
         // phpdoc comments
-        4 => '#/\*\*(?!\*).*\*/#sU'
+        4 => '#/\*\*(?![\*\/]).*\*/#sU',
+        // Advanced # handling
+        2 => "/#.*?(?:(?=\?\>)|^)/smi"
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
-                 GESHI_NUMBER_FLT_SCI_ZERO,
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{1,2}#i",
+        //Octal Char Specs
+        3 => "#\\\\[0-7]{1,3}#",
+        //String Parsing of Variable Names
+        4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i",
+        //Experimental extension supporting cascaded {${$var}} syntax
+        5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i",
+        //Format String support in ""-Strings
+        6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
-            'include', 'require', 'include_once', 'require_once',
-            'for', 'foreach', 'as', 'if', 'elseif', 'else', 'while', 'do', 'endwhile',
-            'endif', 'switch', 'case', 'endswitch', 'endfor', 'endforeach',
-            'return', 'break', 'continue'
+            'as','break','case','continue','default','do','else','elseif',
+            'endfor','endforeach','endif','endswitch','endwhile','for',
+            'foreach','if','include','include_once','require','require_once',
+            'return','switch','while',
+
+            'echo','print'
             ),
         2 => array(
-            'null', '__LINE__', '__FILE__',
-            'false', '&lt;?php', '&lt;?', '&lt;?=', '?&gt;', '&lt;%', '&lt;%=', '%&gt;',
-            '&lt;script language', '&lt;/script&gt;',
-            'true', 'var', 'default',
-            'function', 'class', 'new', '&amp;new', 'public', 'private', 'interface', 'extends', 'self', 'const',
-            '__FUNCTION__', '__CLASS__', '__METHOD__', 'PHP_VERSION',
-            'PHP_OS', 'DEFAULT_INCLUDE_PATH', 'PEAR_INSTALL_DIR', 'PEAR_EXTENSION_DIR',
-            'PHP_EXTENSION_DIR', 'PHP_BINDIR', 'PHP_LIBDIR', 'PHP_DATADIR', 'PHP_SYSCONFDIR',
-            'PHP_LOCALSTATEDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_OUTPUT_HANDLER_START', 'PHP_OUTPUT_HANDLER_CONT',
-            'PHP_OUTPUT_HANDLER_END', 'E_ERROR', 'E_WARNING', 'E_PARSE', 'E_NOTICE',
-            'E_CORE_ERROR', 'E_CORE_WARNING', 'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_USER_ERROR',
-            'E_USER_WARNING', 'E_USER_NOTICE', 'E_ALL', 'E_STRICT'
+            '&amp;new','&lt;/script&gt;','&lt;?php','&lt;script language',
+            'class','const','declare','extends','function','global','interface',
+            'namespace','new','private','public','self','var'
             ),
         3 => array(
-            'zlib_get_coding_type','zend_version','zend_logo_guid','yp_order','yp_next',
-            'yp_match','yp_master','yp_get_default_domain','yp_first','yp_errno','yp_err_string',
-            'yp_cat','yp_all','xml_set_unparsed_entity_decl_handler','xml_set_start_namespace_decl_handler','xml_set_processing_instruction_handler','xml_set_object',
-            'xml_set_notation_decl_handler','xml_set_external_entity_ref_handler','xml_set_end_namespace_decl_handler','xml_set_element_handler','xml_set_default_handler','xml_set_character_data_handler',
-            'xml_parser_set_option','xml_parser_get_option','xml_parser_free','xml_parser_create_ns','xml_parser_create','xml_parse_into_struct',
-            'xml_parse','xml_get_error_code','xml_get_current_line_number','xml_get_current_column_number','xml_get_current_byte_index','xml_error_string',
-            'wordwrap','wddx_serialize_vars','wddx_serialize_value','wddx_packet_start','wddx_packet_end','wddx_deserialize',
-            'wddx_add_vars','vsprintf','vprintf','virtual','version_compare','var_export',
-            'var_dump','utf8_encode','utf8_decode','usort','usleep','user_error',
-            'urlencode','urldecode','unserialize','unregister_tick_function','unpack','unlink',
-            'unixtojd','uniqid','umask','uksort','ucwords','ucfirst',
-            'uasort','trim','trigger_error','touch','token_name','token_get_all',
-            'tmpfile','time','textdomain','tempnam','tanh','tan',
-            'system','syslog','symlink','substr_replace','substr_count','substr',
-            'strval','strtr','strtoupper','strtotime','strtolower','strtok',
-            'strstr','strspn','strrpos','strrev','strrchr','strpos',
-            'strncmp','strncasecmp','strnatcmp','strnatcasecmp','strlen','stristr',
-            'stripslashes','stripcslashes','strip_tags','strftime','stream_wrapper_register','stream_set_write_buffer',
-            'stream_set_timeout','stream_set_blocking','stream_select','stream_register_wrapper','stream_get_meta_data','stream_filter_prepend',
-            'stream_filter_append','stream_context_set_params','stream_context_set_option','stream_context_get_options','stream_context_create','strcspn',
-            'strcoll','strcmp','strchr','strcasecmp','str_word_count','str_shuffle',
-            'str_rot13','str_replace','str_repeat','str_pad','stat','sscanf',
-            'srand','sqrt','sql_regcase','sprintf','spliti','split',
-            'soundex','sort','socket_writev','socket_write','socket_strerror','socket_shutdown',
-            'socket_setopt','socket_set_timeout','socket_set_option','socket_set_nonblock','socket_set_blocking','socket_set_block',
-            'socket_sendto','socket_sendmsg','socket_send','socket_select','socket_recvmsg','socket_recvfrom',
-            'socket_recv','socket_readv','socket_read','socket_listen','socket_last_error','socket_iovec_set',
-            'socket_iovec_free','socket_iovec_fetch','socket_iovec_delete','socket_iovec_alloc','socket_iovec_add','socket_getsockname',
-            'socket_getpeername','socket_getopt','socket_get_status','socket_get_option','socket_create_pair','socket_create_listen',
-            'socket_create','socket_connect','socket_close','socket_clear_error','socket_bind','socket_accept',
-            'sleep','sizeof','sinh','sin','similar_text','shuffle',
-            'show_source','shmop_write','shmop_size','shmop_read','shmop_open','shmop_delete',
-            'shmop_close','shm_remove_var','shm_remove','shm_put_var','shm_get_var','shm_detach',
-            'shm_attach','shell_exec','sha1_file','sha1','settype','setlocale',
-            'setcookie','set_time_limit','set_socket_blocking','set_magic_quotes_runtime','set_include_path','set_file_buffer',
-            'set_error_handler','session_write_close','session_unset','session_unregister','session_start','session_set_save_handler',
-            'session_set_cookie_params','session_save_path','session_register','session_regenerate_id','session_name','session_module_name',
-            'session_is_registered','session_id','session_get_cookie_params','session_encode','session_destroy','session_decode',
-            'session_cache_limiter','session_cache_expire','serialize','sem_remove','sem_release','sem_get',
-            'sem_acquire','rtrim','rsort','round','rmdir','rewinddir',
-            'rewind','restore_include_path','restore_error_handler','reset','rename','register_tick_function',
-            'register_shutdown_function','realpath','readlink','readgzfile','readfile','readdir',
-            'read_exif_data','rawurlencode','rawurldecode','range','rand','rad2deg',
-            'quotemeta','quoted_printable_decode','putenv','proc_open','proc_close','printf',
-            'print_r','prev','preg_split','preg_replace_callback','preg_replace','preg_quote',
-            'preg_match_all','preg_match','preg_grep','pow','posix_uname','posix_ttyname',
-            'posix_times','posix_strerror','posix_setuid','posix_setsid','posix_setpgid','posix_setgid',
-            'posix_seteuid','posix_setegid','posix_mkfifo','posix_kill','posix_isatty','posix_getuid',
-            'posix_getsid','posix_getrlimit','posix_getpwuid','posix_getpwnam','posix_getppid','posix_getpid',
-            'posix_getpgrp','posix_getpgid','posix_getlogin','posix_getgroups','posix_getgrnam','posix_getgrgid',
-            'posix_getgid','posix_geteuid','posix_getegid','posix_getcwd','posix_get_last_error','posix_errno',
-            'posix_ctermid','pos','popen','pi','phpversion','phpinfo',
-            'phpcredits','php_uname','php_sapi_name','php_logo_guid','php_ini_scanned_files','pg_update',
-            'pg_untrace','pg_unescape_bytea','pg_tty','pg_trace','pg_setclientencoding','pg_set_client_encoding',
-            'pg_send_query','pg_select','pg_result_status','pg_result_seek','pg_result_error','pg_result',
-            'pg_query','pg_put_line','pg_port','pg_ping','pg_pconnect','pg_options',
-            'pg_numrows','pg_numfields','pg_num_rows','pg_num_fields','pg_meta_data','pg_lowrite',
-            'pg_lounlink','pg_loreadall','pg_loread','pg_loopen','pg_loimport','pg_loexport',
-            'pg_locreate','pg_loclose','pg_lo_write','pg_lo_unlink','pg_lo_tell','pg_lo_seek',
-            'pg_lo_read_all','pg_lo_read','pg_lo_open','pg_lo_import','pg_lo_export','pg_lo_create',
-            'pg_lo_close','pg_last_oid','pg_last_notice','pg_last_error','pg_insert','pg_host',
-            'pg_getlastoid','pg_get_result','pg_get_pid','pg_get_notify','pg_freeresult','pg_free_result',
-            'pg_fieldtype','pg_fieldsize','pg_fieldprtlen','pg_fieldnum','pg_fieldname','pg_fieldisnull',
-            'pg_field_type','pg_field_size','pg_field_prtlen','pg_field_num','pg_field_name','pg_field_is_null',
-            'pg_fetch_row','pg_fetch_result','pg_fetch_object','pg_fetch_assoc','pg_fetch_array','pg_fetch_all',
-            'pg_exec','pg_escape_string','pg_escape_bytea','pg_errormessage','pg_end_copy','pg_delete',
-            'pg_dbname','pg_copy_to','pg_copy_from','pg_convert','pg_connection_status','pg_connection_reset',
-            'pg_connection_busy','pg_connect','pg_cmdtuples','pg_close','pg_clientencoding','pg_client_encoding',
-            'pg_cancel_query','pg_affected_rows','pfsockopen','pclose','pathinfo','passthru',
-            'parse_url','parse_str','parse_ini_file','pack','overload','output_reset_rewrite_vars',
-            'output_add_rewrite_var','ord','openssl_x509_read','openssl_x509_parse','openssl_x509_free','openssl_x509_export_to_file',
-            'openssl_x509_export','openssl_x509_checkpurpose','openssl_x509_check_private_key','openssl_verify','openssl_sign','openssl_seal',
-            'openssl_public_encrypt','openssl_public_decrypt','openssl_private_encrypt','openssl_private_decrypt','openssl_pkey_new','openssl_pkey_get_public',
-            'openssl_pkey_get_private','openssl_pkey_free','openssl_pkey_export_to_file','openssl_pkey_export','openssl_pkcs7_verify','openssl_pkcs7_sign',
-            'openssl_pkcs7_encrypt','openssl_pkcs7_decrypt','openssl_open','openssl_get_publickey','openssl_get_privatekey','openssl_free_key',
-            'openssl_error_string','openssl_csr_sign','openssl_csr_new','openssl_csr_export_to_file','openssl_csr_export','openlog',
-            'opendir','octdec','ob_start','ob_list_handlers','ob_implicit_flush','ob_iconv_handler',
-            'ob_gzhandler','ob_get_status','ob_get_level','ob_get_length','ob_get_flush','ob_get_contents',
-            'ob_get_clean','ob_flush','ob_end_flush','ob_end_clean','ob_clean','number_format',
-            'nl_langinfo','nl2br','ngettext','next','natsort','natcasesort',
-            'mysql_unbuffered_query','mysql_thread_id','mysql_tablename','mysql_table_name','mysql_stat','mysql_selectdb',
-            'mysql_select_db','mysql_result','mysql_real_escape_string','mysql_query','mysql_ping','mysql_pconnect',
-            'mysql_numrows','mysql_numfields','mysql_num_rows','mysql_num_fields','mysql_listtables','mysql_listfields',
-            'mysql_listdbs','mysql_list_tables','mysql_list_processes','mysql_list_fields','mysql_list_dbs','mysql_insert_id',
-            'mysql_info','mysql_get_server_info','mysql_get_proto_info','mysql_get_host_info','mysql_get_client_info','mysql_freeresult',
-            'mysql_free_result','mysql_fieldtype','mysql_fieldtable','mysql_fieldname','mysql_fieldlen','mysql_fieldflags',
-            'mysql_field_type','mysql_field_table','mysql_field_seek','mysql_field_name','mysql_field_len','mysql_field_flags',
-            'mysql_fetch_row','mysql_fetch_object','mysql_fetch_lengths','mysql_fetch_field','mysql_fetch_assoc','mysql_fetch_array',
-            'mysql_escape_string','mysql_error','mysql_errno','mysql_dropdb','mysql_drop_db','mysql_dbname',
-            'mysql_db_query','mysql_db_name','mysql_data_seek','mysql_createdb','mysql_create_db','mysql_connect',
-            'mysql_close','mysql_client_encoding','mysql_affected_rows','mysql','mt_srand','mt_rand',
-            'mt_getrandmax','move_uploaded_file','money_format','mktime','mkdir','min',
-            'microtime','method_exists','metaphone','memory_get_usage','md5_file','md5',
-            'mbsubstr','mbstrrpos','mbstrpos','mbstrlen','mbstrcut','mbsplit',
-            'mbregex_encoding','mberegi_replace','mberegi','mbereg_search_setpos','mbereg_search_regs','mbereg_search_pos',
-            'mbereg_search_init','mbereg_search_getregs','mbereg_search_getpos','mbereg_search','mbereg_replace','mbereg_match',
-            'mbereg','mb_substr_count','mb_substr','mb_substitute_character','mb_strwidth','mb_strtoupper',
-            'mb_strtolower','mb_strrpos','mb_strpos','mb_strlen','mb_strimwidth','mb_strcut',
-            'mb_split','mb_send_mail','mb_regex_set_options','mb_regex_encoding','mb_preferred_mime_name','mb_parse_str',
-            'mb_output_handler','mb_language','mb_internal_encoding','mb_http_output','mb_http_input','mb_get_info',
-            'mb_eregi_replace','mb_eregi','mb_ereg_search_setpos','mb_ereg_search_regs','mb_ereg_search_pos','mb_ereg_search_init',
-            'mb_ereg_search_getregs','mb_ereg_search_getpos','mb_ereg_search','mb_ereg_replace','mb_ereg_match','mb_ereg',
-            'mb_encode_numericentity','mb_encode_mimeheader','mb_detect_order','mb_detect_encoding','mb_decode_numericentity','mb_decode_mimeheader',
-            'mb_convert_variables','mb_convert_kana','mb_convert_encoding','mb_convert_case','max','mail',
-            'magic_quotes_runtime','ltrim','lstat','long2ip','log1p','log10',
-            'log','localtime','localeconv','linkinfo','link','levenshtein',
-            'lcg_value','ksort','krsort','key_exists','key','juliantojd',
-            'join','jewishtojd','jdtounix','jdtojulian','jdtojewish','jdtogregorian',
-            'jdtofrench','jdmonthname','jddayofweek','is_writeable','is_writable','is_uploaded_file',
-            'is_subclass_of','is_string','is_scalar','is_resource','is_real','is_readable',
-            'is_object','is_numeric','is_null','is_nan','is_long','is_link',
-            'is_integer','is_int','is_infinite','is_float','is_finite','is_file',
-            'is_executable','is_double','is_dir','is_callable','is_bool','is_array',
-            'is_a','iptcparse','iptcembed','ip2long','intval','ini_set',
-            'ini_restore','ini_get_all','ini_get','ini_alter','in_array','import_request_variables',
-            'implode','image_type_to_mime_type','ignore_user_abort','iconv_set_encoding','iconv_get_encoding','iconv',
-            'i18n_mime_header_encode','i18n_mime_header_decode','i18n_ja_jp_hantozen','i18n_internal_encoding','i18n_http_output','i18n_http_input',
-            'i18n_discover_encoding','i18n_convert','hypot','htmlspecialchars','htmlentities','html_entity_decode',
-            'highlight_string','highlight_file','hexdec','hebrevc','hebrev','headers_sent',
-            'header','gzwrite','gzuncompress','gztell','gzseek','gzrewind',
-            'gzread','gzputs','gzpassthru','gzopen','gzinflate','gzgetss',
-            'gzgets','gzgetc','gzfile','gzeof','gzencode','gzdeflate',
-            'gzcompress','gzclose','gregoriantojd','gmstrftime','gmmktime','gmdate',
-            'glob','gettype','gettimeofday','gettext','getservbyport','getservbyname',
-            'getrusage','getrandmax','getprotobynumber','getprotobyname','getopt','getmyuid',
-            'getmypid','getmyinode','getmygid','getmxrr','getlastmod','getimagesize',
-            'gethostbynamel','gethostbyname','gethostbyaddr','getenv','getdate','getcwd',
-            'getallheaders','get_resource_type','get_required_files','get_parent_class','get_object_vars','get_meta_tags',
-            'get_magic_quotes_runtime','get_magic_quotes_gpc','get_loaded_extensions','get_included_files','get_include_path','get_html_translation_table',
-            'get_extension_funcs','get_defined_vars','get_defined_functions','get_defined_constants','get_declared_classes','get_current_user',
-            'get_class_vars','get_class_methods','get_class','get_cfg_var','get_browser','fwrite',
-            'function_exists','func_num_args','func_get_args','func_get_arg','ftruncate','ftp_systype',
-            'ftp_ssl_connect','ftp_size','ftp_site','ftp_set_option','ftp_rmdir','ftp_rename',
-            'ftp_rawlist','ftp_quit','ftp_pwd','ftp_put','ftp_pasv','ftp_nlist',
-            'ftp_nb_put','ftp_nb_get','ftp_nb_fput','ftp_nb_fget','ftp_nb_continue','ftp_mkdir',
-            'ftp_mdtm','ftp_login','ftp_get_option','ftp_get','ftp_fput','ftp_fget',
-            'ftp_exec','ftp_delete','ftp_connect','ftp_close','ftp_chdir','ftp_cdup',
-            'ftok','ftell','fstat','fsockopen','fseek','fscanf',
-            'frenchtojd','fread','fputs','fpassthru','fopen','fnmatch',
-            'fmod','flush','floor','flock','floatval','filetype',
-            'filesize','filepro_rowcount','filepro_retrieve','filepro_fieldwidth','filepro_fieldtype','filepro_fieldname',
-            'filepro_fieldcount','filepro','fileperms','fileowner','filemtime','fileinode',
-            'filegroup','filectime','fileatime','file_get_contents','file_exists','file',
-            'fgetss','fgets','fgetcsv','fgetc','fflush','feof',
-            'fclose','ezmlm_hash','extract','extension_loaded','expm1','explode',
-            'exp','exif_thumbnail','exif_tagname','exif_read_data','exif_imagetype','exec',
-            'escapeshellcmd','escapeshellarg','error_reporting','error_log','eregi_replace','eregi',
-            'ereg_replace','ereg','end','easter_days','easter_date','each',
-            'doubleval','dngettext','dl','diskfreespace','disk_total_space','disk_free_space',
-            'dirname','dir','dgettext','deg2rad','defined','define_syslog_variables',
-            'define','decoct','dechex','decbin','debug_zval_dump','debug_backtrace',
-            'deaggregate','dcngettext','dcgettext','dba_sync','dba_replace','dba_popen',
-            'dba_optimize','dba_open','dba_nextkey','dba_list','dba_insert','dba_handlers',
-            'dba_firstkey','dba_fetch','dba_exists','dba_delete','dba_close','date',
-            'current','ctype_xdigit','ctype_upper','ctype_space','ctype_punct','ctype_print',
-            'ctype_lower','ctype_graph','ctype_digit','ctype_cntrl','ctype_alpha','ctype_alnum',
-            'crypt','create_function','crc32','count_chars','count','cosh',
-            'cos','copy','convert_cyr_string','constant','connection_status','connection_aborted',
-            'compact','closelog','closedir','clearstatcache','class_exists','chunk_split',
-            'chr','chown','chop','chmod','chgrp','checkdnsrr',
-            'checkdate','chdir','ceil','call_user_method_array','call_user_method','call_user_func_array',
-            'call_user_func','cal_to_jd','cal_info','cal_from_jd','cal_days_in_month','bzwrite',
-            'bzread','bzopen','bzflush','bzerrstr','bzerror','bzerrno',
-            'bzdecompress','bzcompress','bzclose','bindtextdomain','bindec','bind_textdomain_codeset',
-            'bin2hex','bcsub','bcsqrt','bcscale','bcpow','bcmul',
-            'bcmod','bcdiv','bccomp','bcadd','basename','base_convert',
-            'base64_encode','base64_decode','atanh','atan2','atan','assert_options',
-            'assert','asort','asinh','asin','arsort','array_walk',
-            'array_values','array_unshift','array_unique','array_sum','array_splice','array_slice',
-            'array_shift','array_search','array_reverse','array_reduce','array_rand','array_push',
-            'array_pop','array_pad','array_multisort','array_merge_recursive','array_merge','array_map',
-            'array_keys','array_key_exists','array_intersect_assoc','array_intersect','array_flip','array_filter',
-            'array_fill','array_diff_assoc','array_diff','array_count_values','array_chunk','array_change_key_case',
-            'apache_setenv','apache_response_headers','apache_request_headers','apache_note','apache_lookup_uri','apache_get_version',
-            'apache_child_terminate','aggregation_info','aggregate_properties_by_regexp','aggregate_properties_by_list','aggregate_properties','aggregate_methods_by_regexp',
-            'aggregate_methods_by_list','aggregate_methods','aggregate','addslashes','addcslashes','acosh',
-            'acos','abs','_','echo', 'print', 'global', 'static', 'exit', 'array', 'empty',
-            'eval', 'isset', 'unset', 'die', 'list'
+            'abs','acos','acosh','addcslashes','addslashes','aggregate',
+            'aggregate_methods','aggregate_methods_by_list',
+            'aggregate_methods_by_regexp','aggregate_properties',
+            'aggregate_properties_by_list','aggregate_properties_by_regexp',
+            'aggregation_info','apache_child_terminate','apache_get_modules',
+            'apache_get_version','apache_getenv','apache_lookup_uri',
+            'apache_note','apache_request_headers','apache_response_headers',
+            'apache_setenv','array','array_change_key_case','array_chunk',
+            'array_combine','array_count_values','array_diff',
+            'array_diff_assoc','array_diff_key','array_diff_uassoc',
+            'array_diff_ukey','array_fill','array_fill_keys','array_filter',
+            'array_flip','array_intersect','array_intersect_assoc',
+            'array_intersect_key','array_intersect_uassoc',
+            'array_intersect_ukey','array_key_exists','array_keys','array_map',
+            'array_merge','array_merge_recursive','array_multisort','array_pad',
+            'array_pop','array_product','array_push','array_rand',
+            'array_reduce','array_reverse','array_search','array_shift',
+            'array_slice','array_splice','array_sum','array_udiff',
+            'array_udiff_assoc','array_udiff_uassoc','array_uintersect',
+            'array_uintersect_assoc','array_uintersect_uassoc','array_unique',
+            'array_unshift','array_values','array_walk','array_walk_recursive',
+            'arsort','asin','asinh','asort','assert','assert_options','atan',
+            'atan2','atanh','base_convert','base64_decode','base64_encode',
+            'basename','bcadd','bccomp','bcdiv','bcmod','bcmul',
+            'bcompiler_load','bcompiler_load_exe','bcompiler_parse_class',
+            'bcompiler_read','bcompiler_write_class','bcompiler_write_constant',
+            'bcompiler_write_exe_footer','bcompiler_write_file',
+            'bcompiler_write_footer','bcompiler_write_function',
+            'bcompiler_write_functions_from_file','bcompiler_write_header',
+            'bcompiler_write_included_filename','bcpow','bcpowmod','bcscale',
+            'bcsqrt','bcsub','bin2hex','bindec','bindtextdomain',
+            'bind_textdomain_codeset','bitset_empty','bitset_equal',
+            'bitset_excl','bitset_fill','bitset_from_array','bitset_from_hash',
+            'bitset_from_string','bitset_in','bitset_incl',
+            'bitset_intersection','bitset_invert','bitset_is_empty',
+            'bitset_subset','bitset_to_array','bitset_to_hash',
+            'bitset_to_string','bitset_union','blenc_encrypt','bzclose',
+            'bzcompress','bzdecompress','bzerrno','bzerror','bzerrstr',
+            'bzflush','bzopen','bzread','bzwrite','cal_days_in_month',
+            'cal_from_jd','cal_info','cal_to_jd','call_user_func',
+            'call_user_func_array','call_user_method','call_user_method_array',
+            'ceil','chdir','checkdate','checkdnsrr','chgrp','chmod','chop',
+            'chown','chr','chunk_split','class_exists','class_implements',
+            'class_parents','classkit_aggregate_methods',
+            'classkit_doc_comments','classkit_import','classkit_method_add',
+            'classkit_method_copy','classkit_method_redefine',
+            'classkit_method_remove','classkit_method_rename','clearstatcache',
+            'closedir','closelog','com_create_guid','com_event_sink',
+            'com_get_active_object','com_load_typelib','com_message_pump',
+            'com_print_typeinfo','compact','confirm_phpdoc_compiled',
+            'connection_aborted','connection_status','constant',
+            'convert_cyr_string','convert_uudecode','convert_uuencode','copy',
+            'cos','cosh','count','count_chars','cpdf_add_annotation',
+            'cpdf_add_outline','cpdf_arc','cpdf_begin_text','cpdf_circle',
+            'cpdf_clip','cpdf_close','cpdf_closepath',
+            'cpdf_closepath_fill_stroke','cpdf_closepath_stroke',
+            'cpdf_continue_text','cpdf_curveto','cpdf_end_text','cpdf_fill',
+            'cpdf_fill_stroke','cpdf_finalize','cpdf_finalize_page',
+            'cpdf_global_set_document_limits','cpdf_import_jpeg','cpdf_lineto',
+            'cpdf_moveto','cpdf_newpath','cpdf_open','cpdf_output_buffer',
+            'cpdf_page_init','cpdf_rect','cpdf_restore','cpdf_rlineto',
+            'cpdf_rmoveto','cpdf_rotate','cpdf_rotate_text','cpdf_save',
+            'cpdf_save_to_file','cpdf_scale','cpdf_set_action_url',
+            'cpdf_set_char_spacing','cpdf_set_creator','cpdf_set_current_page',
+            'cpdf_set_font','cpdf_set_font_directories',
+            'cpdf_set_font_map_file','cpdf_set_horiz_scaling',
+            'cpdf_set_keywords','cpdf_set_leading','cpdf_set_page_animation',
+            'cpdf_set_subject','cpdf_set_text_matrix','cpdf_set_text_pos',
+            'cpdf_set_text_rendering','cpdf_set_text_rise','cpdf_set_title',
+            'cpdf_set_viewer_preferences','cpdf_set_word_spacing',
+            'cpdf_setdash','cpdf_setflat','cpdf_setgray','cpdf_setgray_fill',
+            'cpdf_setgray_stroke','cpdf_setlinecap','cpdf_setlinejoin',
+            'cpdf_setlinewidth','cpdf_setmiterlimit','cpdf_setrgbcolor',
+            'cpdf_setrgbcolor_fill','cpdf_setrgbcolor_stroke','cpdf_show',
+            'cpdf_show_xy','cpdf_stringwidth','cpdf_stroke','cpdf_text',
+            'cpdf_translate','crack_check','crack_closedict',
+            'crack_getlastmessage','crack_opendict','crc32','create_function',
+            'crypt','ctype_alnum','ctype_alpha','ctype_cntrl','ctype_digit',
+            'ctype_graph','ctype_lower','ctype_print','ctype_punct',
+            'ctype_space','ctype_upper','ctype_xdigit','curl_close',
+            'curl_copy_handle','curl_errno','curl_error','curl_exec',
+            'curl_getinfo','curl_init','curl_multi_add_handle',
+            'curl_multi_close','curl_multi_exec','curl_multi_getcontent',
+            'curl_multi_info_read','curl_multi_init','curl_multi_remove_handle',
+            'curl_multi_select','curl_setopt','curl_setopt_array',
+            'curl_version','current','cvsclient_connect','cvsclient_log',
+            'cvsclient_login','cvsclient_retrieve','date','date_create',
+            'date_date_set','date_default_timezone_get',
+            'date_default_timezone_set','date_format','date_isodate_set',
+            'date_modify','date_offset_get','date_parse','date_sun_info',
+            'date_sunrise','date_sunset','date_time_set','date_timezone_get',
+            'date_timezone_set','db_id_list','dba_close','dba_delete',
+            'dba_exists','dba_fetch','dba_firstkey','dba_handlers','dba_insert',
+            'dba_key_split','dba_list','dba_nextkey','dba_open','dba_optimize',
+            'dba_popen','dba_replace','dba_sync','dbase_add_record',
+            'dbase_close','dbase_create','dbase_delete_record',
+            'dbase_get_header_info','dbase_get_record',
+            'dbase_get_record_with_names','dbase_numfields','dbase_numrecords',
+            'dbase_open','dbase_pack','dbase_replace_record',
+            'dbg_get_all_contexts','dbg_get_all_module_names',
+            'dbg_get_all_source_lines','dbg_get_context_name',
+            'dbg_get_module_name','dbg_get_profiler_results',
+            'dbg_get_source_context','dblist','dbmclose','dbmdelete',
+            'dbmexists','dbmfetch','dbmfirstkey','dbminsert','dbmnextkey',
+            'dbmopen','dbmreplace','dbx_close','dbx_compare','dbx_connect',
+            'dbx_error','dbx_escape_string','dbx_fetch_row','dbx_query',
+            'dbx_sort','dcgettext','dcngettext','deaggregate','debug_backtrace',
+            'debug_zval_dump','debugbreak','decbin','dechex','decoct','define',
+            'defined','define_syslog_variables','deg2rad','dgettext','die',
+            'dio_close','dio_open','dio_read','dio_seek','dio_stat','dio_write',
+            'dir','dirname','disk_free_space','disk_total_space',
+            'diskfreespace','dl','dngettext','docblock_token_name',
+            'docblock_tokenize','dom_import_simplexml','domxml_add_root',
+            'domxml_attributes','domxml_children','domxml_doc_add_root',
+            'domxml_doc_document_element','domxml_doc_get_element_by_id',
+            'domxml_doc_get_elements_by_tagname','domxml_doc_get_root',
+            'domxml_doc_set_root','domxml_doc_validate','domxml_doc_xinclude',
+            'domxml_dump_mem','domxml_dump_mem_file','domxml_dump_node',
+            'domxml_dumpmem','domxml_elem_get_attribute',
+            'domxml_elem_set_attribute','domxml_get_attribute','domxml_getattr',
+            'domxml_html_dump_mem','domxml_new_child','domxml_new_doc',
+            'domxml_new_xmldoc','domxml_node','domxml_node_add_namespace',
+            'domxml_node_attributes','domxml_node_children',
+            'domxml_node_get_content','domxml_node_has_attributes',
+            'domxml_node_new_child','domxml_node_set_content',
+            'domxml_node_set_namespace','domxml_node_unlink_node',
+            'domxml_open_file','domxml_open_mem','domxml_parser',
+            'domxml_parser_add_chunk','domxml_parser_cdata_section',
+            'domxml_parser_characters','domxml_parser_comment',
+            'domxml_parser_end','domxml_parser_end_document',
+            'domxml_parser_end_element','domxml_parser_entity_reference',
+            'domxml_parser_get_document','domxml_parser_namespace_decl',
+            'domxml_parser_processing_instruction',
+            'domxml_parser_start_document','domxml_parser_start_element',
+            'domxml_root','domxml_set_attribute','domxml_setattr',
+            'domxml_substitute_entities_default','domxml_unlink_node',
+            'domxml_version','domxml_xmltree','doubleval','each','easter_date',
+            'easter_days','empty','end','ereg','ereg_replace','eregi',
+            'eregi_replace','error_get_last','error_log','error_reporting',
+            'escapeshellarg','escapeshellcmd','eval','event_deschedule',
+            'event_dispatch','event_free','event_handle_signal',
+            'event_have_events','event_init','event_new','event_pending',
+            'event_priority_set','event_schedule','event_set','event_timeout',
+            'exec','exif_imagetype','exif_read_data','exif_tagname',
+            'exif_thumbnail','exit','exp','explode','expm1','extension_loaded',
+            'extract','ezmlm_hash','fbird_add_user','fbird_affected_rows',
+            'fbird_backup','fbird_blob_add','fbird_blob_cancel',
+            'fbird_blob_close','fbird_blob_create','fbird_blob_echo',
+            'fbird_blob_get','fbird_blob_import','fbird_blob_info',
+            'fbird_blob_open','fbird_close','fbird_commit','fbird_commit_ret',
+            'fbird_connect','fbird_db_info','fbird_delete_user','fbird_drop_db',
+            'fbird_errcode','fbird_errmsg','fbird_execute','fbird_fetch_assoc',
+            'fbird_fetch_object','fbird_fetch_row','fbird_field_info',
+            'fbird_free_event_handler','fbird_free_query','fbird_free_result',
+            'fbird_gen_id','fbird_maintain_db','fbird_modify_user',
+            'fbird_name_result','fbird_num_fields','fbird_num_params',
+            'fbird_param_info','fbird_pconnect','fbird_prepare','fbird_query',
+            'fbird_restore','fbird_rollback','fbird_rollback_ret',
+            'fbird_server_info','fbird_service_attach','fbird_service_detach',
+            'fbird_set_event_handler','fbird_trans','fbird_wait_event','fclose',
+            'fdf_add_doc_javascript','fdf_add_template','fdf_close',
+            'fdf_create','fdf_enum_values','fdf_errno','fdf_error','fdf_get_ap',
+            'fdf_get_attachment','fdf_get_encoding','fdf_get_file',
+            'fdf_get_flags','fdf_get_opt','fdf_get_status','fdf_get_value',
+            'fdf_get_version','fdf_header','fdf_next_field_name','fdf_open',
+            'fdf_open_string','fdf_remove_item','fdf_save','fdf_save_string',
+            'fdf_set_ap','fdf_set_encoding','fdf_set_file','fdf_set_flags',
+            'fdf_set_javascript_action','fdf_set_on_import_javascript',
+            'fdf_set_opt','fdf_set_status','fdf_set_submit_form_action',
+            'fdf_set_target_frame','fdf_set_value','fdf_set_version','feof',
+            'fflush','fgetc','fgetcsv','fgets','fgetss','file','file_exists',
+            'file_get_contents','file_put_contents','fileatime','filectime',
+            'filegroup','fileinode','filemtime','fileowner','fileperms',
+            'filepro','filepro_fieldcount','filepro_fieldname',
+            'filepro_fieldtype','filepro_fieldwidth','filepro_retrieve',
+            'filepro_rowcount','filesize','filetype','filter_has_var',
+            'filter_id','filter_input','filter_input_array','filter_list',
+            'filter_var','filter_var_array','finfo_buffer','finfo_close',
+            'finfo_file','finfo_open','finfo_set_flags','floatval','flock',
+            'floor','flush','fmod','fnmatch','fopen','fpassthru','fprintf',
+            'fputcsv','fputs','fread','frenchtojd','fribidi_charset_info',
+            'fribidi_get_charsets','fribidi_log2vis','fscanf','fseek',
+            'fsockopen','fstat','ftell','ftok','ftp_alloc','ftp_cdup',
+            'ftp_chdir','ftp_chmod','ftp_close','ftp_connect','ftp_delete',
+            'ftp_exec','ftp_fget','ftp_fput','ftp_get','ftp_get_option',
+            'ftp_login','ftp_mdtm','ftp_mkdir','ftp_nb_continue','ftp_nb_fget',
+            'ftp_nb_fput','ftp_nb_get','ftp_nb_put','ftp_nlist','ftp_pasv',
+            'ftp_put','ftp_pwd','ftp_quit','ftp_raw','ftp_rawlist','ftp_rename',
+            'ftp_rmdir','ftp_set_option','ftp_site','ftp_size',
+            'ftp_ssl_connect','ftp_systype','ftruncate','function_exists',
+            'func_get_arg','func_get_args','func_num_args','fwrite','gd_info',
+            'getallheaders','getcwd','getdate','getenv','gethostbyaddr',
+            'gethostbyname','gethostbynamel','getimagesize','getlastmod',
+            'getmxrr','getmygid','getmyinode','getmypid','getmyuid','getopt',
+            'getprotobyname','getprotobynumber','getrandmax','getrusage',
+            'getservbyname','getservbyport','gettext','gettimeofday','gettype',
+            'get_browser','get_cfg_var','get_class','get_class_methods',
+            'get_class_vars','get_current_user','get_declared_classes',
+            'get_defined_constants','get_defined_functions','get_defined_vars',
+            'get_extension_funcs','get_headers','get_html_translation_table',
+            'get_included_files','get_include_path','get_loaded_extensions',
+            'get_magic_quotes_gpc','get_magic_quotes_runtime','get_meta_tags',
+            'get_object_vars','get_parent_class','get_required_files',
+            'get_resource_type','glob','gmdate','gmmktime','gmp_abs','gmp_add',
+            'gmp_and','gmp_clrbit','gmp_cmp','gmp_com','gmp_div','gmp_div_q',
+            'gmp_div_qr','gmp_div_r','gmp_divexact','gmp_fact','gmp_gcd',
+            'gmp_gcdext','gmp_hamdist','gmp_init','gmp_intval','gmp_invert',
+            'gmp_jacobi','gmp_legendre','gmp_mod','gmp_mul','gmp_neg',
+            'gmp_nextprime','gmp_or','gmp_perfect_square','gmp_popcount',
+            'gmp_pow','gmp_powm','gmp_prob_prime','gmp_random','gmp_scan0',
+            'gmp_scan1','gmp_setbit','gmp_sign','gmp_sqrt','gmp_sqrtrem',
+            'gmp_strval','gmp_sub','gmp_xor','gmstrftime','gopher_parsedir',
+            'gregoriantojd','gzclose','gzcompress','gzdeflate','gzencode',
+            'gzeof','gzfile','gzgetc','gzgets','gzgetss','gzinflate','gzopen',
+            'gzpassthru','gzputs','gzread','gzrewind','gzseek','gztell',
+            'gzuncompress','gzwrite','hash','hash_algos','hash_file',
+            'hash_final','hash_hmac','hash_hmac_file','hash_init','hash_update',
+            'hash_update_file','hash_update_stream','header','headers_list',
+            'headers_sent','hebrev','hebrevc','hexdec','highlight_file',
+            'highlight_string','html_doc','html_doc_file','html_entity_decode',
+            'htmlentities','htmlspecialchars','htmlspecialchars_decode',
+            'http_build_cookie','http_build_query','http_build_str',
+            'http_build_url','http_cache_etag','http_cache_last_modified',
+            'http_chunked_decode','http_date','http_deflate','http_get',
+            'http_get_request_body','http_get_request_body_stream',
+            'http_get_request_headers','http_head','http_inflate',
+            'http_match_etag','http_match_modified','http_match_request_header',
+            'http_negotiate_charset','http_negotiate_content_type',
+            'http_negotiate_language','http_parse_cookie','http_parse_headers',
+            'http_parse_message','http_parse_params',
+            'http_persistent_handles_clean','http_persistent_handles_count',
+            'http_persistent_handles_ident','http_post_data','http_post_fields',
+            'http_put_data','http_put_file','http_put_stream','http_redirect',
+            'http_request','http_request_body_encode',
+            'http_request_method_exists','http_request_method_name',
+            'http_request_method_register','http_request_method_unregister',
+            'http_send_content_disposition','http_send_content_type',
+            'http_send_data','http_send_file','http_send_last_modified',
+            'http_send_status','http_send_stream','http_support',
+            'http_throttle','hypot','i18n_convert','i18n_discover_encoding',
+            'i18n_http_input','i18n_http_output','i18n_internal_encoding',
+            'i18n_ja_jp_hantozen','i18n_mime_header_decode',
+            'i18n_mime_header_encode','ibase_add_user','ibase_affected_rows',
+            'ibase_backup','ibase_blob_add','ibase_blob_cancel',
+            'ibase_blob_close','ibase_blob_create','ibase_blob_echo',
+            'ibase_blob_get','ibase_blob_import','ibase_blob_info',
+            'ibase_blob_open','ibase_close','ibase_commit','ibase_commit_ret',
+            'ibase_connect','ibase_db_info','ibase_delete_user','ibase_drop_db',
+            'ibase_errcode','ibase_errmsg','ibase_execute','ibase_fetch_assoc',
+            'ibase_fetch_object','ibase_fetch_row','ibase_field_info',
+            'ibase_free_event_handler','ibase_free_query','ibase_free_result',
+            'ibase_gen_id','ibase_maintain_db','ibase_modify_user',
+            'ibase_name_result','ibase_num_fields','ibase_num_params',
+            'ibase_param_info','ibase_pconnect','ibase_prepare','ibase_query',
+            'ibase_restore','ibase_rollback','ibase_rollback_ret',
+            'ibase_server_info','ibase_service_attach','ibase_service_detach',
+            'ibase_set_event_handler','ibase_trans','ibase_wait_event','iconv',
+            'iconv_get_encoding','iconv_mime_decode',
+            'iconv_mime_decode_headers','iconv_mime_encode',
+            'iconv_set_encoding','iconv_strlen','iconv_strpos','iconv_strrpos',
+            'iconv_substr','id3_get_frame_long_name','id3_get_frame_short_name',
+            'id3_get_genre_id','id3_get_genre_list','id3_get_genre_name',
+            'id3_get_tag','id3_get_version','id3_remove_tag','id3_set_tag',
+            'idate','ignore_user_abort','image_type_to_extension',
+            'image_type_to_mime_type','image2wbmp','imagealphablending',
+            'imageantialias','imagearc','imagechar','imagecharup',
+            'imagecolorallocate','imagecolorallocatealpha','imagecolorat',
+            'imagecolorclosest','imagecolorclosestalpha','imagecolordeallocate',
+            'imagecolorexact','imagecolorexactalpha','imagecolormatch',
+            'imagecolorresolve','imagecolorresolvealpha','imagecolorset',
+            'imagecolorsforindex','imagecolorstotal','imagecolortransparent',
+            'imageconvolution','imagecopy','imagecopymerge',
+            'imagecopymergegray','imagecopyresampled','imagecopyresized',
+            'imagecreate','imagecreatefromgd','imagecreatefromgd2',
+            'imagecreatefromgd2part','imagecreatefromgif','imagecreatefromjpeg',
+            'imagecreatefrompng','imagecreatefromstring','imagecreatefromwbmp',
+            'imagecreatefromxbm','imagecreatetruecolor','imagedashedline',
+            'imagedestroy','imageellipse','imagefill','imagefilledarc',
+            'imagefilledellipse','imagefilledpolygon','imagefilledrectangle',
+            'imagefilltoborder','imagefilter','imagefontheight',
+            'imagefontwidth','imageftbbox','imagefttext','imagegammacorrect',
+            'imagegd','imagegd2','imagegif','imagegrabscreen','imagegrabwindow',
+            'imageinterlace','imageistruecolor','imagejpeg','imagelayereffect',
+            'imageline','imageloadfont','imagepalettecopy','imagepng',
+            'imagepolygon','imagepsbbox','imagepsencodefont',
+            'imagepsextendfont','imagepsfreefont','imagepsloadfont',
+            'imagepsslantfont','imagepstext','imagerectangle','imagerotate',
+            'imagesavealpha','imagesetbrush','imagesetpixel','imagesetstyle',
+            'imagesetthickness','imagesettile','imagestring','imagestringup',
+            'imagesx','imagesy','imagetruecolortopalette','imagettfbbox',
+            'imagettftext','imagetypes','imagewbmp','imagexbm','imap_8bit',
+            'imap_alerts','imap_append','imap_base64','imap_binary','imap_body',
+            'imap_bodystruct','imap_check','imap_clearflag_full','imap_close',
+            'imap_create','imap_createmailbox','imap_delete',
+            'imap_deletemailbox','imap_errors','imap_expunge',
+            'imap_fetch_overview','imap_fetchbody','imap_fetchheader',
+            'imap_fetchstructure','imap_fetchtext','imap_get_quota',
+            'imap_get_quotaroot','imap_getacl','imap_getmailboxes',
+            'imap_getsubscribed','imap_header','imap_headerinfo','imap_headers',
+            'imap_last_error','imap_list','imap_listmailbox',
+            'imap_listsubscribed','imap_lsub','imap_mail','imap_mail_compose',
+            'imap_mail_copy','imap_mail_move','imap_mailboxmsginfo',
+            'imap_mime_header_decode','imap_msgno','imap_num_msg',
+            'imap_num_recent','imap_open','imap_ping','imap_qprint',
+            'imap_rename','imap_renamemailbox','imap_reopen',
+            'imap_rfc822_parse_adrlist','imap_rfc822_parse_headers',
+            'imap_rfc822_write_address','imap_savebody','imap_scan',
+            'imap_scanmailbox','imap_search','imap_set_quota','imap_setacl',
+            'imap_setflag_full','imap_sort','imap_status','imap_subscribe',
+            'imap_thread','imap_timeout','imap_uid','imap_undelete',
+            'imap_unsubscribe','imap_utf7_decode','imap_utf7_encode',
+            'imap_utf8','implode','import_request_variables','in_array',
+            'ini_alter','ini_get','ini_get_all','ini_restore','ini_set',
+            'intval','ip2long','iptcembed','iptcparse','isset','is_a',
+            'is_array','is_bool','is_callable','is_dir','is_double',
+            'is_executable','is_file','is_finite','is_float','is_infinite',
+            'is_int','is_integer','is_link','is_long','is_nan','is_null',
+            'is_numeric','is_object','is_readable','is_real','is_resource',
+            'is_scalar','is_soap_fault','is_string','is_subclass_of',
+            'is_uploaded_file','is_writable','is_writeable','iterator_apply',
+            'iterator_count','iterator_to_array','java_last_exception_clear',
+            'java_last_exception_get','jddayofweek','jdmonthname','jdtofrench',
+            'jdtogregorian','jdtojewish','jdtojulian','jdtounix','jewishtojd',
+            'join','jpeg2wbmp','json_decode','json_encode','juliantojd','key',
+            'key_exists','krsort','ksort','lcg_value','ldap_add','ldap_bind',
+            'ldap_close','ldap_compare','ldap_connect','ldap_count_entries',
+            'ldap_delete','ldap_dn2ufn','ldap_err2str','ldap_errno',
+            'ldap_error','ldap_explode_dn','ldap_first_attribute',
+            'ldap_first_entry','ldap_first_reference','ldap_free_result',
+            'ldap_get_attributes','ldap_get_dn','ldap_get_entries',
+            'ldap_get_option','ldap_get_values','ldap_get_values_len',
+            'ldap_list','ldap_mod_add','ldap_mod_del','ldap_mod_replace',
+            'ldap_modify','ldap_next_attribute','ldap_next_entry',
+            'ldap_next_reference','ldap_parse_reference','ldap_parse_result',
+            'ldap_read','ldap_rename','ldap_search','ldap_set_option',
+            'ldap_sort','ldap_start_tls','ldap_unbind','levenshtein',
+            'libxml_clear_errors','libxml_get_errors','libxml_get_last_error',
+            'libxml_set_streams_context','libxml_use_internal_errors','link',
+            'linkinfo','list','localeconv','localtime','log','log1p','log10',
+            'long2ip','lstat','ltrim','lzf_compress','lzf_decompress',
+            'lzf_optimized_for','magic_quotes_runtime','mail','max','mbereg',
+            'mberegi','mberegi_replace','mbereg_match','mbereg_replace',
+            'mbereg_search','mbereg_search_getpos','mbereg_search_getregs',
+            'mbereg_search_init','mbereg_search_pos','mbereg_search_regs',
+            'mbereg_search_setpos','mbregex_encoding','mbsplit','mbstrcut',
+            'mbstrlen','mbstrpos','mbstrrpos','mbsubstr','mb_check_encoding',
+            'mb_convert_case','mb_convert_encoding','mb_convert_kana',
+            'mb_convert_variables','mb_decode_mimeheader',
+            'mb_decode_numericentity','mb_detect_encoding','mb_detect_order',
+            'mb_encode_mimeheader','mb_encode_numericentity','mb_ereg',
+            'mb_eregi','mb_eregi_replace','mb_ereg_match','mb_ereg_replace',
+            'mb_ereg_search','mb_ereg_search_getpos','mb_ereg_search_getregs',
+            'mb_ereg_search_init','mb_ereg_search_pos','mb_ereg_search_regs',
+            'mb_ereg_search_setpos','mb_get_info','mb_http_input',
+            'mb_http_output','mb_internal_encoding','mb_language',
+            'mb_list_encodings','mb_output_handler','mb_parse_str',
+            'mb_preferred_mime_name','mb_regex_encoding','mb_regex_set_options',
+            'mb_send_mail','mb_split','mb_strcut','mb_strimwidth','mb_stripos',
+            'mb_stristr','mb_strlen','mb_strpos','mb_strrchr','mb_strrichr',
+            'mb_strripos','mb_strrpos','mb_strstr','mb_strtolower',
+            'mb_strtoupper','mb_strwidth','mb_substitute_character','mb_substr',
+            'mb_substr_count','mcrypt_cbc','mcrypt_cfb','mcrypt_create_iv',
+            'mcrypt_decrypt','mcrypt_ecb','mcrypt_enc_get_algorithms_name',
+            'mcrypt_enc_get_block_size','mcrypt_enc_get_iv_size',
+            'mcrypt_enc_get_key_size','mcrypt_enc_get_modes_name',
+            'mcrypt_enc_get_supported_key_sizes',
+            'mcrypt_enc_is_block_algorithm',
+            'mcrypt_enc_is_block_algorithm_mode','mcrypt_enc_is_block_mode',
+            'mcrypt_enc_self_test','mcrypt_encrypt','mcrypt_generic',
+            'mcrypt_generic_deinit','mcrypt_generic_end','mcrypt_generic_init',
+            'mcrypt_get_block_size','mcrypt_get_cipher_name',
+            'mcrypt_get_iv_size','mcrypt_get_key_size','mcrypt_list_algorithms',
+            'mcrypt_list_modes','mcrypt_module_close',
+            'mcrypt_module_get_algo_block_size',
+            'mcrypt_module_get_algo_key_size',
+            'mcrypt_module_get_supported_key_sizes',
+            'mcrypt_module_is_block_algorithm',
+            'mcrypt_module_is_block_algorithm_mode',
+            'mcrypt_module_is_block_mode','mcrypt_module_open',
+            'mcrypt_module_self_test','mcrypt_ofb','md5','md5_file',
+            'mdecrypt_generic','memcache_add','memcache_add_server',
+            'memcache_close','memcache_connect','memcache_debug',
+            'memcache_decrement','memcache_delete','memcache_flush',
+            'memcache_get','memcache_get_extended_stats',
+            'memcache_get_server_status','memcache_get_stats',
+            'memcache_get_version','memcache_increment','memcache_pconnect',
+            'memcache_replace','memcache_set','memcache_set_compress_threshold',
+            'memcache_set_server_params','memory_get_peak_usage',
+            'memory_get_usage','metaphone','mhash','mhash_count',
+            'mhash_get_block_size','mhash_get_hash_name','mhash_keygen_s2k',
+            'method_exists','microtime','mime_content_type','min',
+            'ming_keypress','ming_setcubicthreshold','ming_setscale',
+            'ming_useconstants','ming_useswfversion','mkdir','mktime',
+            'money_format','move_uploaded_file','msql','msql_affected_rows',
+            'msql_close','msql_connect','msql_create_db','msql_createdb',
+            'msql_data_seek','msql_db_query','msql_dbname','msql_drop_db',
+            'msql_dropdb','msql_error','msql_fetch_array','msql_fetch_field',
+            'msql_fetch_object','msql_fetch_row','msql_field_flags',
+            'msql_field_len','msql_field_name','msql_field_seek',
+            'msql_field_table','msql_field_type','msql_fieldflags',
+            'msql_fieldlen','msql_fieldname','msql_fieldtable','msql_fieldtype',
+            'msql_free_result','msql_freeresult','msql_list_dbs',
+            'msql_list_fields','msql_list_tables','msql_listdbs',
+            'msql_listfields','msql_listtables','msql_num_fields',
+            'msql_num_rows','msql_numfields','msql_numrows','msql_pconnect',
+            'msql_query','msql_regcase','msql_result','msql_select_db',
+            'msql_selectdb','msql_tablename','mssql_bind','mssql_close',
+            'mssql_connect','mssql_data_seek','mssql_execute',
+            'mssql_fetch_array','mssql_fetch_assoc','mssql_fetch_batch',
+            'mssql_fetch_field','mssql_fetch_object','mssql_fetch_row',
+            'mssql_field_length','mssql_field_name','mssql_field_seek',
+            'mssql_field_type','mssql_free_result','mssql_free_statement',
+            'mssql_get_last_message','mssql_guid_string','mssql_init',
+            'mssql_min_error_severity','mssql_min_message_severity',
+            'mssql_next_result','mssql_num_fields','mssql_num_rows',
+            'mssql_pconnect','mssql_query','mssql_result','mssql_rows_affected',
+            'mssql_select_db','mt_getrandmax','mt_rand','mt_srand','mysql',
+            'mysql_affected_rows','mysql_client_encoding','mysql_close',
+            'mysql_connect','mysql_createdb','mysql_create_db',
+            'mysql_data_seek','mysql_dbname','mysql_db_name','mysql_db_query',
+            'mysql_dropdb','mysql_drop_db','mysql_errno','mysql_error',
+            'mysql_escape_string','mysql_fetch_array','mysql_fetch_assoc',
+            'mysql_fetch_field','mysql_fetch_lengths','mysql_fetch_object',
+            'mysql_fetch_row','mysql_fieldflags','mysql_fieldlen',
+            'mysql_fieldname','mysql_fieldtable','mysql_fieldtype',
+            'mysql_field_flags','mysql_field_len','mysql_field_name',
+            'mysql_field_seek','mysql_field_table','mysql_field_type',
+            'mysql_freeresult','mysql_free_result','mysql_get_client_info',
+            'mysql_get_host_info','mysql_get_proto_info',
+            'mysql_get_server_info','mysql_info','mysql_insert_id',
+            'mysql_listdbs','mysql_listfields','mysql_listtables',
+            'mysql_list_dbs','mysql_list_fields','mysql_list_processes',
+            'mysql_list_tables','mysql_numfields','mysql_numrows',
+            'mysql_num_fields','mysql_num_rows','mysql_pconnect','mysql_ping',
+            'mysql_query','mysql_real_escape_string','mysql_result',
+            'mysql_selectdb','mysql_select_db','mysql_set_charset','mysql_stat',
+            'mysql_tablename','mysql_table_name','mysql_thread_id',
+            'mysql_unbuffered_query','mysqli_affected_rows','mysqli_autocommit',
+            'mysqli_bind_param','mysqli_bind_result','mysqli_change_user',
+            'mysqli_character_set_name','mysqli_client_encoding','mysqli_close',
+            'mysqli_commit','mysqli_connect','mysqli_connect_errno',
+            'mysqli_connect_error','mysqli_data_seek','mysqli_debug',
+            'mysqli_disable_reads_from_master','mysqli_disable_rpl_parse',
+            'mysqli_dump_debug_info','mysqli_embedded_server_end',
+            'mysqli_embedded_server_start','mysqli_enable_reads_from_master',
+            'mysqli_enable_rpl_parse','mysqli_errno','mysqli_error',
+            'mysqli_escape_string','mysqli_execute','mysqli_fetch',
+            'mysqli_fetch_array','mysqli_fetch_assoc','mysqli_fetch_field',
+            'mysqli_fetch_field_direct','mysqli_fetch_fields',
+            'mysqli_fetch_lengths','mysqli_fetch_object','mysqli_fetch_row',
+            'mysqli_field_count','mysqli_field_seek','mysqli_field_tell',
+            'mysqli_free_result','mysqli_get_charset','mysqli_get_client_info',
+            'mysqli_get_client_version','mysqli_get_host_info',
+            'mysqli_get_metadata','mysqli_get_proto_info',
+            'mysqli_get_server_info','mysqli_get_server_version',
+            'mysqli_get_warnings','mysqli_info','mysqli_init',
+            'mysqli_insert_id','mysqli_kill','mysqli_master_query',
+            'mysqli_more_results','mysqli_multi_query','mysqli_next_result',
+            'mysqli_num_fields','mysqli_num_rows','mysqli_options',
+            'mysqli_param_count','mysqli_ping','mysqli_prepare','mysqli_query',
+            'mysqli_real_connect','mysqli_real_escape_string',
+            'mysqli_real_query','mysqli_report','mysqli_rollback',
+            'mysqli_rpl_parse_enabled','mysqli_rpl_probe',
+            'mysqli_rpl_query_type','mysqli_select_db','mysqli_send_long_data',
+            'mysqli_send_query','mysqli_set_charset',
+            'mysqli_set_local_infile_default','mysqli_set_local_infile_handler',
+            'mysqli_set_opt','mysqli_slave_query','mysqli_sqlstate',
+            'mysqli_ssl_set','mysqli_stat','mysqli_stmt_affected_rows',
+            'mysqli_stmt_attr_get','mysqli_stmt_attr_set',
+            'mysqli_stmt_bind_param','mysqli_stmt_bind_result',
+            'mysqli_stmt_close','mysqli_stmt_data_seek','mysqli_stmt_errno',
+            'mysqli_stmt_error','mysqli_stmt_execute','mysqli_stmt_fetch',
+            'mysqli_stmt_field_count','mysqli_stmt_free_result',
+            'mysqli_stmt_get_warnings','mysqli_stmt_init',
+            'mysqli_stmt_insert_id','mysqli_stmt_num_rows',
+            'mysqli_stmt_param_count','mysqli_stmt_prepare','mysqli_stmt_reset',
+            'mysqli_stmt_result_metadata','mysqli_stmt_send_long_data',
+            'mysqli_stmt_sqlstate','mysqli_stmt_store_result',
+            'mysqli_store_result','mysqli_thread_id','mysqli_thread_safe',
+            'mysqli_use_result','mysqli_warning_count','natcasesort','natsort',
+            'new_xmldoc','next','ngettext','nl2br','nl_langinfo',
+            'ntuser_getdomaincontroller','ntuser_getusergroups',
+            'ntuser_getuserinfo','ntuser_getuserlist','number_format',
+            'ob_clean','ob_deflatehandler','ob_end_clean','ob_end_flush',
+            'ob_etaghandler','ob_flush','ob_get_clean','ob_get_contents',
+            'ob_get_flush','ob_get_length','ob_get_level','ob_get_status',
+            'ob_gzhandler','ob_iconv_handler','ob_implicit_flush',
+            'ob_inflatehandler','ob_list_handlers','ob_start','ob_tidyhandler',
+            'octdec','odbc_autocommit','odbc_binmode','odbc_close',
+            'odbc_close_all','odbc_columnprivileges','odbc_columns',
+            'odbc_commit','odbc_connect','odbc_cursor','odbc_data_source',
+            'odbc_do','odbc_error','odbc_errormsg','odbc_exec','odbc_execute',
+            'odbc_fetch_array','odbc_fetch_into','odbc_fetch_object',
+            'odbc_fetch_row','odbc_field_len','odbc_field_name',
+            'odbc_field_num','odbc_field_precision','odbc_field_scale',
+            'odbc_field_type','odbc_foreignkeys','odbc_free_result',
+            'odbc_gettypeinfo','odbc_longreadlen','odbc_next_result',
+            'odbc_num_fields','odbc_num_rows','odbc_pconnect','odbc_prepare',
+            'odbc_primarykeys','odbc_procedurecolumns','odbc_procedures',
+            'odbc_result','odbc_result_all','odbc_rollback','odbc_setoption',
+            'odbc_specialcolumns','odbc_statistics','odbc_tableprivileges',
+            'odbc_tables','opendir','openlog','openssl_csr_export',
+            'openssl_csr_export_to_file','openssl_csr_get_public_key',
+            'openssl_csr_get_subject','openssl_csr_new','openssl_csr_sign',
+            'openssl_error_string','openssl_free_key','openssl_get_privatekey',
+            'openssl_get_publickey','openssl_open','openssl_pkcs12_export',
+            'openssl_pkcs12_export_to_file','openssl_pkcs12_read',
+            'openssl_pkcs7_decrypt','openssl_pkcs7_encrypt',
+            'openssl_pkcs7_sign','openssl_pkcs7_verify','openssl_pkey_export',
+            'openssl_pkey_export_to_file','openssl_pkey_free',
+            'openssl_pkey_get_details','openssl_pkey_get_private',
+            'openssl_pkey_get_public','openssl_pkey_new',
+            'openssl_private_decrypt','openssl_private_encrypt',
+            'openssl_public_decrypt','openssl_public_encrypt','openssl_seal',
+            'openssl_sign','openssl_verify','openssl_x509_checkpurpose',
+            'openssl_x509_check_private_key','openssl_x509_export',
+            'openssl_x509_export_to_file','openssl_x509_free',
+            'openssl_x509_parse','openssl_x509_read','ord',
+            'output_add_rewrite_var','output_reset_rewrite_vars','overload',
+            'outputdebugstring','pack','parse_ini_file','parse_str','parse_url',
+            'parsekit_compile_file','parsekit_compile_string',
+            'parsekit_func_arginfo','parsekit_opcode_flags',
+            'parsekit_opcode_name','passthru','pathinfo','pclose',
+            'pdf_add_bookmark','pdf_add_launchlink','pdf_add_locallink',
+            'pdf_add_nameddest','pdf_add_note','pdf_add_pdflink',
+            'pdf_add_thumbnail','pdf_add_weblink','pdf_arc','pdf_arcn',
+            'pdf_attach_file','pdf_begin_font','pdf_begin_glyph',
+            'pdf_begin_page','pdf_begin_pattern','pdf_begin_template',
+            'pdf_circle','pdf_clip','pdf_close','pdf_close_image',
+            'pdf_close_pdi','pdf_close_pdi_page','pdf_closepath',
+            'pdf_closepath_fill_stroke','pdf_closepath_stroke','pdf_concat',
+            'pdf_continue_text','pdf_create_gstate','pdf_create_pvf',
+            'pdf_curveto','pdf_delete','pdf_delete_pvf','pdf_encoding_set_char',
+            'pdf_end_font','pdf_end_glyph','pdf_end_page','pdf_end_pattern',
+            'pdf_end_template','pdf_endpath','pdf_fill','pdf_fill_imageblock',
+            'pdf_fill_pdfblock','pdf_fill_stroke','pdf_fill_textblock',
+            'pdf_findfont','pdf_fit_image','pdf_fit_pdi_page',
+            'pdf_fit_textline','pdf_get_apiname','pdf_get_buffer',
+            'pdf_get_errmsg','pdf_get_errnum','pdf_get_parameter',
+            'pdf_get_pdi_parameter','pdf_get_pdi_value','pdf_get_value',
+            'pdf_initgraphics','pdf_lineto','pdf_load_font',
+            'pdf_load_iccprofile','pdf_load_image','pdf_makespotcolor',
+            'pdf_moveto','pdf_new','pdf_open_ccitt','pdf_open_file',
+            'pdf_open_image','pdf_open_image_file','pdf_open_pdi',
+            'pdf_open_pdi_page','pdf_place_image','pdf_place_pdi_page',
+            'pdf_process_pdi','pdf_rect','pdf_restore','pdf_rotate','pdf_save',
+            'pdf_scale','pdf_set_border_color','pdf_set_border_dash',
+            'pdf_set_border_style','pdf_set_gstate','pdf_set_info',
+            'pdf_set_parameter','pdf_set_text_pos','pdf_set_value',
+            'pdf_setcolor','pdf_setdash','pdf_setdashpattern','pdf_setflat',
+            'pdf_setfont','pdf_setlinecap','pdf_setlinejoin','pdf_setlinewidth',
+            'pdf_setmatrix','pdf_setmiterlimit','pdf_setpolydash','pdf_shading',
+            'pdf_shading_pattern','pdf_shfill','pdf_show','pdf_show_boxed',
+            'pdf_show_xy','pdf_skew','pdf_stringwidth','pdf_stroke',
+            'pdf_translate','pdo_drivers','pfsockopen','pg_affected_rows',
+            'pg_cancel_query','pg_clientencoding','pg_client_encoding',
+            'pg_close','pg_cmdtuples','pg_connect','pg_connection_busy',
+            'pg_connection_reset','pg_connection_status','pg_convert',
+            'pg_copy_from','pg_copy_to','pg_dbname','pg_delete','pg_end_copy',
+            'pg_errormessage','pg_escape_bytea','pg_escape_string','pg_exec',
+            'pg_execute','pg_fetch_all','pg_fetch_all_columns','pg_fetch_array',
+            'pg_fetch_assoc','pg_fetch_object','pg_fetch_result','pg_fetch_row',
+            'pg_fieldisnull','pg_fieldname','pg_fieldnum','pg_fieldprtlen',
+            'pg_fieldsize','pg_fieldtype','pg_field_is_null','pg_field_name',
+            'pg_field_num','pg_field_prtlen','pg_field_size','pg_field_table',
+            'pg_field_type','pg_field_type_oid','pg_free_result',
+            'pg_freeresult','pg_get_notify','pg_get_pid','pg_get_result',
+            'pg_getlastoid','pg_host','pg_insert','pg_last_error',
+            'pg_last_notice','pg_last_oid','pg_loclose','pg_locreate',
+            'pg_loexport','pg_loimport','pg_loopen','pg_loread','pg_loreadall',
+            'pg_lounlink','pg_lowrite','pg_lo_close','pg_lo_create',
+            'pg_lo_export','pg_lo_import','pg_lo_open','pg_lo_read',
+            'pg_lo_read_all','pg_lo_seek','pg_lo_tell','pg_lo_unlink',
+            'pg_lo_write','pg_meta_data','pg_numfields','pg_numrows',
+            'pg_num_fields','pg_num_rows','pg_options','pg_parameter_status',
+            'pg_pconnect','pg_ping','pg_port','pg_prepare','pg_put_line',
+            'pg_query','pg_query_params','pg_result','pg_result_error',
+            'pg_result_error_field','pg_result_seek','pg_result_status',
+            'pg_select','pg_send_execute','pg_send_prepare','pg_send_query',
+            'pg_send_query_params','pg_set_client_encoding',
+            'pg_set_error_verbosity','pg_setclientencoding','pg_trace',
+            'pg_transaction_status','pg_tty','pg_unescape_bytea','pg_untrace',
+            'pg_update','pg_version','php_egg_logo_guid','php_ini_loaded_file',
+            'php_ini_scanned_files','php_logo_guid','php_real_logo_guid',
+            'php_sapi_name','php_strip_whitespace','php_uname','phpcredits',
+            'phpdoc_xml_from_string','phpinfo','phpversion','pi','png2wbmp',
+            'pop3_close','pop3_delete_message','pop3_get_account_size',
+            'pop3_get_message','pop3_get_message_count',
+            'pop3_get_message_header','pop3_get_message_ids',
+            'pop3_get_message_size','pop3_get_message_sizes','pop3_open',
+            'pop3_undelete','popen','pos','posix_ctermid','posix_errno',
+            'posix_getcwd','posix_getegid','posix_geteuid','posix_getgid',
+            'posix_getgrgid','posix_getgrnam','posix_getgroups',
+            'posix_getlogin','posix_getpgid','posix_getpgrp','posix_getpid',
+            'posix_getppid','posix_getpwnam','posix_getpwuid','posix_getrlimit',
+            'posix_getsid','posix_getuid','posix_get_last_error','posix_isatty',
+            'posix_kill','posix_mkfifo','posix_setegid','posix_seteuid',
+            'posix_setgid','posix_setpgid','posix_setsid','posix_setuid',
+            'posix_strerror','posix_times','posix_ttyname','posix_uname','pow',
+            'preg_grep','preg_last_error','preg_match','preg_match_all',
+            'preg_quote','preg_replace','preg_replace_callback','preg_split',
+            'prev','print_r','printf','proc_close','proc_get_status',
+            'proc_open','proc_terminate','putenv','quoted_printable_decode',
+            'quotemeta','rad2deg','radius_acct_open','radius_add_server',
+            'radius_auth_open','radius_close','radius_config',
+            'radius_create_request','radius_cvt_addr','radius_cvt_int',
+            'radius_cvt_string','radius_demangle','radius_demangle_mppe_key',
+            'radius_get_attr','radius_get_vendor_attr','radius_put_addr',
+            'radius_put_attr','radius_put_int','radius_put_string',
+            'radius_put_vendor_addr','radius_put_vendor_attr',
+            'radius_put_vendor_int','radius_put_vendor_string',
+            'radius_request_authenticator','radius_send_request',
+            'radius_server_secret','radius_strerror','rand','range',
+            'rawurldecode','rawurlencode','read_exif_data','readdir','readfile',
+            'readgzfile','readlink','realpath','reg_close_key','reg_create_key',
+            'reg_enum_key','reg_enum_value','reg_get_value','reg_open_key',
+            'reg_set_value','register_shutdown_function',
+            'register_tick_function','rename','res_close','res_get','res_list',
+            'res_list_type','res_open','res_set','reset',
+            'restore_error_handler','restore_include_path','rewind','rewinddir',
+            'rmdir','round','rsort','rtrim','runkit_class_adopt',
+            'runkit_class_emancipate','runkit_constant_add',
+            'runkit_constant_redefine','runkit_constant_remove',
+            'runkit_default_property_add','runkit_function_add',
+            'runkit_function_copy','runkit_function_redefine',
+            'runkit_function_remove','runkit_function_rename','runkit_import',
+            'runkit_lint','runkit_lint_file','runkit_method_add',
+            'runkit_method_copy','runkit_method_redefine',
+            'runkit_method_remove','runkit_method_rename','runkit_object_id',
+            'runkit_return_value_used','runkit_sandbox_output_handler',
+            'runkit_superglobals','runkit_zval_inspect','scandir','sem_acquire',
+            'sem_get','sem_release','sem_remove','serialize',
+            'session_cache_expire','session_cache_limiter','session_commit',
+            'session_decode','session_destroy','session_encode',
+            'session_get_cookie_params','session_id','session_is_registered',
+            'session_module_name','session_name','session_regenerate_id',
+            'session_register','session_save_path','session_set_cookie_params',
+            'session_set_save_handler','session_start','session_unregister',
+            'session_unset','session_write_close','set_content',
+            'set_error_handler','set_file_buffer','set_include_path',
+            'set_magic_quotes_runtime','set_socket_blocking','set_time_limit',
+            'setcookie','setlocale','setrawcookie','settype','sha1','sha1_file',
+            'shell_exec','shmop_close','shmop_delete','shmop_open','shmop_read',
+            'shmop_size','shmop_write','shm_attach','shm_detach','shm_get_var',
+            'shm_put_var','shm_remove','shm_remove_var','show_source','shuffle',
+            'similar_text','simplexml_import_dom','simplexml_load_file',
+            'simplexml_load_string','sin','sinh','sizeof','sleep','smtp_close',
+            'smtp_cmd_data','smtp_cmd_mail','smtp_cmd_rcpt','smtp_connect',
+            'snmp_get_quick_print','snmp_get_valueretrieval','snmp_read_mib',
+            'snmp_set_quick_print','snmp_set_valueretrieval','snmp2_get',
+            'snmp2_getnext','snmp2_real_walk','snmp2_set','snmp2_walk',
+            'snmp3_get','snmp3_getnext','snmp3_real_walk','snmp3_set',
+            'snmp3_walk','snmpget','snmpgetnext','snmprealwalk','snmpset',
+            'snmpwalk','snmpwalkoid','socket_accept','socket_bind',
+            'socket_clear_error','socket_close','socket_connect',
+            'socket_create','socket_create_listen','socket_create_pair',
+            'socket_getopt','socket_getpeername','socket_getsockname',
+            'socket_get_option','socket_get_status','socket_iovec_add',
+            'socket_iovec_alloc','socket_iovec_delete','socket_iovec_fetch',
+            'socket_iovec_free','socket_iovec_set','socket_last_error',
+            'socket_listen','socket_read','socket_readv','socket_recv',
+            'socket_recvfrom','socket_recvmsg','socket_select','socket_send',
+            'socket_sendmsg','socket_sendto','socket_setopt','socket_set_block',
+            'socket_set_blocking','socket_set_nonblock','socket_set_option',
+            'socket_set_timeout','socket_shutdown','socket_strerror',
+            'socket_write','socket_writev','sort','soundex','spl_autoload',
+            'spl_autoload_call','spl_autoload_extensions',
+            'spl_autoload_functions','spl_autoload_register',
+            'spl_autoload_unregister','spl_classes','spl_object_hash','split',
+            'spliti','sprintf','sql_regcase','sqlite_array_query',
+            'sqlite_busy_timeout','sqlite_changes','sqlite_close',
+            'sqlite_column','sqlite_create_aggregate','sqlite_create_function',
+            'sqlite_current','sqlite_error_string','sqlite_escape_string',
+            'sqlite_exec','sqlite_factory','sqlite_fetch_all',
+            'sqlite_fetch_array','sqlite_fetch_column_types',
+            'sqlite_fetch_object','sqlite_fetch_single','sqlite_fetch_string',
+            'sqlite_field_name','sqlite_has_more','sqlite_has_prev',
+            'sqlite_last_error','sqlite_last_insert_rowid','sqlite_libencoding',
+            'sqlite_libversion','sqlite_next','sqlite_num_fields',
+            'sqlite_num_rows','sqlite_open','sqlite_popen','sqlite_prev',
+            'sqlite_query','sqlite_rewind','sqlite_seek','sqlite_single_query',
+            'sqlite_udf_decode_binary','sqlite_udf_encode_binary',
+            'sqlite_unbuffered_query','sqlite_valid','sqrt','srand','sscanf',
+            'ssh2_auth_hostbased_file','ssh2_auth_none','ssh2_auth_password',
+            'ssh2_auth_pubkey_file','ssh2_connect','ssh2_exec',
+            'ssh2_fetch_stream','ssh2_fingerprint','ssh2_forward_accept',
+            'ssh2_forward_listen','ssh2_methods_negotiated','ssh2_poll',
+            'ssh2_publickey_add','ssh2_publickey_init','ssh2_publickey_list',
+            'ssh2_publickey_remove','ssh2_scp_recv','ssh2_scp_send','ssh2_sftp',
+            'ssh2_sftp_lstat','ssh2_sftp_mkdir','ssh2_sftp_readlink',
+            'ssh2_sftp_realpath','ssh2_sftp_rename','ssh2_sftp_rmdir',
+            'ssh2_sftp_stat','ssh2_sftp_symlink','ssh2_sftp_unlink',
+            'ssh2_shell','ssh2_tunnel','stat','stats_absolute_deviation',
+            'stats_cdf_beta','stats_cdf_binomial','stats_cdf_cauchy',
+            'stats_cdf_chisquare','stats_cdf_exponential','stats_cdf_f',
+            'stats_cdf_gamma','stats_cdf_laplace','stats_cdf_logistic',
+            'stats_cdf_negative_binomial','stats_cdf_noncentral_chisquare',
+            'stats_cdf_noncentral_f','stats_cdf_noncentral_t',
+            'stats_cdf_normal','stats_cdf_poisson','stats_cdf_t',
+            'stats_cdf_uniform','stats_cdf_weibull','stats_covariance',
+            'stats_dens_beta','stats_dens_cauchy','stats_dens_chisquare',
+            'stats_dens_exponential','stats_dens_f','stats_dens_gamma',
+            'stats_dens_laplace','stats_dens_logistic','stats_dens_normal',
+            'stats_dens_pmf_binomial','stats_dens_pmf_hypergeometric',
+            'stats_dens_pmf_negative_binomial','stats_dens_pmf_poisson',
+            'stats_dens_t','stats_dens_uniform','stats_dens_weibull',
+            'stats_harmonic_mean','stats_kurtosis','stats_rand_gen_beta',
+            'stats_rand_gen_chisquare','stats_rand_gen_exponential',
+            'stats_rand_gen_f','stats_rand_gen_funiform','stats_rand_gen_gamma',
+            'stats_rand_gen_ipoisson','stats_rand_gen_iuniform',
+            'stats_rand_gen_noncenral_f','stats_rand_gen_noncentral_chisquare',
+            'stats_rand_gen_noncentral_t','stats_rand_gen_normal',
+            'stats_rand_gen_t','stats_rand_getsd','stats_rand_ibinomial',
+            'stats_rand_ibinomial_negative','stats_rand_ignlgi',
+            'stats_rand_phrase_to_seeds','stats_rand_ranf','stats_rand_setall',
+            'stats_skew','stats_standard_deviation','stats_stat_binomial_coef',
+            'stats_stat_correlation','stats_stat_factorial',
+            'stats_stat_independent_t','stats_stat_innerproduct',
+            'stats_stat_paired_t','stats_stat_percentile','stats_stat_powersum',
+            'stats_variance','strcasecmp','strchr','strcmp','strcoll','strcspn',
+            'stream_bucket_append','stream_bucket_make_writeable',
+            'stream_bucket_new','stream_bucket_prepend','stream_context_create',
+            'stream_context_get_default','stream_context_get_options',
+            'stream_context_set_default','stream_context_set_option',
+            'stream_context_set_params','stream_copy_to_stream',
+            'stream_encoding','stream_filter_append','stream_filter_prepend',
+            'stream_filter_register','stream_filter_remove',
+            'stream_get_contents','stream_get_filters','stream_get_line',
+            'stream_get_meta_data','stream_get_transports',
+            'stream_get_wrappers','stream_is_local',
+            'stream_notification_callback','stream_register_wrapper',
+            'stream_resolve_include_path','stream_select','stream_set_blocking',
+            'stream_set_timeout','stream_set_write_buffer',
+            'stream_socket_accept','stream_socket_client',
+            'stream_socket_enable_crypto','stream_socket_get_name',
+            'stream_socket_pair','stream_socket_recvfrom',
+            'stream_socket_sendto','stream_socket_server',
+            'stream_socket_shutdown','stream_supports_lock',
+            'stream_wrapper_register','stream_wrapper_restore',
+            'stream_wrapper_unregister','strftime','stripcslashes','stripos',
+            'stripslashes','strip_tags','stristr','strlen','strnatcasecmp',
+            'strnatcmp','strpbrk','strncasecmp','strncmp','strpos','strrchr',
+            'strrev','strripos','strrpos','strspn','strstr','strtok',
+            'strtolower','strtotime','strtoupper','strtr','strval',
+            'str_ireplace','str_pad','str_repeat','str_replace','str_rot13',
+            'str_split','str_shuffle','str_word_count','substr',
+            'substr_compare','substr_count','substr_replace','svn_add',
+            'svn_auth_get_parameter','svn_auth_set_parameter','svn_cat',
+            'svn_checkout','svn_cleanup','svn_client_version','svn_commit',
+            'svn_diff','svn_export','svn_fs_abort_txn','svn_fs_apply_text',
+            'svn_fs_begin_txn2','svn_fs_change_node_prop','svn_fs_check_path',
+            'svn_fs_contents_changed','svn_fs_copy','svn_fs_delete',
+            'svn_fs_dir_entries','svn_fs_file_contents','svn_fs_file_length',
+            'svn_fs_is_dir','svn_fs_is_file','svn_fs_make_dir',
+            'svn_fs_make_file','svn_fs_node_created_rev','svn_fs_node_prop',
+            'svn_fs_props_changed','svn_fs_revision_prop',
+            'svn_fs_revision_root','svn_fs_txn_root','svn_fs_youngest_rev',
+            'svn_import','svn_info','svn_log','svn_ls','svn_repos_create',
+            'svn_repos_fs','svn_repos_fs_begin_txn_for_commit',
+            'svn_repos_fs_commit_txn','svn_repos_hotcopy','svn_repos_open',
+            'svn_repos_recover','svn_status','svn_update','symlink',
+            'sys_get_temp_dir','syslog','system','tan','tanh','tempnam',
+            'textdomain','thread_get','thread_include','thread_lock',
+            'thread_lock_try','thread_mutex_destroy','thread_mutex_init',
+            'thread_set','thread_start','thread_unlock','tidy_access_count',
+            'tidy_clean_repair','tidy_config_count','tidy_diagnose',
+            'tidy_error_count','tidy_get_body','tidy_get_config',
+            'tidy_get_error_buffer','tidy_get_head','tidy_get_html',
+            'tidy_get_html_ver','tidy_get_output','tidy_get_release',
+            'tidy_get_root','tidy_get_status','tidy_getopt','tidy_is_xhtml',
+            'tidy_is_xml','tidy_parse_file','tidy_parse_string',
+            'tidy_repair_file','tidy_repair_string','tidy_warning_count','time',
+            'timezone_abbreviations_list','timezone_identifiers_list',
+            'timezone_name_from_abbr','timezone_name_get','timezone_offset_get',
+            'timezone_open','timezone_transitions_get','tmpfile',
+            'token_get_all','token_name','touch','trigger_error',
+            'transliterate','transliterate_filters_get','trim','uasort',
+            'ucfirst','ucwords','uksort','umask','uniqid','unixtojd','unlink',
+            'unpack','unregister_tick_function','unserialize','unset',
+            'urldecode','urlencode','user_error','use_soap_error_handler',
+            'usleep','usort','utf8_decode','utf8_encode','var_dump',
+            'var_export','variant_abs','variant_add','variant_and',
+            'variant_cast','variant_cat','variant_cmp',
+            'variant_date_from_timestamp','variant_date_to_timestamp',
+            'variant_div','variant_eqv','variant_fix','variant_get_type',
+            'variant_idiv','variant_imp','variant_int','variant_mod',
+            'variant_mul','variant_neg','variant_not','variant_or',
+            'variant_pow','variant_round','variant_set','variant_set_type',
+            'variant_sub','variant_xor','version_compare','virtual','vfprintf',
+            'vprintf','vsprintf','wddx_add_vars','wddx_deserialize',
+            'wddx_packet_end','wddx_packet_start','wddx_serialize_value',
+            'wddx_serialize_vars','win_beep','win_browse_file',
+            'win_browse_folder','win_create_link','win_message_box',
+            'win_play_wav','win_shell_execute','win32_create_service',
+            'win32_delete_service','win32_get_last_control_message',
+            'win32_ps_list_procs','win32_ps_stat_mem','win32_ps_stat_proc',
+            'win32_query_service_status','win32_scheduler_delete_task',
+            'win32_scheduler_enum_tasks','win32_scheduler_get_task_info',
+            'win32_scheduler_run','win32_scheduler_set_task_info',
+            'win32_set_service_status','win32_start_service',
+            'win32_start_service_ctrl_dispatcher','win32_stop_service',
+            'wordwrap','xml_error_string','xml_get_current_byte_index',
+            'xml_get_current_column_number','xml_get_current_line_number',
+            'xml_get_error_code','xml_parse','xml_parser_create',
+            'xml_parser_create_ns','xml_parser_free','xml_parser_get_option',
+            'xml_parser_set_option','xml_parse_into_struct',
+            'xml_set_character_data_handler','xml_set_default_handler',
+            'xml_set_element_handler','xml_set_end_namespace_decl_handler',
+            'xml_set_external_entity_ref_handler',
+            'xml_set_notation_decl_handler','xml_set_object',
+            'xml_set_processing_instruction_handler',
+            'xml_set_start_namespace_decl_handler',
+            'xml_set_unparsed_entity_decl_handler','xmldoc','xmldocfile',
+            'xmlrpc_decode','xmlrpc_decode_request','xmlrpc_encode',
+            'xmlrpc_encode_request','xmlrpc_get_type','xmlrpc_is_fault',
+            'xmlrpc_parse_method_descriptions',
+            'xmlrpc_server_add_introspection_data','xmlrpc_server_call_method',
+            'xmlrpc_server_create','xmlrpc_server_destroy',
+            'xmlrpc_server_register_introspection_callback',
+            'xmlrpc_server_register_method','xmlrpc_set_type','xmltree',
+            'xmlwriter_end_attribute','xmlwriter_end_cdata',
+            'xmlwriter_end_comment','xmlwriter_end_document',
+            'xmlwriter_end_dtd','xmlwriter_end_dtd_attlist',
+            'xmlwriter_end_dtd_element','xmlwriter_end_dtd_entity',
+            'xmlwriter_end_element','xmlwriter_end_pi','xmlwriter_flush',
+            'xmlwriter_full_end_element','xmlwriter_open_memory',
+            'xmlwriter_open_uri','xmlwriter_output_memory',
+            'xmlwriter_set_indent','xmlwriter_set_indent_string',
+            'xmlwriter_start_attribute','xmlwriter_start_attribute_ns',
+            'xmlwriter_start_cdata','xmlwriter_start_comment',
+            'xmlwriter_start_document','xmlwriter_start_dtd',
+            'xmlwriter_start_dtd_attlist','xmlwriter_start_dtd_element',
+            'xmlwriter_start_dtd_entity','xmlwriter_start_element',
+            'xmlwriter_start_element_ns','xmlwriter_start_pi','xmlwriter_text',
+            'xmlwriter_write_attribute','xmlwriter_write_attribute_ns',
+            'xmlwriter_write_cdata','xmlwriter_write_comment',
+            'xmlwriter_write_dtd','xmlwriter_write_dtd_attlist',
+            'xmlwriter_write_dtd_element','xmlwriter_write_dtd_entity',
+            'xmlwriter_write_element','xmlwriter_write_element_ns',
+            'xmlwriter_write_pi','xmlwriter_write_raw','xpath_eval',
+            'xpath_eval_expression','xpath_new_context','xpath_register_ns',
+            'xpath_register_ns_auto','xptr_eval','xptr_new_context','yp_all',
+            'yp_cat','yp_errno','yp_err_string','yp_first',
+            'yp_get_default_domain','yp_master','yp_match','yp_next','yp_order',
+            'zend_current_obfuscation_level','zend_get_cfg_var','zend_get_id',
+            'zend_loader_current_file','zend_loader_enabled',
+            'zend_loader_file_encoded','zend_loader_file_licensed',
+            'zend_loader_install_license','zend_loader_version',
+            'zend_logo_guid','zend_match_hostmasks','zend_obfuscate_class_name',
+            'zend_obfuscate_function_name','zend_optimizer_version',
+            'zend_runtime_obfuscate','zend_version','zip_close',
+            'zip_entry_close','zip_entry_compressedsize',
+            'zip_entry_compressionmethod','zip_entry_filesize','zip_entry_name',
+            'zip_entry_open','zip_entry_read','zip_open','zip_read',
+            'zlib_get_coding_type'
+            ),
+        4 => array(
+            'DEFAULT_INCLUDE_PATH', 'DIRECTORY_SEPARATOR', 'E_ALL',
+            'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_CORE_ERROR',
+            'E_CORE_WARNING', 'E_ERROR', 'E_NOTICE', 'E_PARSE', 'E_STRICT',
+            'E_USER_ERROR', 'E_USER_NOTICE', 'E_USER_WARNING', 'E_WARNING',
+            'ENT_COMPAT','ENT_QUOTES','ENT_NOQUOTES',
+            'false', 'null', 'PEAR_EXTENSION_DIR', 'PEAR_INSTALL_DIR',
+            'PHP_BINDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_DATADIR',
+            'PHP_EXTENSION_DIR', 'PHP_LIBDIR',
+            'PHP_LOCALSTATEDIR', 'PHP_OS',
+            'PHP_OUTPUT_HANDLER_CONT', 'PHP_OUTPUT_HANDLER_END',
+            'PHP_OUTPUT_HANDLER_START', 'PHP_SYSCONFDIR',
+            'PHP_VERSION', 'true', '__CLASS__', '__FILE__', '__FUNCTION__',
+            '__LINE__', '__METHOD__'
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '!', '@', '%', '&', '|', '/',
-        '<', '>',
-        '=', '-', '+', '*',
-        '.', ':', ',', ';'
+        1 => array(
+            '<%', '<%=', '%>', '<?', '<?=', '?>'
+            ),
+        0 => array(
+            '(', ')', '[', ']', '{', '}',
+            '!', '@', '%', '&', '|', '/',
+            '<', '>',
+            '=', '-', '+', '*',
+            '.', ':', ',', ';'
+            )
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => false,
         2 => false,
         3 => false,
+        4 => false
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #b1b100;',
             2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #990000;'
+            3 => 'color: #990000;',
+            4 => 'color: #009900; font-weight: bold;'
             ),
         'COMMENTS' => array(
             1 => 'color: #666666; font-style: italic;',
             2 => 'color: #666666; font-style: italic;',
             3 => 'color: #0000cc; font-style: italic;',
-            4 => 'color: #0000ff; font-style: italic;',
+            4 => 'color: #009933; font-style: italic;',
             'MULTI' => 'color: #666666; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #006699; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold; font-style: italic;',
+            6 => 'color: #009933; font-weight: bold;',
             'HARD' => 'color: #000099; font-weight: bold;'
             ),
         'BRACKETS' => array(
@@ -317,7 +1033,8 @@ $language_data = array (
             2 => 'color: #004000;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #339933;'
+            0 => 'color: #339933;',
+            1 => 'color: #000000; font-weight: bold;'
             ),
         'REGEXPS' => array(
             0 => 'color: #000088;'
@@ -334,7 +1051,8 @@ $language_data = array (
     'URLS' => array(
         1 => '',
         2 => '',
-        3 => 'http://www.php.net/{FNAMEL}'
+        3 => 'http://www.php.net/{FNAMEL}',
+        4 => ''
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
@@ -359,8 +1077,8 @@ $language_data = array (
         3 => array(
             '<script language="php">' => '</script>'
             ),
-        4 => "/(<\?(?:php)?)(?:'[^']*?'|\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm",
-        5 => "/(<%)(?:'[^']*?'|\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm"
+        4 => "/(<\?(?:php)?)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm",
+        5 => "/(<%)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm"
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         0 => true,
@@ -373,4 +1091,4 @@ $language_data = array (
     'TAB_WIDTH' => 4
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/pic16.php b/inc/geshi/pic16.php
index bbe5891b329a5cd6ff282e4f9c9a736cda2d88a0..2679788962dce2af46109c14d7ecedd1f09ad8db 100644
--- a/inc/geshi/pic16.php
+++ b/inc/geshi/pic16.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Phil Mattison (mattison@ohmikron.com)
  * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/07/30
  *
  * PIC16 Assembler language file for GeSHi.
diff --git a/inc/geshi/pixelbender.php b/inc/geshi/pixelbender.php
new file mode 100644
index 0000000000000000000000000000000000000000..93da0df55103fbaf36408896a7d374d45266151b
--- /dev/null
+++ b/inc/geshi/pixelbender.php
@@ -0,0 +1,176 @@
+<?php
+/*************************************************************************************
+ * pixelbender.php
+ * ----------------
+ * Author: Richard Olsson (r@richardolsson.se)
+ * Copyright: (c) 2008 Richard Olsson (richardolsson.se)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/11/16
+ *
+ * Pixel Bender 1.0 language file for GeSHi.
+ *
+ *
+ * Please feel free to modify this file, although I would greatly appreciate
+ * it if you would then send some feedback on why the file needed to be
+ * changed, using the e-mail address above.
+ *
+ *
+ * The colors are inspired by those used in the Pixel Bender Toolkit, with
+ * some slight modifications.
+ *
+ * For more info on Pixel Bender, see the Adobe Labs Wiki article at
+ * http://labs.adobe.com/wiki/index.php/Pixel_Bender_Toolkit.
+ *
+ * Keyword groups are defined as follows (groups marked with an asterisk
+ * inherit their names from terminology used in the language specification
+ * included with the Pixel Bender Toolkit, see URL above.)
+ *
+ *  1. languageVersion & kernel keywords
+ *  2. Kernel Members *
+ *  3. Types *
+ *  4. Statements * & qualifiers (in, out, inout)
+ *  5. Built-in functions *
+ *  6. Meta-data names
+ *  7. Preprocessor & Pre-defined symbols *
+ *
+ *
+ * CHANGES
+ * -------
+ * 2008/11/16 (1.0.8.2)
+ *  - Initial release
+ *
+ * TODO (updated 2008/11/16)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'Pixel Bender 1.0',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'languageVersion', 'kernel'
+            ),
+        2 => array(
+            'import', 'parameter', 'dependent', 'const', 'input', 'output',
+            'evaluatePixel', 'evaluateDependents', 'needed', 'changed', 'generated'
+            ),
+        3 => array(
+            'bool', 'bool2', 'bool3', 'bool4', 'int', 'int2', 'int3', 'int4',
+            'float', 'float2', 'float3', 'float4', 'float2x2', 'float3x3', 'float4x4',
+            'pixel2', 'pixel3', 'pixel4', 'region', 'image1', 'image2', 'image3', 'image4',
+            'imageRef', 'void'
+            ),
+        4 => array(
+            'in', 'out', 'inout', 'if', 'else', 'for', 'while', 'do', 'break',
+            'continue', 'return'
+            ),
+        5 => array(
+            'radians', 'degrees', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'pow',
+            'exp', 'exp2', 'log', 'log2', 'sqrt', 'inverseSqrt', 'abs', 'sign', 'floor',
+            'ceil', 'fract', 'mod', 'min', 'max', 'step', 'clamp', 'mix', 'smoothStep',
+            'length', 'distance', 'dot', 'cross', 'normalize', 'matrixCompMult', 'lessThan',
+            'lessThanEqual', 'greaterThan', 'greaterThanEqual', 'equal', 'notEqual', 'any',
+            'all', 'not', 'nowhere', 'everywhere', 'transform', 'union', 'intersect',
+            'outset', 'inset', 'bounds', 'isEmpty', 'sample', 'sampleLinear', 'sampleNearest',
+            'outCoord', 'dod', 'pixelSize', 'pixelAspectRatio'
+            ),
+        6 => array(
+            'namespace', 'vendor', 'version', 'minValue', 'maxValue', 'defaultValue', 'description'
+            ),
+        7 => array(
+            '#if', '#endif', '#ifdef', '#elif', 'defined', '#define',
+            'AIF_ATI', 'AIF_NVIDIA', 'AIF_FLASH_TARGET'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '!', '%', '&', '|', '+', '-', '*', '/', '=', '<', '>', '?', ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0033ff;',
+            2 => 'color: #0033ff; font-weight: bold;',
+            3 => 'color: #0033ff;',
+            4 => 'color: #9900cc; font-weight: bold;',
+            5 => 'color: #333333;',
+            6 => 'color: #666666;',
+            7 => 'color: #990000;',
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #009900;',
+            'MULTI' => 'color: #3f5fbf;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #990000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #000000; font-weight:bold;'
+            ),
+        'METHODS' => array(
+            0 => 'color: #000000;',
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000; font-weight: bold;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array('.'),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+
+?>
diff --git a/inc/geshi/plsql.php b/inc/geshi/plsql.php
index 5caae8f8528694bebb5b6899a49b539ab84bb2b2..2f3a2b620609072dd6bd576f809814b1d160918a 100644
--- a/inc/geshi/plsql.php
+++ b/inc/geshi/plsql.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Victor Engmark <victor.engmark@gmail.com>
  * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/10/26
  *
  * Oracle 9.2 PL/SQL language file for GeSHi.
diff --git a/inc/geshi/povray.php b/inc/geshi/povray.php
index 67da8e85924a8f31ebf0aa56947a19eb2172261a..09a8b01df7bb777afe9d65c0fc858666595beb37 100644
--- a/inc/geshi/povray.php
+++ b/inc/geshi/povray.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Carl Fürstenberg (azatoth@gmail.com)
  * Copyright: © 2007 Carl Fürstenberg
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/07/11
  *
  * Povray language file for GeSHi.
diff --git a/inc/geshi/powershell.php b/inc/geshi/powershell.php
index 2544557d74571b02a12838cc1c8ddab975b73baf..5b9e16bdcb4ce12fafcc51c30e7b5d5fe59c0ccd 100644
--- a/inc/geshi/powershell.php
+++ b/inc/geshi/powershell.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Frode Aarebrot (frode@aarebrot.net)
  * Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/06/20
  *
  * PowerShell language file for GeSHi.
@@ -139,6 +139,16 @@ $language_data = array (
             '-Body', '-BinaryPathName', '-Begin', '-BackgroundColor', '-Average', '-AutoSize', '-Audit',
             '-AsString', '-AsSecureString', '-AsPlainText', '-As', '-ArgumentList', '-AppendPath', '-Append',
             '-Adjust', '-Activity', '-AclObject'
+            ),
+        6 => array(
+            '_','args','DebugPreference','Error','ErrorActionPreference',
+            'foreach','Home','Host','Input','LASTEXITCODE','MaximumAliasCount',
+            'MaximumDriveCount','MaximumFunctionCount','MaximumHistoryCount',
+            'MaximumVariableCount','OFS','PsHome',
+            'ReportErrorShowExceptionClass','ReportErrorShowInnerException',
+            'ReportErrorShowSource','ReportErrorShowStackTrace',
+            'ShouldProcessPreference','ShouldProcessReturnPreference',
+            'StackTrace','VerbosePreference','WarningPreference','PWD'
             )
         ),
     'SYMBOLS' => array(
@@ -151,7 +161,8 @@ $language_data = array (
         2 => false,
         3 => false,
         4 => false,
-        5 => false
+        5 => false,
+        6 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
@@ -160,6 +171,7 @@ $language_data = array (
             3 => 'color: #0000FF;',
             4 => 'color: #FF0000;',
             5 => 'color: #008080; font-style: italic;',
+            6 => 'color: #000080;'
             ),
         'COMMENTS' => array(
             1 => 'color: #008000;',
@@ -199,13 +211,12 @@ $language_data = array (
         3 => '',
         4 => '',
         5 => '',
+        6 => '',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
         ),
     'REGEXPS' => array(
-        // variables
-        0 => "[\\$][a-zA-Z0-9_]*",
         // special after pipe
         3 => array(
             GESHI_SEARCH => '(\[)(int|long|string|char|bool|byte|double|decimal|float|single|regex|array|xml|scriptblock|switch|hashtable|type|ref|psobject|wmi|wmisearcher|wmiclass|object)((\[.*\])?\])',
@@ -233,18 +244,36 @@ $language_data = array (
             ),
         // Special variables
         6 => array(
-            GESHI_SEARCH => '(\$)(\$|\?|\$\^|_|args|DebugPreference|Error|ErrorActionPreference|foreach|Home|Input|LASTEXITCODE|MaximumAliasCount|MaximumDriveCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|PsHome|Host|OFS|ReportErrorShowExceptionClass|ReportErrorShowInnerException|ReportErrorShowSource|ReportErrorShowStackTrace|ShouldProcessPreference|ShouldProcessReturnPreference|StackTrace|VerbosePreference|WarningPreference|PWD)',
+            GESHI_SEARCH => '(\$)(\$[_\^]?|\?)(?!\w)',
             GESHI_REPLACE => '\1\2',
             GESHI_MODIFIERS => '',
             GESHI_BEFORE => '',
-            GESHI_AFTER => '\3'
+            GESHI_AFTER => ''
             ),
+        // variables
+        //BenBE: Please note that changes here and in Keyword group 6 have to be synchronized in order to work properly.
+        //This Regexp must only match, if keyword group 6 doesn't. If this assumption fails
+        //Highlighting of the keywords will be incomplete or incorrect!
+        0 => "(?<!\\\$|>)[\\\$](?!(?:DebugPreference|Error(?:ActionPreference)?|".
+            "Ho(?:me|st)|Input|LASTEXITCODE|Maximum(?:AliasCount|DriveCount|".
+            "FunctionCount|HistoryCount|VariableCount)|OFS|P(?:WD|sHome)|".
+            "ReportErrorShow(?:ExceptionClass|InnerException|S(?:ource|".
+            "tackTrace))|S(?:houldProcess(?:Preference|ReturnPreference)|".
+            "tackTrace)|VerbosePreference|WarningPreference|_|args|foreach)\W)".
+            "(\w+)(?=[^|\w])",
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            6 => array(
+                'DISALLOWED_BEFORE' => '(?<!\$)\$'
+                )
+            )
+        )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/progress.php b/inc/geshi/progress.php
index 938cf206351f3513c00f16b7ecba75319cae3968..abd5bcb19bcae18eab9e7ce9b647457404f5bfd9 100644
--- a/inc/geshi/progress.php
+++ b/inc/geshi/progress.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Marco Aurelio de Pasqual (marcop@hdi.com.br)
  * Copyright: (c) 2008 Marco Aurelio de Pasqual, Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/07/11
  *
  * Progress language file for GeSHi.
@@ -76,7 +76,7 @@ $language_data = array(
             'GET','GET-KEY-VALUE','HIDE','IF',
             'IMPORT','INPUT CLEAR','INPUT CLOSE','INPUT FROM','input',
             'INPUT THROUGH','INPUT-OUTPUT CLOSE','INPUT-OUTPUT THROUGH','INSERT',
-            'INTERFACE','LEAVE','LOAD','DELETE','BREAK',
+            'INTERFACE','LEAVE','LOAD','BREAK',
             'LOAD-PICTURE','MESSAGE','method','NEXT','prev',
             'NEXT-PROMPT','ON','OPEN QUERY','OS-APPEND',
             'OS-COMMAND','OS-COPY','OS-CREATE-DIR','OS-DELETE',
diff --git a/inc/geshi/prolog.php b/inc/geshi/prolog.php
new file mode 100644
index 0000000000000000000000000000000000000000..e3a07c1eeb4a04cece6e07ca40577535f19f265d
--- /dev/null
+++ b/inc/geshi/prolog.php
@@ -0,0 +1,143 @@
+<?php
+/*************************************************************************************
+ * prolog.php
+ * --------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/10/02
+ *
+ * Prolog language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/02 (1.0.8.1)
+ *  -  First Release
+ *
+ * TODO (updated 2008/10/02)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Prolog',
+    'COMMENT_SINGLE' => array(1 => '%'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'HARDQUOTE' => array("'", "'"),
+    'HARDESCAPE' => array("\'"),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        1 => array(
+            'abolish','abs','arg','asserta','assertz','at_end_of_stream','atan',
+            'atom','atom_chars','atom_codes','atom_concat','atom_length',
+            'atomic','bagof','call','catch','ceiling','char_code',
+            'char_conversion','clause','close','compound','consult','copy_term',
+            'cos','current_char_conversion','current_input','current_op',
+            'current_output','current_predicate','current_prolog_flag',
+            'discontiguous','dynamic','ensure_loaded','exp','fail','findall',
+            'float','float_fractional_part','float_integer_part','floor',
+            'flush_output','functor','get_byte','get_char','get_code','halt',
+            'include','initialization','integer','is','listing','log','mod',
+            'multifile','nl','nonvar','notrace','number','number_chars',
+            'number_codes','once','op','open','peek_byte','peek_char',
+            'peek_code','put_byte','put_char','put_code','read','read_term',
+            'rem','repeat','retract','round','set_input','set_output',
+            'set_prolog_flag','set_stream_position','setof','sign','sin','sqrt',
+            'stream_property','sub_atom','throw','trace','true','truncate',
+            'unify_with_occurs_check','univ','var','write','write_canonical',
+            'write_term','writeq'
+            )
+        ),
+    'SYMBOLS' => array(
+        0 => array('(', ')', '[', ']', '{', '}',),
+        1 => array('?-', ':-', '=:='),
+        2 => array('\-', '\+', '\*', '\/'),
+        3 => array('-', '+', '*', '/'),
+        4 => array('.', ':', ',', ';'),
+        5 => array('!', '@', '&', '|'),
+        6 => array('<', '>', '=')
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #990000;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            'HARD' => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #0000ff;',
+            'HARD' => 'color: #0000ff;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #800080;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;',
+            1 => 'color: #339933;',
+            2 => 'color: #339933;',
+            3 => 'color: #339933;',
+            4 => 'color: #339933;',
+            5 => 'color: #339933;',
+            6 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #008080;'
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => 'http://pauillac.inria.fr/~deransar/prolog/bips.html'
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        //Variables
+        0 => "(?<![A-Z_])(?!(?:PIPE|SEMI)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])"
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/providex.php b/inc/geshi/providex.php
new file mode 100644
index 0000000000000000000000000000000000000000..d8b918edb18c6850e7ce9799ee785ea19633b767
--- /dev/null
+++ b/inc/geshi/providex.php
@@ -0,0 +1,299 @@
+<?php
+/******************************************************************************
+ * providex.php
+ * ----------
+ * Author: Jeff Wilder (jeff@coastallogix.com)
+ * Copyright:  (c) 2008 Coastal Logix (http://www.coastallogix.com)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/10/18
+ *
+ * ProvideX language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/21 (1.0.0)
+ *  - First Release
+ *
+ * TODO
+ * -------------------------
+ * 1. Create a regexp for numeric global variables (ex: %VarName = 3)
+ * 2. Add standard object control properties
+ *
+ ******************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ *****************************************************************************/
+$language_data = array (
+    'LANG_NAME' => 'ProvideX',
+    'COMMENT_SINGLE' => array(1 => '!'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        // Single-Line Comments using REM command
+        2 => "/\bREM\b.*?$/i"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            // Directives
+            '*break', '*continue', '*end', '*escape', '*next', '*proceed',
+            '*retry', '*return', '*same', 'accept', 'add index', 'addr',
+            'auto', 'begin', 'break', 'button', 'bye', 'call', 'case',
+            'chart', 'check_box', 'class', 'clear', 'clip_board', 'close',
+            'continue', 'control', 'create required', 'create table',
+            'cwdir', 'data', 'day_format', 'def', 'default', 'defctl',
+            'defprt', 'deftty', 'delete required', 'dictionary', 'dim', 'direct',
+            'directory', 'disable', 'drop', 'drop_box', 'dump', 'edit',
+            'else', 'enable', 'end switch', 'end', 'end_if', 'endtrace',
+            'enter', 'erase', 'error_handler', 'escape', 'event', 'execute',
+            'exit', 'exitto', 'extract', 'file', 'find', 'floating point',
+            'for', 'function', 'get_file_box', 'gosub', 'goto', 'grid',
+            'h_scrollbar', 'hide', 'if', 'index', 'indexed', 'input',
+            'insert', 'invoke', 'iolist', 'keyed', 'let', 'like',
+            'line_switch', 'list', 'list_box', 'load', 'local', 'lock',
+            'long_form', 'menu_bar', 'merge', 'message_lib', 'mnemonic',
+            'msgbox', 'multi_line', 'multi_media', 'next', 'object', 'obtain',
+            'on', 'open', 'password', 'perform', 'pop', 'popup_menu',
+            'precision', 'prefix', 'preinput', 'print', 'process', 'program',
+            'property', 'purge', 'quit', 'radio_button', 'randomize',
+            'read', 'record', 'redim', 'refile', 'release', 'rem', 'remove',
+            'rename', 'renumber', 'repeat', 'reset', 'restore', 'retry',
+            'return', 'round', 'run', 'save', 'select', 'serial', 'server',
+            'set_focus', 'set_nbf', 'set_param', 'setctl', 'setday', 'setdev',
+            'setdrive', 'seterr', 'setesc', 'setfid', 'setmouse', 'settime',
+            'settrace', 'short_form', 'show', 'sort', 'start', 'static',
+            'step', 'stop', 'switch', 'system_help', 'system_jrnl', 'table',
+            'then', 'to', 'translate', 'tristate_box', 'unlock', 'until',
+            'update', 'user_lex', 'v_scrollbar', 'vardrop_box', 'varlist_box',
+            'via', 'video_palette', 'wait', 'wend', 'while', 'winprt_setup',
+            'with', 'write'
+            ),
+        2 => array(
+            // System Functions
+            '@x', '@y', 'abs', 'acs', 'and', 'arg', 'asc', 'asn', 'ath',
+            'atn', 'bin', 'bsz', 'chg', 'chr', 'cmp', 'cos', 'cpl',
+            'crc', 'cse', 'ctl', 'cvs', 'dec', 'dir', 'dll', 'dsk',
+            'dte', 'env', 'ept', 'err', 'evn', 'evs', 'exp', 'ffn',
+            'fib', 'fid', 'fin', 'fpt', 'gap', 'gbl', 'gep', 'hsa',
+            'hsh', 'hta', 'hwn', 'i3e', 'ind', 'int', 'iol', 'ior',
+            'jul', 'jst', 'kec', 'kef', 'kel', 'ken', 'kep', 'key',
+            'kgn', 'lcs', 'len', 'lno', 'log', 'lrc', 'lst', 'max',
+            'mem', 'mid', 'min', 'mnm', 'mod', 'msg', 'msk', 'mxc',
+            'mxl', 'new', 'not', 'nul', 'num', 'obj', 'opt', 'pad',
+            'pck', 'pfx', 'pgm', 'pos', 'prc', 'prm', 'pth', 'pub',
+            'rcd', 'rdx', 'rec', 'ref', 'rnd', 'rno', 'sep', 'sgn',
+            'sin', 'sqr', 'srt', 'ssz', 'stk', 'stp', 'str', 'sub',
+            'swp', 'sys', 'tan', 'tbl', 'tcb', 'tmr', 'trx', 'tsk',
+            'txh', 'txw', 'ucp', 'ucs', 'upk', 'vin', 'vis', 'xeq',
+            'xfa', 'xor', '_obj'
+            ),
+        3 => array(
+            // System Variables
+            // Vars that are duplicates of functions
+            // 'ctl', 'err', 'pfx', 'prm', 'rnd', 'sep', 'sys',
+            'bkg', 'chn', 'day', 'dlm', 'dsz', 'eom', 'ers', 'esc',
+            'gfn', 'gid', 'hfn', 'hlp', 'hwd', 'lfa', 'lfo', 'lip',
+            'lpg', 'lwd', 'mse', 'msl', 'nar', 'nid', 'pgn', 'psz',
+            'quo', 'ret', 'sid', 'ssn', 'tim', 'tme', 'tms', 'tsm',
+            'uid', 'unt', 'who'
+
+            ),
+        4 => array(
+            // Nomads Variables
+            '%Flmaint_Lib$', '%Flmaint_Msg$', '%Nomads_Activation_Ok',
+            '%Nomads_Auto_Qry', '%Nomads_Disable_Debug',
+            '%Nomads_Disable_Trace', '%Nomads_Fkey_Handler$',
+            '%Nomads_Fkey_Tbl$', '%Nomads_Notest', '%Nomads_Onexit$',
+            '%Nomads_Post_Display', '%Nomads_Pre_Display$',
+            '%Nomads_Process$', '%Nomads_Trace_File$',
+            '%Nomad_Actv_Folder_Colors$', '%Nomad_Automation_Enabled',
+            '%Nomad_Auto_Close', '%Nomad_Center_Wdw', '%Nomad_Concurrent_Wdw',
+            '%Nomad_Custom_Define', '%Nomad_Custom_Dir$',
+            '%Nomad_Custom_Genmtc', '%Nomad_Custom_Skip_Definition',
+            '%Nomad_Def_Sfx$', '%Nomad_Enter_Tab', '%Nomad_Esc_Sel',
+            '%Nomad_Isjavx', '%Nomad_Iswindx', '%Nomad_Iswindx$',
+            '%Nomad_Menu$', '%Nomad_Menu_Leftedge_Clr$',
+            '%Nomad_Menu_Textbackground_Clr$', '%Nomad_Mln_Sep$',
+            '%Nomad_Msgmnt$', '%Nomad_Noplusw', '%Nomad_No_Customize',
+            '%Nomad_Object_Persistence', '%Nomad_Object_Resize',
+            '%Nomad_Open_Load', '%Nomad_Override_Font$',
+            '%Nomad_Palette_Loaded', '%Nomad_Panel_Info_Force',
+            '%Nomad_Panel_Info_Prog$', '%Nomad_Pnl_Def_Colour$',
+            '%Nomad_Pnl_Def_Font$', '%Nomad_Prg_Cache', '%Nomad_Qry_Attr$',
+            '%Nomad_Qry_Btn$', '%Nomad_Qry_Clear_Start', '%Nomad_Qry_Tip$',
+            '%Nomad_Qry_Wide', '%Nomad_Query_Clear_Status', '%Nomad_Query_Kno',
+            '%Nomad_Query_No_Gray', '%Nomad_Query_Odb_Ignore',
+            '%Nomad_Query_Retkno', '%Nomad_Query_Sbar_Max',
+            '%Nomad_Relative_Wdw', '%Nomad_Save_Qry_Path', '%Nomad_Script_Fn',
+            '%Nomad_Script_Log', '%Nomad_Script_Wdw',
+            '%Nomad_Skip_Change_Logic', '%Nomad_Skip_Onselect_Logic',
+            '%Nomad_Stk$', '%Nomad_Tab_Dir', '%Nomad_Timeout',
+            '%Nomad_Turbo_Off', '%Nomad_Visual_Effect',
+            '%Nomad_Visual_Override', '%Nomad_Win_Ver', '%Nomad_Xchar',
+            '%Nomad_Xmax', '%Nomad_Ychar', '%Nomad_Ymax', '%Scr_Def_Attr$',
+            '%Scr_Def_H_Fl$', '%Scr_Def_H_Id$', '%Scr_Lib', '%Scr_Lib$',
+            '%Z__Usr_Sec$', 'Alternate_Panel$', 'Alternate_Panel_Type$',
+            'Arg_1$', 'Arg_10$', 'Arg_11$', 'Arg_12$', 'Arg_13$', 'Arg_14$',
+            'Arg_15$', 'Arg_16$', 'Arg_17$', 'Arg_18$', 'Arg_19$', 'Arg_2$',
+            'Arg_20$', 'Arg_3$', 'Arg_4$', 'Arg_5$', 'Arg_6$', 'Arg_7$',
+            'Arg_8$', 'Arg_9$', 'Change_Flg', 'Cmd_Str$', 'Default_Prog$',
+            'Disp_Cmd$', 'Entire_Record$', 'Exit_Cmd$', 'Fldr_Default_Prog$',
+            'Folder_Id$', 'Id', 'Id$', 'Ignore_Exit', 'Initialize_Flg',
+            'Init_Text$', 'Init_Val$', 'Main_Scrn_K$', 'Mnu_Ln$',
+            'Next_Folder', 'Next_Id', 'Next_Id$', 'No_Flush', 'Prime_Key$',
+            'Prior_Val', 'Prior_Val$', 'Qry_Val$', 'Refresh_Flg',
+            'Replacement_Folder$', 'Replacement_Lib$', 'Replacement_Scrn$',
+            'Scrn_Id$', 'Scrn_K$', 'Scrn_Lib$', 'Tab_Table$', '_Eom$'
+            ),
+        5 => array(
+            // Mnemonics
+            "'!w'", "'*c'", "'*h'", "'*i'", "'*o'", "'*r'", "'*x'",
+            "'+b'", "'+d'", "'+e'", "'+f'", "'+i'", "'+n'",
+            "'+p'", "'+s'", "'+t'", "'+u'", "'+v'", "'+w'", "'+x'",
+            "'+z'", "'-b'", "'-d'", "'-e'", "'-f'", "'-i'",
+            "'-n'", "'-p'", "'-s'", "'-t'", "'-u'", "'-v'", "'-w'",
+            "'-x'", "'-z'", "'2d'", "'3d'", "'4d'", "'@@'", "'ab'",
+            "'arc'", "'at'", "'backgr'", "'bb'", "'be'", "'beep'",
+            "'bg'", "'bi'", "'bj'", "'bk'", "'black'", "'blue'",
+            "'bm'", "'bo'", "'box'", "'br'", "'bs'", "'bt'", "'bu'",
+            "'bw'", "'bx'", "'caption'", "'ce'", "'cf'", "'ch'",
+            "'ci'", "'circle'", "'cl'", "'colour'", "'cp'", "'cpi'",
+            "'cr'", "'cs'", "'cursor'", "'cyan''_cyan'", "'dc'",
+            "'default'", "'df'", "'dialogue'", "'dn'", "'do'",
+            "'drop'", "'eb'", "'ee'", "'ef'", "'eg'", "'ei'", "'ej'",
+            "'el'", "'em'", "'eo'", "'ep'", "'er'", "'es'", "'et'",
+            "'eu'", "'ew'", "'ff'", "'fill'", "'fl'", "'font'",
+            "'frame'", "'gd'", "'ge'", "'gf'", "'goto'", "'green'",
+            "'gs'", "'hide'", "'ic'", "'image'", "'jc'",
+            "'jd'", "'jl'", "'jn'", "'jr'", "'js'", "'l6'", "'l8'",
+            "'lc'", "'ld'", "'lf'", "'li'", "'line'", "'lm'",
+            "'lpi'", "'lt'", "'magenta'", "'maxsize'", "'me'",
+            "'message'", "'minsize'", "'mn'", "'mode'",
+            "'move'", "'mp'", "'ms'", "'ni'", "'offset'", "'option'",
+            "'pe'", "'pen'", "'picture'", "'pie'", "'pm'", "'polygon'",
+            "'pop'", "'ps'", "'push'", "'rb'", "'rc'", "'rectangle'",
+            "'red'", "'rl'", "'rm'", "'rp'", "'rs'", "'rt'", "'sb'",
+            "'scroll'", "'sd'", "'se'", "'sf'", "'show'", "'size'",
+            "'sl'", "'sn'", "'sp'", "'sr'", "'swap'", "'sx'", "'text'",
+            "'textwdw'", "'tr'", "'tw'", "'uc'", "'up'", "'vt'", "'wa'",
+            "'wc'", "'wd'", "'wg'", "'white'", "'window'", "'wm'",
+            "'wp'", "'wr'", "'wrap'", "'ws'", "'wx'", "'xp'", "'yellow'",
+            "'zx'", "'_black'", "'_blue'", "'_colour'", "'_green'",
+            "'_magenta'", "'_red'", "'_white'", "'_yellow'"
+            ),
+        ),
+    'SYMBOLS' => array(
+        0 => array('+', '-', '*', '/', '^', '|'),
+        1 => array('++', '--', '+=', '-=', '*=', '/=', '^=', '|='),
+        2 => array('&lt;', '&gt;', '='),
+        3 => array('(', ')', '[', ']', '{', '}'),
+        4 => array(',', '@', ';', '\\')
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: navy;', // Directives
+            2 => 'color: blue;', // System Functions
+            3 => 'color: blue;', // System Variables
+            4 => 'color: #6A5ACD; font-style: italic;', // Nomads Global Variables
+            5 => 'color: #BDB76B;', // Mnemonics
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #008080; font-style: italic;',
+            2 => 'color: #008080;',
+            'MULTI' => 'color: #008080; font-style: italic;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000066;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: green;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #00008B;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;',
+            1 => 'color: #000099;',
+            2 => 'color: #000099;',
+            3 => 'color: #0000C9;',
+            4 => 'color: #000099;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099;'
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            1 => 'color: #006400; font-weight: bold',
+            2 => 'color: #6A5ACD;'
+            )
+        ),
+    'URLS' => array(
+        1 => 'http://www.allbasic.info./wiki/index.php/PX:Directive_{FNAME}',
+        2 => 'http://www.allbasic.info./wiki/index.php/PX:System_function_{FNAME}',
+        3 => 'http://www.allbasic.info./wiki/index.php/PX:System_variable_{FNAME}',
+        4 => 'http://www.allbasic.info./wiki/index.php/PX:Nomads_{FNAME}',
+        5 => 'http://www.allbasic.info./wiki/index.php/PX:Mnemonic_{FNAMEU}'
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => "'"
+        ),
+    'REGEXPS' => array(
+        1 => array(
+            // Line Labels
+            GESHI_SEARCH => '([[:space:]])([a-zA-Z_][a-zA-Z0-9_]+)(:)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '\\3'
+            ),
+        2 => array(
+            // Global String Variables
+            GESHI_SEARCH => '(\%)([a-zA-Z_][a-zA-Z0-9_]+)(\$)',
+            GESHI_REPLACE => '\\1\\2\\3',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'NUMBERS' => GESHI_NEVER
+            )
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/python.php b/inc/geshi/python.php
index 31cbe1167728e1f1e61be510f85571c0fd72b85c..fbc6cab942ad8dce4bb76d1dd801b4d3c1f1f434 100644
--- a/inc/geshi/python.php
+++ b/inc/geshi/python.php
@@ -4,13 +4,15 @@
  * ----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * Python language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2008/12/18
+ *  -  Added missing functions and keywords. Also added two new Python 3.0 types. SF#2441839
  * 2005/05/26
  *  -  Modifications by Tim (tim@skreak.com): added more keyword categories, tweaked colors
  * 2004/11/27 (1.0.1)
@@ -58,7 +60,7 @@ $language_data = array (
         1 => array(
             'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
             'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
-            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print'
+            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', 'with', 'as'
             ),
 
         /*
@@ -87,7 +89,9 @@ $language_data = array (
             'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
             'RuntimeWarning', 'FutureWarning',
             // self: this is a common python convention (but not a reserved word)
-            'self'
+            'self',
+            // other
+            'any', 'all'
             ),
 
         /*
@@ -124,7 +128,9 @@ $language_data = array (
             'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
             'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
             'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
-            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib'
+            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib',
+            // Python 3.0
+            'bytes', 'bytearray'
             ),
 
         /*
diff --git a/inc/geshi/qbasic.php b/inc/geshi/qbasic.php
index 437503cec10f1cc652e8f7652015dbb0d27c8555..f6531f70a47381f0bebf5b450a5093383cecfec4 100644
--- a/inc/geshi/qbasic.php
+++ b/inc/geshi/qbasic.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/20
  *
  * QBasic/QuickBASIC language file for GeSHi.
diff --git a/inc/geshi/rails.php b/inc/geshi/rails.php
index 51a2c882b112500fa03a088010a51c03e37b2f90..52c70a62e20eb6bc187a141979b5e43ba53e8af6 100644
--- a/inc/geshi/rails.php
+++ b/inc/geshi/rails.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Moises Deniz
  * Copyright: (c) 2005 Moises Deniz
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/03/21
  *
  * Ruby (with Ruby on Rails Framework) language file for GeSHi.
@@ -38,228 +38,228 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-                'alias', 'and', 'begin', 'break', 'case', 'class',
-                'def', 'defined', 'do', 'else', 'elsif', 'end',
-                'ensure', 'for', 'if', 'in', 'module', 'while',
-                'next', 'not', 'or', 'redo', 'rescue', 'yield',
-                'retry', 'super', 'then', 'undef', 'unless',
-                'until', 'when', 'BEGIN', 'END', 'include'
+            'alias', 'and', 'begin', 'break', 'case', 'class',
+            'def', 'defined', 'do', 'else', 'elsif', 'end',
+            'ensure', 'for', 'if', 'in', 'module', 'while',
+            'next', 'not', 'or', 'redo', 'rescue', 'yield',
+            'retry', 'super', 'then', 'undef', 'unless',
+            'until', 'when', 'BEGIN', 'END', 'include'
             ),
         2 => array(
-                '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
-                'return'
+            '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
+            'return'
             ),
         3 => array(
-                'Array', 'Float', 'Integer', 'String', 'at_exit',
-                'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
-                'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
-                'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
-                'iterator?', 'lambda', 'load', 'local_variables', 'loop',
-                'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
-                'raise', 'rand', 'readline', 'readlines', 'require', 'select',
-                'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
-                'system', 'trace_var', 'trap', 'untrace_var'
+            'Array', 'Float', 'Integer', 'String', 'at_exit',
+            'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
+            'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
+            'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
+            'iterator?', 'lambda', 'load', 'local_variables', 'loop',
+            'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
+            'raise', 'rand', 'readline', 'readlines', 'require', 'select',
+            'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
+            'system', 'trace_var', 'trap', 'untrace_var'
             ),
         4 => array(
-                'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
-                'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
-                'CGI::HtmlExtension', 'CGI::QueryExtension',
-                'CGI::Session', 'CGI::Session::FileStore',
-                'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
-                'ConditionVariable', 'Continuation', 'Data',
-                'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
-                'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
-                'Exception', 'FalseClass', 'File',
-                'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
-                'FileUtils::DryRun', 'FileUtils::NoWrite',
-                'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
-                'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
-                'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
-                'Iconv::Failure', 'Iconv::IllegalSequence',
-                'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
-                'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
-                'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
-                'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
-                'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
-                'Logger::ShiftingError', 'Marshal', 'MatchData',
-                'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
-                'NameError::message', 'NilClass', 'NoMemoryError',
-                'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
-                'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
-                'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
-                'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
-                'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
-                'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
-                'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
-                'SingleForwardable', 'Singleton', 'SingletonClassMethods',
-                'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
-                'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
-                'SyncEnumerator', 'SyntaxError', 'SystemCallError',
-                'SystemExit', 'SystemStackError', 'Tempfile',
-                'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
-                'ThreadError', 'ThreadGroup',
-                'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
-                'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
-                'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
-                'URI::InvalidComponentError', 'URI::InvalidURIError',
-                'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
-                'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
-                'ZeroDivisionError', 'Zlib',
-                'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
-                'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
-                'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
-                'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
-                'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
-                'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
-                'Zlib::VersionError',
-                'Zlib::ZStream',
-                'ActionController::AbstractRequest',
-                'ActionController::Assertions::DomAssertions',
-                'ActionController::Assertions::ModelAssertions',
-                'ActionController::Assertions::ResponseAssertions',
-                'ActionController::Assertions::RoutingAssertions',
-                'ActionController::Assertions::SelectorAssertions',
-                'ActionController::Assertions::TagAssertions',
-                'ActionController::Base',
-                'ActionController::Benchmarking::ClassMethods',
-                'ActionController::Caching',
-                'ActionController::Caching::Actions',
-                'ActionController::Caching::Actions::ActionCachePath',
-                'ActionController::Caching::Fragments',
-                'ActionController::Caching::Pages',
-                'ActionController::Caching::Pages::ClassMethods',
-                'ActionController::Caching::Sweeping',
-                'ActionController::Components',
-                'ActionController::Components::ClassMethods',
-                'ActionController::Components::InstanceMethods',
-                'ActionController::Cookies',
-                'ActionController::Filters::ClassMethods',
-                'ActionController::Flash',
-                'ActionController::Flash::FlashHash',
-                'ActionController::Helpers::ClassMethods',
-                'ActionController::Integration::Session',
-                'ActionController::IntegrationTest',
-                'ActionController::Layout::ClassMethods',
-                'ActionController::Macros',
-                'ActionController::Macros::AutoComplete::ClassMethods',
-                'ActionController::Macros::InPlaceEditing::ClassMethods',
-                'ActionController::MimeResponds::InstanceMethods',
-                'ActionController::Pagination',
-                'ActionController::Pagination::ClassMethods',
-                'ActionController::Pagination::Paginator',
-                'ActionController::Pagination::Paginator::Page',
-                'ActionController::Pagination::Paginator::Window',
-                'ActionController::Rescue', 'ActionController::Resources',
-                'ActionController::Routing',
-                'ActionController::Scaffolding::ClassMethods',
-                'ActionController::SessionManagement::ClassMethods',
-                'ActionController::Streaming', 'ActionController::TestProcess',
-                'ActionController::TestUploadedFile',
-                'ActionController::UrlWriter',
-                'ActionController::Verification::ClassMethods',
-                'ActionMailer::Base', 'ActionView::Base',
-                'ActionView::Helpers::ActiveRecordHelper',
-                'ActionView::Helpers::AssetTagHelper',
-                'ActionView::Helpers::BenchmarkHelper',
-                'ActionView::Helpers::CacheHelper',
-                'ActionView::Helpers::CaptureHelper',
-                'ActionView::Helpers::DateHelper',
-                'ActionView::Helpers::DebugHelper',
-                'ActionView::Helpers::FormHelper',
-                'ActionView::Helpers::FormOptionsHelper',
-                'ActionView::Helpers::FormTagHelper',
-                'ActionView::Helpers::JavaScriptHelper',
-                'ActionView::Helpers::JavaScriptMacrosHelper',
-                'ActionView::Helpers::NumberHelper',
-                'ActionView::Helpers::PaginationHelper',
-                'ActionView::Helpers::PrototypeHelper',
-                'ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods',
-                'ActionView::Helpers::ScriptaculousHelper',
-                'ActionView::Helpers::TagHelper',
-                'ActionView::Helpers::TextHelper',
-                'ActionView::Helpers::UrlHelper', 'ActionView::Partials',
-                'ActionWebService::API::Method', 'ActionWebService::Base',
-                'ActionWebService::Client::Soap',
-                'ActionWebService::Client::XmlRpc',
-                'ActionWebService::Container::ActionController::ClassMethods',
-                'ActionWebService::Container::Delegated::ClassMethods',
-                'ActionWebService::Container::Direct::ClassMethods',
-                'ActionWebService::Invocation::ClassMethods',
-                'ActionWebService::Scaffolding::ClassMethods',
-                'ActionWebService::SignatureTypes', 'ActionWebService::Struct',
-                'ActiveRecord::Acts::List::ClassMethods',
-                'ActiveRecord::Acts::List::InstanceMethods',
-                'ActiveRecord::Acts::NestedSet::ClassMethods',
-                'ActiveRecord::Acts::NestedSet::InstanceMethods',
-                'ActiveRecord::Acts::Tree::ClassMethods',
-                'ActiveRecord::Acts::Tree::InstanceMethods',
-                'ActiveRecord::Aggregations::ClassMethods',
-                'ActiveRecord::Associations::ClassMethods',
-                'ActiveRecord::AttributeMethods::ClassMethods',
-                'ActiveRecord::Base',
-                'ActiveRecord::Calculations::ClassMethods',
-                'ActiveRecord::Callbacks',
-                'ActiveRecord::ConnectionAdapters::AbstractAdapter',
-                'ActiveRecord::ConnectionAdapters::Column',
-                'ActiveRecord::ConnectionAdapters::DB2Adapter',
-                'ActiveRecord::ConnectionAdapters::DatabaseStatements',
-                'ActiveRecord::ConnectionAdapters::FirebirdAdapter',
-                'ActiveRecord::ConnectionAdapters::FrontBaseAdapter',
-                'ActiveRecord::ConnectionAdapters::MysqlAdapter',
-                'ActiveRecord::ConnectionAdapters::OpenBaseAdapter',
-                'ActiveRecord::ConnectionAdapters::OracleAdapter',
-                'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter',
-                'ActiveRecord::ConnectionAdapters::Quoting',
-                'ActiveRecord::ConnectionAdapters::SQLServerAdapter',
-                'ActiveRecord::ConnectionAdapters::SQLiteAdapter',
-                'ActiveRecord::ConnectionAdapters::SchemaStatements',
-                'ActiveRecord::ConnectionAdapters::SybaseAdapter::ColumnWithIdentity',
-                'ActiveRecord::ConnectionAdapters::SybaseAdapterContext',
-                'ActiveRecord::ConnectionAdapters::TableDefinition',
-                'ActiveRecord::Errors', 'ActiveRecord::Locking',
-                'ActiveRecord::Locking::Optimistic',
-                'ActiveRecord::Locking::Optimistic::ClassMethods',
-                'ActiveRecord::Locking::Pessimistic',
-                'ActiveRecord::Migration', 'ActiveRecord::Observer',
-                'ActiveRecord::Observing::ClassMethods',
-                'ActiveRecord::Reflection::ClassMethods',
-                'ActiveRecord::Reflection::MacroReflection',
-                'ActiveRecord::Schema', 'ActiveRecord::Timestamp',
-                'ActiveRecord::Transactions::ClassMethods',
-                'ActiveRecord::Validations',
-                'ActiveRecord::Validations::ClassMethods',
-                'ActiveRecord::XmlSerialization',
-                'ActiveSupport::CachingTools::HashCaching',
-                'ActiveSupport::CoreExtensions::Array::Conversions',
-                'ActiveSupport::CoreExtensions::Array::Grouping',
-                'ActiveSupport::CoreExtensions::Date::Conversions',
-                'ActiveSupport::CoreExtensions::Hash::Conversions',
-                'ActiveSupport::CoreExtensions::Hash::Conversions::ClassMethods',
-                'ActiveSupport::CoreExtensions::Hash::Diff',
-                'ActiveSupport::CoreExtensions::Hash::Keys',
-                'ActiveSupport::CoreExtensions::Hash::ReverseMerge',
-                'ActiveSupport::CoreExtensions::Integer::EvenOdd',
-                'ActiveSupport::CoreExtensions::Integer::Inflections',
-                'ActiveSupport::CoreExtensions::Numeric::Bytes',
-                'ActiveSupport::CoreExtensions::Numeric::Time',
-                'ActiveSupport::CoreExtensions::Pathname::CleanWithin',
-                'ActiveSupport::CoreExtensions::Range::Conversions',
-                'ActiveSupport::CoreExtensions::String::Access',
-                'ActiveSupport::CoreExtensions::String::Conversions',
-                'ActiveSupport::CoreExtensions::String::Inflections',
-                'ActiveSupport::CoreExtensions::String::Iterators',
-                'ActiveSupport::CoreExtensions::String::StartsEndsWith',
-                'ActiveSupport::CoreExtensions::String::Unicode',
-                'ActiveSupport::CoreExtensions::Time::Calculations',
-                'ActiveSupport::CoreExtensions::Time::Calculations::ClassMethods',
-                'ActiveSupport::CoreExtensions::Time::Conversions',
-                'ActiveSupport::Multibyte::Chars',
-                'ActiveSupport::Multibyte::Handlers::UTF8Handler', 'Binding',
-                'Breakpoint', 'Builder::BlankSlate', 'Builder::XmlMarkup',
-                'Enumerable', 'Fixtures',
-                'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
-                'Inflector::Inflections', 'Mime', 'Mime::Type',
-                'OCI8AutoRecover', 'Symbol', 'TimeZone', 'XmlSimple'
+            'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
+            'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
+            'CGI::HtmlExtension', 'CGI::QueryExtension',
+            'CGI::Session', 'CGI::Session::FileStore',
+            'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
+            'ConditionVariable', 'Continuation', 'Data',
+            'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
+            'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
+            'Exception', 'FalseClass', 'File',
+            'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
+            'FileUtils::DryRun', 'FileUtils::NoWrite',
+            'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
+            'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
+            'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
+            'Iconv::Failure', 'Iconv::IllegalSequence',
+            'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
+            'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
+            'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
+            'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
+            'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
+            'Logger::ShiftingError', 'Marshal', 'MatchData',
+            'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
+            'NameError::message', 'NilClass', 'NoMemoryError',
+            'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
+            'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
+            'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
+            'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
+            'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
+            'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
+            'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
+            'SingleForwardable', 'Singleton', 'SingletonClassMethods',
+            'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
+            'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
+            'SyncEnumerator', 'SyntaxError', 'SystemCallError',
+            'SystemExit', 'SystemStackError', 'Tempfile',
+            'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
+            'ThreadError', 'ThreadGroup',
+            'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
+            'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
+            'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
+            'URI::InvalidComponentError', 'URI::InvalidURIError',
+            'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
+            'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
+            'ZeroDivisionError', 'Zlib',
+            'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
+            'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
+            'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
+            'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
+            'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
+            'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
+            'Zlib::VersionError',
+            'Zlib::ZStream',
+            'ActionController::AbstractRequest',
+            'ActionController::Assertions::DomAssertions',
+            'ActionController::Assertions::ModelAssertions',
+            'ActionController::Assertions::ResponseAssertions',
+            'ActionController::Assertions::RoutingAssertions',
+            'ActionController::Assertions::SelectorAssertions',
+            'ActionController::Assertions::TagAssertions',
+            'ActionController::Base',
+            'ActionController::Benchmarking::ClassMethods',
+            'ActionController::Caching',
+            'ActionController::Caching::Actions',
+            'ActionController::Caching::Actions::ActionCachePath',
+            'ActionController::Caching::Fragments',
+            'ActionController::Caching::Pages',
+            'ActionController::Caching::Pages::ClassMethods',
+            'ActionController::Caching::Sweeping',
+            'ActionController::Components',
+            'ActionController::Components::ClassMethods',
+            'ActionController::Components::InstanceMethods',
+            'ActionController::Cookies',
+            'ActionController::Filters::ClassMethods',
+            'ActionController::Flash',
+            'ActionController::Flash::FlashHash',
+            'ActionController::Helpers::ClassMethods',
+            'ActionController::Integration::Session',
+            'ActionController::IntegrationTest',
+            'ActionController::Layout::ClassMethods',
+            'ActionController::Macros',
+            'ActionController::Macros::AutoComplete::ClassMethods',
+            'ActionController::Macros::InPlaceEditing::ClassMethods',
+            'ActionController::MimeResponds::InstanceMethods',
+            'ActionController::Pagination',
+            'ActionController::Pagination::ClassMethods',
+            'ActionController::Pagination::Paginator',
+            'ActionController::Pagination::Paginator::Page',
+            'ActionController::Pagination::Paginator::Window',
+            'ActionController::Rescue', 'ActionController::Resources',
+            'ActionController::Routing',
+            'ActionController::Scaffolding::ClassMethods',
+            'ActionController::SessionManagement::ClassMethods',
+            'ActionController::Streaming', 'ActionController::TestProcess',
+            'ActionController::TestUploadedFile',
+            'ActionController::UrlWriter',
+            'ActionController::Verification::ClassMethods',
+            'ActionMailer::Base', 'ActionView::Base',
+            'ActionView::Helpers::ActiveRecordHelper',
+            'ActionView::Helpers::AssetTagHelper',
+            'ActionView::Helpers::BenchmarkHelper',
+            'ActionView::Helpers::CacheHelper',
+            'ActionView::Helpers::CaptureHelper',
+            'ActionView::Helpers::DateHelper',
+            'ActionView::Helpers::DebugHelper',
+            'ActionView::Helpers::FormHelper',
+            'ActionView::Helpers::FormOptionsHelper',
+            'ActionView::Helpers::FormTagHelper',
+            'ActionView::Helpers::JavaScriptHelper',
+            'ActionView::Helpers::JavaScriptMacrosHelper',
+            'ActionView::Helpers::NumberHelper',
+            'ActionView::Helpers::PaginationHelper',
+            'ActionView::Helpers::PrototypeHelper',
+            'ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods',
+            'ActionView::Helpers::ScriptaculousHelper',
+            'ActionView::Helpers::TagHelper',
+            'ActionView::Helpers::TextHelper',
+            'ActionView::Helpers::UrlHelper', 'ActionView::Partials',
+            'ActionWebService::API::Method', 'ActionWebService::Base',
+            'ActionWebService::Client::Soap',
+            'ActionWebService::Client::XmlRpc',
+            'ActionWebService::Container::ActionController::ClassMethods',
+            'ActionWebService::Container::Delegated::ClassMethods',
+            'ActionWebService::Container::Direct::ClassMethods',
+            'ActionWebService::Invocation::ClassMethods',
+            'ActionWebService::Scaffolding::ClassMethods',
+            'ActionWebService::SignatureTypes', 'ActionWebService::Struct',
+            'ActiveRecord::Acts::List::ClassMethods',
+            'ActiveRecord::Acts::List::InstanceMethods',
+            'ActiveRecord::Acts::NestedSet::ClassMethods',
+            'ActiveRecord::Acts::NestedSet::InstanceMethods',
+            'ActiveRecord::Acts::Tree::ClassMethods',
+            'ActiveRecord::Acts::Tree::InstanceMethods',
+            'ActiveRecord::Aggregations::ClassMethods',
+            'ActiveRecord::Associations::ClassMethods',
+            'ActiveRecord::AttributeMethods::ClassMethods',
+            'ActiveRecord::Base',
+            'ActiveRecord::Calculations::ClassMethods',
+            'ActiveRecord::Callbacks',
+            'ActiveRecord::ConnectionAdapters::AbstractAdapter',
+            'ActiveRecord::ConnectionAdapters::Column',
+            'ActiveRecord::ConnectionAdapters::DB2Adapter',
+            'ActiveRecord::ConnectionAdapters::DatabaseStatements',
+            'ActiveRecord::ConnectionAdapters::FirebirdAdapter',
+            'ActiveRecord::ConnectionAdapters::FrontBaseAdapter',
+            'ActiveRecord::ConnectionAdapters::MysqlAdapter',
+            'ActiveRecord::ConnectionAdapters::OpenBaseAdapter',
+            'ActiveRecord::ConnectionAdapters::OracleAdapter',
+            'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter',
+            'ActiveRecord::ConnectionAdapters::Quoting',
+            'ActiveRecord::ConnectionAdapters::SQLServerAdapter',
+            'ActiveRecord::ConnectionAdapters::SQLiteAdapter',
+            'ActiveRecord::ConnectionAdapters::SchemaStatements',
+            'ActiveRecord::ConnectionAdapters::SybaseAdapter::ColumnWithIdentity',
+            'ActiveRecord::ConnectionAdapters::SybaseAdapterContext',
+            'ActiveRecord::ConnectionAdapters::TableDefinition',
+            'ActiveRecord::Errors', 'ActiveRecord::Locking',
+            'ActiveRecord::Locking::Optimistic',
+            'ActiveRecord::Locking::Optimistic::ClassMethods',
+            'ActiveRecord::Locking::Pessimistic',
+            'ActiveRecord::Migration', 'ActiveRecord::Observer',
+            'ActiveRecord::Observing::ClassMethods',
+            'ActiveRecord::Reflection::ClassMethods',
+            'ActiveRecord::Reflection::MacroReflection',
+            'ActiveRecord::Schema', 'ActiveRecord::Timestamp',
+            'ActiveRecord::Transactions::ClassMethods',
+            'ActiveRecord::Validations',
+            'ActiveRecord::Validations::ClassMethods',
+            'ActiveRecord::XmlSerialization',
+            'ActiveSupport::CachingTools::HashCaching',
+            'ActiveSupport::CoreExtensions::Array::Conversions',
+            'ActiveSupport::CoreExtensions::Array::Grouping',
+            'ActiveSupport::CoreExtensions::Date::Conversions',
+            'ActiveSupport::CoreExtensions::Hash::Conversions',
+            'ActiveSupport::CoreExtensions::Hash::Conversions::ClassMethods',
+            'ActiveSupport::CoreExtensions::Hash::Diff',
+            'ActiveSupport::CoreExtensions::Hash::Keys',
+            'ActiveSupport::CoreExtensions::Hash::ReverseMerge',
+            'ActiveSupport::CoreExtensions::Integer::EvenOdd',
+            'ActiveSupport::CoreExtensions::Integer::Inflections',
+            'ActiveSupport::CoreExtensions::Numeric::Bytes',
+            'ActiveSupport::CoreExtensions::Numeric::Time',
+            'ActiveSupport::CoreExtensions::Pathname::CleanWithin',
+            'ActiveSupport::CoreExtensions::Range::Conversions',
+            'ActiveSupport::CoreExtensions::String::Access',
+            'ActiveSupport::CoreExtensions::String::Conversions',
+            'ActiveSupport::CoreExtensions::String::Inflections',
+            'ActiveSupport::CoreExtensions::String::Iterators',
+            'ActiveSupport::CoreExtensions::String::StartsEndsWith',
+            'ActiveSupport::CoreExtensions::String::Unicode',
+            'ActiveSupport::CoreExtensions::Time::Calculations',
+            'ActiveSupport::CoreExtensions::Time::Calculations::ClassMethods',
+            'ActiveSupport::CoreExtensions::Time::Conversions',
+            'ActiveSupport::Multibyte::Chars',
+            'ActiveSupport::Multibyte::Handlers::UTF8Handler',
+            'Breakpoint', 'Builder::BlankSlate', 'Builder::XmlMarkup',
+            'Fixtures',
+            'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
+            'Inflector::Inflections', 'Mime', 'Mime::Type',
+            'OCI8AutoRecover', 'TimeZone', 'XmlSimple'
             ),
         5 => array(
             'image_tag', 'link_to', 'link_to_remote', 'javascript_include_tag',
@@ -271,10 +271,10 @@ $language_data = array (
             'layout', 'flash', 'auto_complete_for', 'in_place_editor_for',
             'respond_to', 'paginate', 'current_page', 'each', 'first',
             'first_page', 'last_page', 'last', 'length', 'new', 'page_count',
-            'previous', 'next', 'scaffold', 'session', 'send_data',
+            'previous', 'scaffold', 'send_data',
             'send_file', 'deliver', 'receive', 'error_messages_for',
             'error_message_on', 'form', 'input', 'stylesheet_link_tag',
-            'stylesheet_path', 'content_for', 'select_date', 'select', 'ago',
+            'stylesheet_path', 'content_for', 'select_date', 'ago',
             'month', 'day', 'check_box', 'fields_for', 'file_field',
             'form_for', 'hidden_field', 'text_area', 'password_field',
             'collection_select', 'options_for_select',
@@ -282,7 +282,7 @@ $language_data = array (
             'form_for_tag', 'hidden_field_tag', 'text_area_tag',
             'password_field_tag', 'link_to_function', 'javascript_tag',
             'human_size', 'number_to_currency', 'pagination_links',
-            'form_remote_tag', 'form_remote_for', 'link_to_remote',
+            'form_remote_tag', 'form_remote_for',
             'submit_to_remote', 'remote_function', 'observe_form',
             'observe_field', 'remote_form_for', 'options_for_ajax', 'alert',
             'call', 'assign', 'show', 'hide', 'insert_html', 'sortable',
@@ -297,15 +297,15 @@ $language_data = array (
             'update', 'table_name', 'primary_key', 'sum', 'maximun', 'minimum',
             'count', 'size', 'after_save', 'after_create', 'before_save',
             'before_create', 'add_to_base', 'errors', 'add', 'validate',
-            'validate', 'validates_presence_of', 'validates_format_of',
-            'validates_numericality_of', 'validates_uniqueness_of',
-            'validates_length_of', 'validates_format_of', 'validates_size_of',
-            'to_a', 'to_s', 'to_xml', 'to_i'
+            'validates_presence_of', 'validates_numericality_of',
+            'validates_uniqueness_of', 'validates_length_of',
+            'validates_format_of', 'validates_size_of', 'to_a', 'to_s',
+            'to_xml', 'to_i'
             )
         ),
     'SYMBOLS' => array(
         '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
-        '+', '-', '=&gt;', '=>', '<<'
+        '+', '-', '=>', '<<'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
diff --git a/inc/geshi/rebol.php b/inc/geshi/rebol.php
new file mode 100644
index 0000000000000000000000000000000000000000..6f57137c4991b85013c1c4cca95ac911f089c3f0
--- /dev/null
+++ b/inc/geshi/rebol.php
@@ -0,0 +1,196 @@
+<?php
+/*************************************************************************************
+ * rebol.php
+ * --------
+ * Author: Lecanu Guillaume (Guillaume@LyA.fr)
+ * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr)
+ * Release Version: 1.0.8.3
+ * Date Started: 2004/12/22
+ *
+ * Rebol language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2009/01/26 (1.0.8.3)
+ *  -  Adapted language file to comply to GeSHi language file guidelines
+ * 2004/11/25 (1.0.3)
+ *  -  Added support for multiple object splitters
+ *  -  Fixed &new problem
+ * 2004/10/27 (1.0.2)
+ *  -  Added URL support
+ *  -  Added extra constants
+ * 2004/08/05 (1.0.1)
+ *  -  Added support for symbols
+ * 2004/07/14 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2004/07/14)
+ * -------------------------
+ * * Make sure the last few function I may have missed
+ *   (like eval()) are included for highlighting
+ * * Split to several files - php4, php5 etc
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'REBOL',
+    'COMMENT_SINGLE' => array(1 => ';'),
+    'COMMENT_MULTI' => array('rebol [' => ']', 'comment [' => ']'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'binary!','block!','char!','date!','decimal!','email!','file!',
+            'hash!','integer!','issue!','list!','logic!','money!','none!',
+            'object!','paren!','pair!','path!','string!','tag!','time!',
+            'tuple!','url!',
+            ),
+        2 => array(
+            'all','any','attempt','break','catch','compose','disarm','dispatch',
+            'do','do-events','does','either','else','exit','for','forall',
+            'foreach','forever','forskip','func','function','halt','has','if',
+            'launch','loop','next','quit','reduce','remove-each','repeat',
+            'return','secure','switch','throw','try','until','wait','while',
+            ),
+        3 => array(
+            'about','abs','absolute','add','alert','alias','alter','and',
+            'any-block?','any-function?','any-string?','any-type?','any-word?',
+            'append','arccosine','arcsine','arctangent','array','as-pair',
+            'ask','at','back','binary?','bind','bitset?','block?','brightness?',
+            'browse','build-tag','caret-to-offset','center-face','change',
+            'change-dir','char?','charset','checksum','choose','clean-path',
+            'clear','clear-fields','close','comment','complement','component?',
+            'compress','confirm','connected?','construct','context','copy',
+            'cosine','datatype?','date?','debase','decimal?','decode-cgi',
+            'decompress','dehex','delete','detab','difference','dir?','dirize',
+            'divide','dump-face','dump-obj','echo','email?','empty?','enbase',
+            'entab','equal?','error?','even?','event?','exclude','exists?',
+            'exp','extract','fifth','file?','find','first','flash','focus',
+            'form','found?','fourth','free','function?','get','get-modes',
+            'get-word?','greater-or-equal?','greater?','hash?','head','head?',
+            'help','hide','hide-popup','image?','import-email','in',
+            'in-window?','index?','info?','inform','input','input?','insert',
+            'integer?','intersect','issue?','join','last','layout','length?',
+            'lesser-or-equal?','lesser?','library?','license','link?',
+            'list-dir','list?','lit-path?','lit-word?','load','load-image',
+            'log-10','log-2','log-e','logic?','lowercase','make','make-dir',
+            'make-face','max','maximum','maximum-of','min','minimum',
+            'minimum-of','modified?','mold','money?','multiply','native?',
+            'negate','negative?','none?','not','not-equal?','now','number?',
+            'object?','odd?','offset-to-caret','offset?','op?','open','or',
+            'pair?','paren?','parse','parse-xml','path?','pick','poke','port?',
+            'positive?','power','prin','print','probe','protect',
+            'protect-system','query','random','read','read-io','recycle',
+            'refinement?','reform','rejoin','remainder','remold','remove',
+            'rename',
+            //'repeat',
+            'repend','replace','request','request-color','request-date',
+            'request-download','request-file','request-list','request-pass',
+            'request-text','resend','reverse','routine?','same?','save',
+            'script?','second','select','send','series?','set','set-modes',
+            'set-net','set-path?','set-word?','show','show-popup','sign?',
+            'sine','size-text','size?','skip','sort','source','span?',
+            'split-path','square-root','strict-equal?','strict-not-equal?',
+            'string?','struct?','stylize','subtract','suffix?','tag?','tail',
+            'tail?','tangent','third','time?','to','to-binary','to-bitset',
+            'to-block','to-char','to-date','to-decimal','to-email','to-file',
+            'to-get-word','to-hash','to-hex','to-idate','to-image','to-integer',
+            'to-issue','to-list','to-lit-path','to-lit-word','to-local-file',
+            'to-logic','to-money','to-pair','to-paren','to-path',
+            'to-rebol-file','to-refinement','to-set-path','to-set-word',
+            'to-string','to-tag','to-time','to-tuple','to-url','to-word',
+            'trace','trim','tuple?','type?','unfocus','union','unique',
+            'unprotect','unset','unset?','unview','update','upgrade',
+            'uppercase','url?','usage','use','value?','view','viewed?','what',
+            'what-dir','within?','word?','write','write-io','xor','zero?',
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #000066;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+//            2 => 'color: #808080; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #006600;',
+            2 => 'color: #006600;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #0000ff;'
+            ),
+        'SCRIPT' => array(
+            0 => '',
+            1 => '',
+            2 => '',
+            3 => ''
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+//        2 => 'includes/dico_rebol.php?word={FNAME}',
+//        3 => 'includes/dico_rebol.php?word={FNAME}'
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*",
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/inc/geshi/reg.php b/inc/geshi/reg.php
index feb345da78ca006d68c816f42845490e586f5973..9c85a150b1654cafea189429f491d814f6feb01a 100644
--- a/inc/geshi/reg.php
+++ b/inc/geshi/reg.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Sean Hanna (smokingrope@gmail.com)
  * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 03/15/2006
  *
  * Microsoft Registry Editor language file for GeSHi.
@@ -116,10 +116,10 @@ $language_data = array (
         'SCRIPT' => array(
             ),
         'REGEXPS' => array(
-            0 => '',
+            0 => 'color: #00CCFF;',
             1 => 'color: #0000FF;',
             2 => '',
-            3 => '',
+            3 => 'color: #0000FF;',
             4 => 'color: #0000FF;',
             5 => '',
             6 => '',
@@ -142,8 +142,8 @@ $language_data = array (
             GESHI_REPLACE => '\\3',
             GESHI_MODIFIERS => '',
             GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\5',
-            GESHI_CLASS => 'kw1'
+            GESHI_AFTER => '\\5'
+//            GESHI_CLASS => 'kw1'
             ),
         // Highlight File Format Header Version 5
         1 => array(
@@ -169,8 +169,8 @@ $language_data = array (
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'm',
             GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-            GESHI_CLASS => 'kw2'
+            GESHI_AFTER => '\\3'
+//            GESHI_CLASS => 'kw2'
             ),
         // Highlight variable names
         4 => array(
@@ -192,7 +192,7 @@ $language_data = array (
             ),
         // Highlight Hexadecimal Values (Single-Line and Multi-Line)
         6 => array(
-            GESHI_SEARCH => '(^\s*)(hex:[0-9a-fA-F]{2}(,(\\\s*\n\s*)?[0-9a-fA-F]{2})*)',
+            GESHI_SEARCH => '(=\s*\n?\s*)(hex:[0-9a-fA-F]{2}(,(\\\s*\n\s*)?[0-9a-fA-F]{2})*)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'm',
             GESHI_BEFORE => '\\1',
diff --git a/inc/geshi/robots.php b/inc/geshi/robots.php
index 1540f44e48b83deb7ef43da0f6aa04b108d8b271..7bb2b2047544e0f8d402c18477645affc5c6e28d 100644
--- a/inc/geshi/robots.php
+++ b/inc/geshi/robots.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Christian Lescuyer (cl@goelette.net)
  * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/02/17
  *
  * robots.txt language file for GeSHi.
diff --git a/inc/geshi/ruby.php b/inc/geshi/ruby.php
index 2000444aa3c7747a1f08d9d1e3c34e9374a6f01d..8928557153b43019438af6c4d3b0ec12aad694b4 100644
--- a/inc/geshi/ruby.php
+++ b/inc/geshi/ruby.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Moises Deniz
  * Copyright: (c) 2007 Moises Deniz
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/03/21
  *
  * Ruby language file for GeSHi.
diff --git a/inc/geshi/sas.php b/inc/geshi/sas.php
index db2cbb14267b55ef550f6c646bebaaedb7e01643..d4ee82887572bae3002f5da0e7930a6a90f8ee4d 100644
--- a/inc/geshi/sas.php
+++ b/inc/geshi/sas.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Galen Johnson (solitaryr@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/12/27
  *
  * SAS language file for GeSHi. Based on the sas vim file.
@@ -50,94 +50,79 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            '_NULL_', '_INFILE_', '_N_', '_WEBOUT_', '_NUMERIC_', '_CHARACTER_', '_ALL_'
+            '_ALL_','_CHARACTER_','_INFILE_','_N_','_NULL_','_NUMERIC_',
+            '_WEBOUT_'
             ),
         2 => array(
-            '%BQUOTE', '%NRBQUOTE', '%CMPRES', '%QCMPRES',
-            '%COMPSTOR', '%DATATYP', '%DISPLAY', '%DO',
-            '%ELSE', '%END', '%EVAL', '%GLOBAL',
-            '%GOTO', '%IF', '%INDEX', '%INPUT',
-            '%KEYDEF', '%LABEL', '%LEFT', '%LENGTH',
-            '%LET', '%LOCAL', '%LOWCASE', '%MACRO',
-            '%MEND', '%NRBQUOTE', '%NRQUOTE', '%NRSTR',
-            '%PUT', '%QCMPRES', '%QLEFT', '%QLOWCASE',
-            '%QSCAN', '%QSUBSTR', '%QSYSFUNC', '%QTRIM',
-            '%QUOTE', '%QUPCASE', '%SCAN', '%STR',
-            '%SUBSTR', '%SUPERQ', '%SYSCALL', '%SYSEVALF',
-            '%SYSEXEC', '%SYSFUNC', '%SYSGET', '%SYSLPUT',
-            '%SYSPROD', '%SYSRC', '%SYSRPUT', '%THEN',
-            '%TO', '%TRIM', '%UNQUOTE', '%UNTIL',
-            '%UPCASE', '%VERIFY', '%WHILE', '%WINDOW'
+            '%BQUOTE','%CMPRES','%COMPSTOR','%DATATYP','%DISPLAY','%DO','%ELSE',
+            '%END','%EVAL','%GLOBAL','%GOTO','%IF','%INDEX','%INPUT','%KEYDEF',
+            '%LABEL','%LEFT','%LENGTH','%LET','%LOCAL','%LOWCASE','%MACRO',
+            '%MEND','%NRBQUOTE','%NRQUOTE','%NRSTR','%PUT','%QCMPRES','%QLEFT',
+            '%QLOWCASE','%QSCAN','%QSUBSTR','%QSYSFUNC','%QTRIM','%QUOTE',
+            '%QUPCASE','%SCAN','%STR','%SUBSTR','%SUPERQ','%SYSCALL',
+            '%SYSEVALF','%SYSEXEC','%SYSFUNC','%SYSGET','%SYSLPUT','%SYSPROD',
+            '%SYSRC','%SYSRPUT','%THEN','%TO','%TRIM','%UNQUOTE','%UNTIL',
+            '%UPCASE','%VERIFY','%WHILE','%WINDOW'
             ),
         3 => array(
-            'ABS', 'ADDR', 'AIRY', 'ARCOS', 'ARSIN', 'ATAN', 'ATTRC', 'ATTRN',
-            'BAND', 'BETAINV', 'BLSHIFT', 'BNOT', 'BOR', 'BRSHIFT', 'BXOR',
-            'BYTE', 'CDF', 'CEIL', 'CEXIST', 'CINV', 'CLOSE', 'CNONCT', 'COLLATE',
-            'COMPBL', 'COMPOUND', 'COMPRESS', 'COSH', 'COS', 'CSS', 'CUROBS',
-            'CV', 'DACCDBSL', 'DACCDB', 'DACCSL', 'DACCSYD', 'DACCTAB',
-            'DAIRY', 'DATETIME', 'DATEJUL', 'DATEPART', 'DATE', 'DAY',
-            'DCLOSE', 'DEPDBSL', 'DEPDB', 'DEPSL',
-            'DEPSYD', 'DEPSYD', 'DEPTAB', 'DEPTAB', 'DEQUOTE', 'DHMS',
-            'DIF', 'DIGAMMA', 'DIM', 'DINFO', 'DNUM', 'DOPEN', 'DOPTNAME',
-            'DOPTNUM', 'DREAD', 'DROPNOTE', 'DSNAME', 'ERFC', 'ERF', 'EXIST',
-            'EXP', 'FAPPEND', 'FCLOSE', 'FCOL', 'FDELETE', 'FETCHOBS', 'FETCH',
-            'FEXIST', 'FGET', 'FILEEXIST', 'FILENAME', 'FILEREF', 'FINFO',
-            'FINV', 'FIPNAMEL', 'FIPNAME', 'FIPSTATE', 'FLOOR', 'FNONCT',
-            'FNOTE', 'FOPEN', 'FOPTNAME', 'FOPTNUM', 'FPOINT', 'FPOS',
-            'FPUT', 'FREAD', 'FREWIND', 'FRLEN', 'FSEP', 'FUZZ', 'FWRITE',
-            'GAMINV', 'GAMMA', 'GETOPTION', 'GETVARC', 'GETVARN', 'HBOUND',
-            'HMS', 'HOSTHELP', 'HOUR', 'IBESSEL', 'INDEXW', 'INDEXC',
-            'INDEX', 'INPUTN', 'INPUTC', 'INPUT', 'INTRR', 'INTCK', 'INTNX',
-            'INT', 'IRR', 'JBESSEL', 'JULDATE', 'KURTOSIS', 'LAG', 'LBOUND',
-            'LEFT', 'LENGTH', 'LGAMMA', 'LIBNAME', 'LIBREF', 'LOG10',
-            'LOG2', 'LOGPDF', 'LOGPMF', 'LOGSDF', 'LOG', 'LOWCASE', 'MAX', 'MDY',
-            'MEAN', 'MINUTE', 'MIN', 'MOD', 'MONTH', 'MOPEN', 'MORT',
-            'NETPV', 'NMISS', 'NORMAL', 'NPV', 'N', 'OPEN', 'ORDINAL',
-            'PATHNAME', 'PDF', 'PEEKC', 'PEEK', 'PMF', 'POINT', 'POISSON', 'POKE',
-            'PROBBETA', 'PROBBNML', 'PROBCHI', 'PROBF', 'PROBGAM',
-            'PROBHYPR', 'PROBIT', 'PROBNEGB', 'PROBNORM', 'PROBT', 'PUTN',
-            'PUTC', 'PUT', 'QTR', 'QUOTE', 'RANBIN', 'RANCAU', 'RANEXP',
-            'RANGAM', 'RANGE', 'RANK', 'RANNOR', 'RANPOI', 'RANTBL', 'RANTRI',
-            'RANUNI', 'REPEAT', 'RESOLVE', 'REVERSE', 'REWIND', 'RIGHT',
-            'ROUND', 'SAVING', 'SCAN', 'SDF', 'SECOND', 'SIGN', 'SINH', 'SIN',
-            'SKEWNESS', 'SOUNDEX', 'SPEDIS', 'SQRT', 'STDERR', 'STD', 'STFIPS',
-            'STNAME', 'STNAMEL', 'SUBSTR', 'SUM', 'SYMGET', 'SYSGET', 'SYSMSG',
-            'SYSPROD', 'SYSRC', 'SYSTEM', 'TANH', 'TAN', 'TIMEPART', 'TIME',
-            'TINV', 'TNONCT', 'TODAY', 'TRANSLATE', 'TRANWRD', 'TRIGAMMA',
-            'TRIMN', 'TRIM', 'TRUNC', 'UNIFORM', 'UPCASE', 'USS',
-            'VARFMT', 'VARINFMT', 'VARLABEL', 'VARLEN', 'VARNAME',
-            'VARNUM', 'VARRAYX', 'VARRAY', 'VARTYPE', 'VAR', 'VERIFY', 'VFORMATX',
-            'VFORMATDX', 'VFORMATD', 'VFORMATNX', 'VFORMATN', 'VFORMATWX',
-            'VFORMATW', 'VFORMAT', 'VINARRAYX', 'VINARRAY', 'VINFORMATX',
-            'VINFORMATDX', 'VINFORMATD', 'VINFORMATNX', 'VINFORMATN',
-            'VINFORMATWX', 'VINFORMATW', 'VINFORMAT', 'VLABELX',
-            'VLABEL', 'VLENGTHX', 'VLENGTH', 'VNAMEX', 'VNAME', 'VTYPEX',
-            'VTYPE', 'WEEKDAY', 'YEAR', 'YYQ', 'ZIPFIPS', 'ZIPNAME', 'ZIPNAMEL',
-            'ZIPSTATE'
+            'ABS','ADDR','AIRY','ARCOS','ARSIN','ATAN','ATTRC','ATTRN','BAND',
+            'BETAINV','BLSHIFT','BNOT','BOR','BRSHIFT','BXOR','BYTE','CDF',
+            'CEIL','CEXIST','CINV','CLOSE','CNONCT','COLLATE','COMPBL',
+            'COMPOUND','COMPRESS','COSH','COS','CSS','CUROBS','CV','DACCDBSL',
+            'DACCDB','DACCSL','DACCSYD','DACCTAB','DAIRY','DATETIME','DATEJUL',
+            'DATEPART','DATE','DAY','DCLOSE','DEPDBSL','DEPDB','DEPSL','DEPSYD',
+            'DEPTAB','DEQUOTE','DHMS','DIF','DIGAMMA','DIM','DINFO','DNUM',
+            'DOPEN','DOPTNAME','DOPTNUM','DREAD','DROPNOTE','DSNAME','ERFC',
+            'ERF','EXIST','EXP','FAPPEND','FCLOSE','FCOL','FDELETE','FETCHOBS',
+            'FETCH','FEXIST','FGET','FILEEXIST','FILENAME','FILEREF','FINFO',
+            'FINV','FIPNAMEL','FIPNAME','FIPSTATE','FLOOR','FNONCT','FNOTE',
+            'FOPEN','FOPTNAME','FOPTNUM','FPOINT','FPOS','FPUT','FREAD',
+            'FREWIND','FRLEN','FSEP','FUZZ','FWRITE','GAMINV','GAMMA',
+            'GETOPTION','GETVARC','GETVARN','HBOUND','HMS','HOSTHELP','HOUR',
+            'IBESSEL','INDEXW','INDEXC','INDEX','INPUTN','INPUTC','INPUT',
+            'INTRR','INTCK','INTNX','INT','IRR','JBESSEL','JULDATE','KURTOSIS',
+            'LAG','LBOUND','LEFT','LENGTH','LGAMMA','LIBNAME','LIBREF','LOG10',
+            'LOG2','LOGPDF','LOGPMF','LOGSDF','LOG','LOWCASE','MAX','MDY',
+            'MEAN','MINUTE','MIN','MOD','MONTH','MOPEN','MORT','NETPV','NMISS',
+            'NORMAL','NPV','N','OPEN','ORDINAL','PATHNAME','PDF','PEEKC','PEEK',
+            'PMF','POINT','POISSON','POKE','PROBBETA','PROBBNML','PROBCHI',
+            'PROBF','PROBGAM','PROBHYPR','PROBIT','PROBNEGB','PROBNORM','PROBT',
+            'PUTN','PUTC','PUT','QTR','QUOTE','RANBIN','RANCAU','RANEXP',
+            'RANGAM','RANGE','RANK','RANNOR','RANPOI','RANTBL','RANTRI',
+            'RANUNI','REPEAT','RESOLVE','REVERSE','REWIND','RIGHT','ROUND',
+            'SAVING','SCAN','SDF','SECOND','SIGN','SINH','SIN','SKEWNESS',
+            'SOUNDEX','SPEDIS','SQRT','STDERR','STD','STFIPS','STNAME',
+            'STNAMEL','SUBSTR','SUM','SYMGET','SYSGET','SYSMSG','SYSPROD',
+            'SYSRC','SYSTEM','TANH','TAN','TIMEPART','TIME','TINV','TNONCT',
+            'TODAY','TRANSLATE','TRANWRD','TRIGAMMA','TRIMN','TRIM','TRUNC',
+            'UNIFORM','UPCASE','USS','VARFMT','VARINFMT','VARLABEL','VARLEN',
+            'VARNAME','VARNUM','VARRAYX','VARRAY','VARTYPE','VAR','VERIFY',
+            'VFORMATX','VFORMATDX','VFORMATD','VFORMATNX','VFORMATN',
+            'VFORMATWX','VFORMATW','VFORMAT','VINARRAYX','VINARRAY',
+            'VINFORMATX','VINFORMATDX','VINFORMATD','VINFORMATNX','VINFORMATN',
+            'VINFORMATWX','VINFORMATW','VINFORMAT','VLABELX','VLABEL',
+            'VLENGTHX','VLENGTH','VNAMEX','VNAME','VTYPEX','VTYPE','WEEKDAY',
+            'YEAR','YYQ','ZIPFIPS','ZIPNAME','ZIPNAMEL','ZIPSTATE'
             ),
         4 => array(
-            'ABORT', 'ARRAY', 'ATTRIB', 'BY', 'CALL', 'CARDS4', 'CATNAME',
-            'CONTINUE', 'DATALINES4', 'DELETE', 'DISPLAY',
-            'DM', 'DROP', 'ENDSAS', 'FILENAME', 'FILE', 'FOOTNOTE',
-            'FORMAT', 'GOTO', 'INFILE', 'INFORMAT', 'INPUT', 'KEEP',
-            'LABEL', 'LEAVE', 'LENGTH', 'LIBNAME', 'LINK', 'LIST', 'LOSTCARD',
-            'MERGE', 'MISSING', 'MODIFY', 'OPTIONS', 'OUTPUT', 'PAGE',
-            'PUT', 'REDIRECT', 'REMOVE', 'RENAME', 'REPLACE', 'RETAIN',
-            'RETURN', 'SELECT', 'SET', 'SKIP', 'STARTSAS', 'STOP', 'TITLE',
-            'UPDATE', 'WAITSAS', 'WHERE', 'WINDOW', 'X', 'SYSTASK',
-            'ADD', 'AND', 'ALTER', 'AS', 'CASCADE', 'CHECK', 'CREATE',
-            'DELETE', 'DESCRIBE', 'DISTINCT', 'DROP', 'FOREIGN',
-            'FROM', 'GROUP', 'HAVING', 'INDEX', 'INSERT', 'INTO', 'IN',
-            'KEY', 'LIKE', 'MESSAGE', 'MODIFY', 'MSGTYPE', 'NOT',
-            'NULL', 'ON', 'OR', 'ORDER', 'PRIMARY', 'REFERENCES',
-            'RESET', 'RESTRICT', 'SELECT', 'SET', 'TABLE',
-            'UNIQUE', 'UPDATE', 'VALIDATE', 'VIEW', 'WHERE'
+            'ABORT','ADD','ALTER','AND','ARRAY','AS','ATTRIB','BY','CALL',
+            'CARDS4','CASCADE','CATNAME','CHECK','CONTINUE','CREATE',
+            'DATALINES4','DELETE','DESCRIBE','DISPLAY','DISTINCT','DM','DROP',
+            'ENDSAS','FILE','FOOTNOTE','FOREIGN','FORMAT','FROM',
+            'GOTO','GROUP','HAVING','IN','INFILE','INFORMAT',
+            'INSERT','INTO','KEEP','KEY','LABEL','LEAVE',
+            'LIKE','LINK','LIST','LOSTCARD','MERGE','MESSAGE','MISSING',
+            'MODIFY','MSGTYPE','NOT','NULL','ON','OPTIONS','OR','ORDER',
+            'OUTPUT','PAGE','PRIMARY','REDIRECT','REFERENCES','REMOVE',
+            'RENAME','REPLACE','RESET','RESTRICT','RETAIN','RETURN','SELECT',
+            'SET','SKIP','STARTSAS','STOP','SYSTASK','TABLE','TITLE','UNIQUE',
+            'UPDATE','VALIDATE','VIEW','WAITSAS','WHERE','WINDOW','X'
             ),
         5 => array(
-            'DO', 'ELSE', 'END', 'IF', 'THEN', 'UNTIL', 'WHILE'
+            'DO','ELSE','END','IF','THEN','UNTIL','WHILE'
             ),
         6 => array(
-            'RUN', 'QUIT', 'DATA'
+            'RUN','QUIT','DATA'
             ),
         7 => array(
             'ERROR'
diff --git a/inc/geshi/scala.php b/inc/geshi/scala.php
index 00c75cfd62e100b0cf35f6e630b299df5386a15d..c72de3362bdd7d50b186a04517abb9a1c46fdc67 100644
--- a/inc/geshi/scala.php
+++ b/inc/geshi/scala.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Franco Lombardo (franco@francolombardo.net)
  * Copyright: (c) 2008 Franco Lombardo, Benny Baumann
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/02/08
  *
  * Scala language file for GeSHi.
@@ -66,8 +66,8 @@ $language_data = array (
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
+        1 => true,
+        2 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
diff --git a/inc/geshi/scheme.php b/inc/geshi/scheme.php
index c72cb32819a4dc901930ec8cb47792aab023fe6d..1c85f80e6f9e57ac521bd1aff48d669c3fa859ea 100644
--- a/inc/geshi/scheme.php
+++ b/inc/geshi/scheme.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jon Raphaelson (jonraphaelson@gmail.com)
  * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * Scheme language file for GeSHi.
diff --git a/inc/geshi/scilab.php b/inc/geshi/scilab.php
new file mode 100644
index 0000000000000000000000000000000000000000..bfe72ad838c02e7cb5792203b3e567f1354e31b2
--- /dev/null
+++ b/inc/geshi/scilab.php
@@ -0,0 +1,295 @@
+<?php
+/*************************************************************************************
+ * scilab.php
+ * --------
+ * Author: Christophe David (geshi@christophedavid.org)
+ * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/08/04
+ *
+ * SciLab language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/08/25 (1.0.8.1)
+ *   - Corrected with the help of Benny Baumann (BenBE@geshi.org)
+ * 2008/08/04 (0.0.0.1)
+ *   - First beta Release - known problem with ' used to transpose matrices considered as start of strings
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'SciLab',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        2 => "/\w+'/"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'HARDQUOTE' => array("'", "'"),
+    'HARDESCAPE' => array(),
+    'KEYWORDS' => array(
+        1 => array(
+            'if', 'else', 'elseif', 'end', 'select', 'case', 'for', 'while', 'break'
+            ),
+        2 => array(
+            'STDIN', 'STDOUT', 'STDERR',
+            '%i', '%pi', '%e', '%eps', '%nan', '%inf', '%s', '%t', '%f',
+            'usual', 'polynomial', 'boolean', 'character', 'function', 'rational', 'state-space',
+            'sparse', 'boolean sparse', 'list', 'tlist', 'library', 'endfunction'
+            ),
+        3 => array(
+            '%asn', '%helps', '%k', '%sn', 'abcd', 'abinv', 'abort', 'about', 'About_M2SCI_tools',
+            'abs', 'acos', 'acosh', 'acoshm', 'acosm', 'AdCommunications', 'add_demo', 'add_edge',
+            'add_help_chapter', 'add_node', 'add_palette', 'addcolor', 'addf', 'addinter', 'addmenu',
+            'adj_lists', 'adj2sp', 'aff2ab', 'alufunctions', 'amell', 'analpf', 'analyze', 'and',
+            'ans', 'apropos', 'arc_graph', 'arc_number', 'arc_properties', 'argn', 'arhnk', 'arl2',
+            'arma', 'arma2p', 'armac', 'armax', 'armax1', 'arsimul', 'artest', 'articul', 'ascii',
+            'asciimat', 'asin', 'asinh', 'asinhm', 'asinm', 'assignation', 'atan', 'atanh', 'atanhm',
+            'atanm', 'augment', 'auread', 'auwrite', 'axes_properties', 'axis_properties', 'backslash',
+            'balanc', 'balreal', 'bandwr', 'banner','bar', 'barh', 'barhomogenize', 'basename', 'bdiag',
+            'beep', 'besselh', 'besseli', 'besselj', 'besselk', 'bessely', 'best_match', 'beta','bezout',
+            'bifish', 'bilin', 'binomial', 'black', 'bloc2exp', 'bloc2ss', 'bode', 'bool2s',
+            'boucle', 'brackets', 'browsevar', 'bsplin3val', 'bstap', 'buttmag', 'buttondialog',
+            'bvode', 'bvodeS', 'c_link', 'cainv', 'calendar', 'calerf', 'calfrq', 'call', 'canon', 'casc',
+            'cat', 'catch', 'ccontrg', 'cd', 'cdfbet', 'cdfbin', 'cdfchi', 'cdfchn', 'cdff', 'cdffnc',
+            'cdfgam', 'cdfnbn', 'cdfnor', 'cdfpoi', 'cdft', 'ceil', 'cell', 'cell2mat', 'cellstr', 'center',
+            'cepstrum', 'chain_struct', 'chaintest', 'champ', 'champ_properties', 'champ1', 'char', 'chart',
+            'chartooem', 'chdir', 'cheb1mag', 'cheb2mag', 'check_graph', 'chepol', 'chfact', 'chol', 'chsolve',
+            'circuit', 'classmarkov', 'clc', 'clean', 'clear', 'clear_pixmap', 'clearfun', 'clearglobal','clf',
+            'clipboard', 'close', 'cls2dls', 'cmb_lin', 'cmndred', 'cmoment', 'code2str', 'coeff', 'coff', 'coffg',
+            'colcomp', 'colcompr', 'colinout', 'colon', 'color', 'color_list', 'colorbar', 'colordef', 'colormap',
+            'colregul', 'comma', 'comments', 'comp', 'companion', 'comparison', 'Compound_properties', 'con_nodes',
+            'cond', 'config', 'configure_msvc', 'conj', 'connex', 'console', 'cont_frm', 'cont_mat', 'Contents',
+            'continue', 'contour', 'contour2d', 'contour2di', 'contourf', 'contr', 'contract_edge', 'contrss',
+            'convex_hull', 'convol', 'convstr', 'copfac', 'copy', 'corr', 'correl', 'cos', 'cosh', 'coshm',
+            'cosm', 'cotg', 'coth', 'cothm', 'covar', 'create_palette', 'cshep2d', 'csim', 'cspect', 'Cste',
+            'ctr_gram', 'cumprod', 'cumsum', 'cycle_basis', 'czt', 'dasrt', 'dassl', 'datafit', 'date', 'datenum',
+            'datevec', 'dbphi', 'dcf', 'ddp', 'debug', 'dec2hex', 'deff', 'definedfields', 'degree', 'delbpt',
+            'delete', 'delete_arcs', 'delete_nodes', 'delip', 'delmenu', 'demoplay', 'denom', 'derivat', 'derivative',
+            'des2ss', 'des2tf', 'det', 'determ', 'detr', 'detrend', 'dft', 'dhinf', 'dhnorm', 'diag', 'diary',
+            'diff', 'diophant', 'dir', 'dirname', 'disp', 'dispbpt', 'dispfiles', 'dlgamma', 'dnaupd', 'do', 'dot',
+            'double', 'dragrect', 'draw', 'drawaxis', 'drawlater', 'drawnow', 'driver', 'dsaupd', 'dscr',
+            'dsearch', 'dsimul', 'dt_ility', 'dtsi', 'edge_number', 'edit', 'edit_curv', 'edit_error',
+            'edit_graph', 'edit_graph_menus', 'editvar', 'eigenmarkov', 'ell1mag',
+            'empty', 'emptystr', 'eqfir', 'eqiir', 'equal', 'Equal', 'equil', 'equil1',
+            'ereduc', 'erf', 'erfc', 'erfcx', 'errbar', 'errcatch', 'errclear', 'error', 'error_table', 'etime',
+            'eval', 'eval_cshep2d', 'eval3d', 'eval3dp', 'evans', 'evstr', 'excel2sci', 'exec', 'execstr', 'exists',
+            'exit', 'exp', 'expm', 'external', 'extraction', 'eye', 'fac3d', 'factorial', 'factors', 'faurre', 'fchamp',
+            'fcontour', 'fcontour2d', 'fec', 'fec_properties', 'feedback', 'feval', 'ffilt', 'fft', 'fft2', 'fftshift',
+            'fgrayplot', 'figure', 'figure_properties', 'figure_style', 'file', 'fileinfo', 'fileparts', 'filter', 'find',
+            'find_freq', 'find_path', 'findABCD', 'findAC', 'findBD', 'findBDK', 'findm', 'findmsvccompiler', 'findobj',
+            'findR', 'findx0BD', 'firstnonsingleton', 'fit_dat', 'fix', 'floor', 'flts', 'foo', 'format',
+            'formatman', 'fort', 'fourplan', 'fplot2d', 'fplot3d', 'fplot3d1', 'fprintf', 'fprintfMat', 'frep2tf',
+            'freq', 'freson', 'frexp', 'frfit', 'frmag', 'fscanf', 'fscanfMat', 'fsfirlin', 'fsolve', 'fspecg',
+            'fstabst', 'fstair', 'ftest', 'ftuneq', 'full', 'fullfile', 'fullrf', 'fullrfk', 'fun2string', 'Funcall',
+            'funcprot', 'functions', 'funptr', 'fusee', 'G_make', 'g_margin', 'gainplot', 'gamitg',
+            'gamma', 'gammaln', 'gca', 'gcare', 'gcd', 'gce', 'gcf', 'gda', 'gdf', 'gen_net', 'genfac3d', 'genlib',
+            'genmarkov', 'geom3d', 'geomean', 'get', 'get_contents_infer', 'get_function_path', 'getcolor', 'getcwd',
+            'getd', 'getdate', 'getenv', 'getf', 'getfield', 'getfont', 'gethistory', 'getio', 'getlinestyle',
+            'getlongpathname', 'getmark', 'getmemory', 'getos', 'getpid', 'getscilabkeywords', 'getshell',
+            'getshortpathname', 'getsymbol', 'getvalue', 'getversion', 'gfare', 'gfrancis', 'girth', 'givens',
+            'glever', 'glist', 'global', 'GlobalProperty', 'glue', 'gmres', 'gpeche', 'gr_menu', 'graduate', 'grand',
+            'graph_2_mat', 'graph_center', 'graph_complement', 'graph_diameter', 'graph_power', 'graph_simp', 'graph_sum',
+            'graph_union', 'graphic', 'Graphics', 'graphics_entities', 'graph-list', 'graycolormap', 'grayplot',
+            'grayplot_properties', 'graypolarplot', 'great', 'grep', 'group', 'gschur', 'gsort', 'gspec', 'gstacksize',
+            'gtild', 'h_cl', 'h_inf', 'h_inf_st', 'h_norm', 'h2norm', 'halt', 'hamilton', 'hank', 'hankelsv', 'harmean',
+            'hat', 'havewindow', 'head_comments', 'help', 'help_skeleton', 'hermit', 'hess', 'hex2dec', 'hilb', 'hinf',
+            'hist3d', 'histplot', 'horner', 'host', 'hotcolormap', 'householder', 'hrmt', 'hsv2rgb', 'hsvcolormap',
+            'htrianr', 'hypermat', 'hypermatrices', 'iconvert', 'ieee', 'ifft', 'iir', 'iirgroup', 'iirlp',
+            'ilib_build', 'ilib_compile', 'ilib_for_link', 'ilib_gen_gateway', 'ilib_gen_loader', 'ilib_gen_Make',
+            'im_inv', 'imag', 'impl', 'imrep2ss', 'imult', 'ind2sub', 'Infer', 'inistate', 'input', 'insertion', 'int',
+            'int16', 'int2d', 'int32', 'int3d', 'int8', 'intc', 'intdec', 'integrate', 'interp', 'interp1', 'interp2d',
+            'interp3d', 'interpln', 'intersci', 'intersect', 'intg', 'intl', 'intppty', 'intsplin', 'inttrap', 'inttype',
+            'inv', 'inv_coeff', 'invr', 'invsyslin', 'iqr', 'is_connex', 'iscellstr', 'isdef', 'isdir', 'isempty',
+            'isequal', 'isequalbitwise', 'iserror', 'isglobal', 'isinf', 'isnan', 'isoview', 'isreal', 'javasci',
+            'jetcolormap', 'jmat', 'justify', 'kalm', 'karmarkar', 'kernel', 'keyboard', 'knapsack', 'kpure', 'krac2',
+            'kron', 'kroneck', 'label_properties', 'labostat', 'LANGUAGE', 'lasterror', 'lattn', 'lattp', 'lcf', 'lcm',
+            'lcmdiag', 'ldiv', 'ldivf', 'leastsq', 'left', 'legend', 'legend_properties', 'legendre', 'legends', 'length',
+            'leqr', 'less', 'lev', 'levin', 'lex_sort', 'lft', 'lgfft', 'lib', 'lin', 'lin2mu', 'lindquist',
+            'line_graph', 'linear_interpn', 'lines', 'LineSpec', 'linf', 'linfn', 'link', 'linmeq', 'linpro', 'linsolve',
+            'linspace', 'listfiles', 'listvarinfile', 'lmisolver', 'lmitool', 'load', 'load_graph', 'loadhistory',
+            'loadmatfile', 'loadplots', 'loadwave', 'locate', 'log', 'log10', 'log1p', 'log2', 'logm', 'logspace',
+            'lotest', 'lqe', 'lqg', 'lqg_ltr', 'lqg2stan', 'lqr', 'ls', 'lsq', 'lsq_splin', 'lsqrsolve', 'lsslist',
+            'lstcat', 'lstsize', 'ltitr', 'lu', 'ludel', 'lufact', 'luget', 'lusolve', 'lyap', 'm_circle', 'm2scideclare',
+            'macglov', 'macr2lst', 'macr2tree', 'macro', 'macrovar', 'mad', 'make_graph', 'make_index', 'makecell', 'man',
+            'manedit', 'mapsound', 'markp2ss', 'mat_2_graph', 'matfile2sci', 'Matlab-Scilab_character_strings', 'Matplot',
+            'Matplot_properties', 'Matplot1', 'matrices', 'matrix', 'max', 'max_cap_path', 'max_clique', 'max_flow',
+            'maxi', 'mcisendstring', 'mclearerr', 'mclose', 'mdelete', 'mean', 'meanf', 'median', 'menus', 'meof',
+            'merror', 'mese', 'mesh', 'mesh2d', 'meshgrid', 'mfft', 'mfile2sci', 'mfprintf', 'mfscanf', 'mget', 'mgeti',
+            'mgetl', 'mgetstr', 'milk_drop', 'min', 'min_lcost_cflow', 'min_lcost_flow1', 'min_lcost_flow2',
+            'min_qcost_flow', 'min_weight_tree', 'mine', 'mini', 'minreal', 'minss', 'minus', 'mkdir', 'mlist', 'mode',
+            'modulo', 'moment', 'mopen', 'move', 'mprintf', 'mps2linpro', 'mput', 'mputl', 'mputstr', 'mrfit', 'mscanf',
+            'msd', 'mseek', 'msprintf', 'msscanf', 'mstr2sci', 'mtell', 'mtlb_0', 'mtlb_a', 'mtlb_all', 'mtlb_any',
+            'mtlb_axis', 'mtlb_beta', 'mtlb_box', 'mtlb_close', 'mtlb_colordef', 'mtlb_conv', 'mtlb_cumprod', 'mtlb_cumsum',
+            'mtlb_dec2hex', 'mtlb_delete', 'mtlb_diag', 'mtlb_diff', 'mtlb_dir', 'mtlb_double', 'mtlb_e', 'mtlb_echo',
+            'mtlb_eig', 'mtlb_eval', 'mtlb_exist', 'mtlb_eye', 'mtlb_false', 'mtlb_fft', 'mtlb_fftshift', 'mtlb_find',
+            'mtlb_findstr', 'mtlb_fliplr', 'mtlb_fopen', 'mtlb_format', 'mtlb_fprintf', 'mtlb_fread', 'mtlb_fscanf',
+            'mtlb_full', 'mtlb_fwrite', 'mtlb_grid', 'mtlb_hold', 'mtlb_i', 'mtlb_ifft', 'mtlb_imp', 'mtlb_int16',
+            'mtlb_int32', 'mtlb_int8', 'mtlb_is', 'mtlb_isa', 'mtlb_isfield', 'mtlb_isletter', 'mtlb_isspace', 'mtlb_l',
+            'mtlb_legendre', 'mtlb_linspace', 'mtlb_load', 'mtlb_logic', 'mtlb_logical', 'mtlb_lower', 'mtlb_max',
+            'mtlb_min', 'mtlb_mode', 'mtlb_more', 'mtlb_num2str', 'mtlb_ones', 'mtlb_plot', 'mtlb_prod', 'mtlb_rand',
+            'mtlb_randn', 'mtlb_rcond', 'mtlb_realmax', 'mtlb_realmin', 'mtlb_repmat', 'mtlb_s', 'mtlb_save',
+            'mtlb_setstr', 'mtlb_size', 'mtlb_sort', 'mtlb_sparse', 'mtlb_strcmp', 'mtlb_strcmpi', 'mtlb_strfind',
+            'mtlb_strrep', 'mtlb_sum', 'mtlb_t', 'mtlb_toeplitz', 'mtlb_tril', 'mtlb_triu', 'mtlb_true', 'mtlb_uint16',
+            'mtlb_uint32', 'mtlb_uint8', 'mtlb_upper', 'mtlb_zeros', 'mu2lin', 'mucomp', 'mulf', 'mvvacov', 'name2rgb',
+            'names', 'nancumsum', 'nand2mean', 'nanmax', 'nanmean', 'nanmeanf', 'nanmedian', 'nanmin', 'nanstdev',
+            'nansum', 'narsimul', 'NDcost', 'ndgrid', 'ndims', 'nearfloat', 'nehari', 'neighbors', 'netclose', 'netwindow',
+            'netwindows', 'new', 'newaxes', 'newest', 'newfun', 'nextpow2', 'nf3d', 'nfreq', 'nlev', 'nnz', 'node_number',
+            'nodes_2_path', 'nodes_degrees', 'noisegen', 'norm', 'not', 'null', 'number_properties', 'numdiff', 'numer',
+            'nyquist', 'object_editor', 'obs_gram', 'obscont', 'obscont1', 'observer', 'obsv_mat', 'obsvss', 'ode',
+            'ode_discrete', 'ode_optional_output', 'ode_root', 'odedc', 'odeoptions', 'oemtochar', 'old_style',
+            'oldbesseli', 'oldbesselj', 'oldbesselk', 'oldbessely', 'oldload', 'oldplot', 'oldsave', 'ones',
+            'Operation', 'optim', 'or', 'orth', 'overloading', 'p_margin', 'param3d', 'param3d_properties',
+            'param3d1', 'paramfplot2d', 'parents', 'parrot', 'part', 'path_2_nodes', 'pathconvert', 'pause', 'pbig',
+            'pca', 'pcg', 'pdiv', 'pen2ea', 'pencan', 'penlaur', 'percent', 'perctl', 'perfect_match', 'perl',
+            'perms', 'permute', 'pertrans', 'pfss', 'phasemag', 'phc', 'pie', 'pinv', 'pipe_network', 'playsnd', 'plot',
+            'plot_graph', 'plot2d', 'plot2d_old_version', 'plot2d1', 'plot2d2', 'plot2d3', 'plot2d4', 'plot3d',
+            'plot3d_old_version', 'plot3d1', 'plot3d2', 'plot3d3', 'plotframe', 'plotprofile', 'plus', 'plzr',
+            'pmodulo', 'pol2des', 'pol2str', 'pol2tex', 'polar', 'polarplot', 'polfact', 'poly', 'polyline_properties',
+            'portr3d', 'portrait', 'power', 'ppol', 'prbs_a', 'predecessors', 'predef', 'print', 'printf',
+            'printf_conversion', 'printing', 'printsetupbox', 'prod', 'profile', 'progressionbar', 'proj', 'projsl',
+            'projspec', 'psmall', 'pspect', 'pvm', 'pvm_addhosts', 'pvm_barrier', 'pvm_bcast', 'pvm_bufinfo', 'pvm_config',
+            'pvm_delhosts', 'pvm_error', 'pvm_exit', 'pvm_f772sci', 'pvm_get_timer', 'pvm_getinst', 'pvm_gettid',
+            'pvm_gsize', 'pvm_halt', 'pvm_joingroup', 'pvm_kill', 'pvm_lvgroup', 'pvm_mytid', 'pvm_parent', 'pvm_probe',
+            'pvm_recv', 'pvm_reduce', 'pvm_sci2f77', 'pvm_send', 'pvm_set_timer', 'pvm_spawn', 'pvm_spawn_independent',
+            'pvm_start', 'pvm_tasks', 'pvm_tidtohost', 'pvmd3', 'pwd', 'qassign', 'qld', 'qmr', 'qr', 'quapro', 'quart',
+            'quaskro', 'quit', 'quote', 'rand', 'randpencil', 'range', 'rank', 'rankqr', 'rat',  'rcond',
+            'rdivf', 'read', 'read4b', 'readb', 'readc_', 'readmps', 'readxls', 'real', 'realtime', 'realtimeinit',
+            'rectangle_properties', 'recur', 'reglin', 'regress', 'remez', 'remezb', 'repfreq', 'replot', 'resethistory',
+            'residu', 'resume', 'return', 'rgb2name', 'ric_desc', 'ricc', 'riccati', 'rlist', 'rmdir', 'roots', 'rotate',
+            'round', 'routh_t', 'rowcomp', 'rowcompr', 'rowinout', 'rowregul', 'rowshuff', 'rpem', 'rref', 'rtitr',
+            'rubberbox', 'salesman', 'sample', 'samplef', 'samwr', 'save', 'save_format', 'save_graph', 'savehistory',
+            'savematfile', 'savewave', 'sca', 'scaling', 'scanf', 'scanf_conversion', 'scf', 'schur', 'sci_files',
+            'sci2exp', 'sci2for', 'sci2map', 'sciargs', 'SciComplex', 'SciComplexArray', 'SciDouble', 'SciDoubleArray',
+            'scilab', 'Scilab', 'ScilabEval', 'scilink', 'scipad', 'SciString', 'SciStringArray', 'sd2sci', 'sda', 'sdf',
+            'secto3d', 'segs_properties', 'semi', 'semicolon', 'semidef', 'sensi', 'set', 'set_posfig_dim',
+            'setbpt', 'setdiff', 'setenv', 'seteventhandler', 'setfield', 'sethomedirectory', 'setlanguage', 'setmenu',
+            'sfact', 'Sfgrayplot', 'Sgrayplot', 'sgrid', 'shortest_path', 'show_arcs', 'show_graph', 'show_nodes',
+            'show_pixmap', 'showprofile', 'sident', 'sign', 'Signal', 'signm', 'simp', 'simp_mode', 'sin', 'sinc',
+            'sincd', 'sinh', 'sinhm', 'sinm', 'size', 'slash', 'sleep', 'sm2des', 'sm2ss', 'smooth', 'solve',
+            'sorder', 'sort', 'sound', 'soundsec', 'sp2adj', 'spaninter', 'spanplus', 'spantwo', 'spchol',
+            'spcompack', 'spec', 'specfact', 'speye', 'spget', 'splin', 'splin2d', 'splin3d', 'split_edge', 'spones',
+            'sprand', 'sprintf', 'spzeros', 'sqroot', 'sqrt', 'sqrtm', 'square', 'squarewave', 'srfaur', 'srkf', 'ss2des',
+            'ss2ss', 'ss2tf', 'sscanf', 'sskf', 'ssprint', 'ssrand', 'st_deviation', 'st_ility', 'stabil', 'stacksize',
+            'star', 'startup', 'stdev', 'stdevf', 'str2code', 'strange', 'strcat', 'strindex', 'string', 'stringbox',
+            'strings', 'stripblanks', 'strong_con_nodes', 'strong_connex', 'strsplit', 'strsubst', 'struct', 'sub2ind',
+            'subf', 'subgraph', 'subplot', 'successors', 'sum', 'supernode', 'surf', 'surface_properties', 'sva',
+            'svd', 'svplot', 'sylm', 'sylv', 'symbols', 'sysconv', 'sysdiag', 'sysfact', 'syslin', 'syssize', 'system',
+            'systems', 'systmat', 'tabul', 'tan', 'tangent', 'tanh', 'tanhm', 'tanm', 'TCL_CreateSlave', 'TCL_DeleteInterp',
+            'TCL_EvalFile', 'TCL_EvalStr', 'TCL_ExistInterp', 'TCL_ExistVar', 'TCL_GetVar', 'TCL_GetVersion', 'TCL_SetVar',
+            'TCL_UnsetVar', 'TCL_UpVar', 'tdinit', 'testmatrix', 'texprint', 'text_properties', 'tf2des', 'tf2ss', 'then',
+            'thrownan', 'tic', 'tilda', 'time_id', 'timer', 'title', 'titlepage', 'TK_EvalFile', 'TK_EvalStr', 'tk_getdir',
+            'tk_getfile', 'TK_GetVar', 'tk_savefile', 'TK_SetVar',  'toc', 'toeplitz', 'tohome', 'tokenpos',
+            'tokens', 'toolbar', 'toprint', 'trace', 'trans', 'trans_closure', 'translatepaths', 'tree2code', 'trfmod',
+            'trianfml', 'tril', 'trimmean', 'trisolve', 'triu', 'try', 'trzeros', 'twinkle', 'type', 'Type', 'typename',
+            'typeof', 'ui_observer', 'uicontrol', 'uimenu', 'uint16', 'uint32', 'uint8', 'ulink', 'unglue', 'union',
+            'unique', 'unix', 'unix_g', 'unix_s', 'unix_w', 'unix_x', 'unobs', 'unsetmenu', 'unzoom', 'user', 'varargin',
+            'varargout', 'Variable', 'variance', 'variancef', 'varn', 'vectorfind', 'waitbar', 'warning', 'wavread',
+            'wavwrite', 'wcenter', 'wfir', 'what', 'where', 'whereami', 'whereis', 'who', 'who_user', 'whos',
+            'wiener', 'wigner', 'winclose', 'window', 'winlist', 'winopen', 'winqueryreg', 'winsid', 'with_atlas',
+            'with_gtk', 'with_javasci', 'with_pvm', 'with_texmacs', 'with_tk', 'writb', 'write', 'write4b', 'x_choices',
+            'x_choose', 'x_dialog', 'x_matrix', 'x_mdialog', 'x_message', 'x_message_modeless', 'xarc', 'xarcs', 'xarrows',
+            'xaxis', 'xbasc', 'xbasimp', 'xbasr', 'xchange', 'xclea', 'xclear', 'xclick', 'xclip', 'xdel', 'xend',
+            'xfarc', 'xfarcs', 'xfpoly', 'xfpolys', 'xfrect', 'xget', 'xgetech', 'xgetfile', 'xgetmouse', 'xgraduate',
+            'xgrid', 'xinfo', 'xinit', 'xlfont', 'xload', 'xls_open', 'xls_read', 'xmltohtml', 'xname', 'xnumb', 'xpause',
+            'xpoly', 'xpolys', 'xrect', 'xrects', 'xrpoly', 'xs2bmp', 'xs2emf', 'xs2eps', 'xs2fig', 'xs2gif', 'xs2ppm',
+            'xs2ps', 'xsave', 'xsegs', 'xselect', 'xset', 'xsetech', 'xsetm', 'xstring', 'xstringb', 'xstringl', 'xtape',
+            'xtitle', 'yulewalk', 'zeropen', 'zeros', 'zgrid', 'zoom_rect', 'zpbutt', 'zpch1', 'zpch2', 'zpell'
+            )
+        ),
+    'SYMBOLS' => array(
+        '<', '>', '=',
+        '!', '@', '~', '&', '|',
+        '+','-', '*', '/', '%',
+        ',', ';', '?', ':', "'"
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #000066;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            2 => '',
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            'HARD' => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;',
+            'HARD' => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #006600;',
+            2 => 'color: #006600;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #0000ff;',
+            4 => 'color: #009999;',
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm',
+        2 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm',
+        3 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm'
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '-&gt;',
+        2 => '::'
+        ),
+    'REGEXPS' => array(
+        //Variable
+        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
+        //File Descriptor
+        4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
diff --git a/inc/geshi/sdlbasic.php b/inc/geshi/sdlbasic.php
index 82d79e27b34f21d6d7cfa4bdd9d33307efdf045d..2e85964835179b184c5aca33e5957809811527f8 100644
--- a/inc/geshi/sdlbasic.php
+++ b/inc/geshi/sdlbasic.php
@@ -4,7 +4,7 @@
  * ------------
  * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/08/19
  *
  * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi.
diff --git a/inc/geshi/smalltalk.php b/inc/geshi/smalltalk.php
index 664944ea3e5b41319c427554699c504758f6a63a..931677331dddd139b74c3b788f4f8591a2dd9595 100644
--- a/inc/geshi/smalltalk.php
+++ b/inc/geshi/smalltalk.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Bananeweizen (Bananeweizen@gmx.de)
  * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/03/27
  *
  * Smalltalk language file for GeSHi.
diff --git a/inc/geshi/smarty.php b/inc/geshi/smarty.php
index 825ab4d2c0716aca94b12f3baf74971f0ff558bc..112ab5aa200d4bafbae09f72423ace5fb0435a5f 100644
--- a/inc/geshi/smarty.php
+++ b/inc/geshi/smarty.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/07/10
  *
  * Smarty template language file for GeSHi.
@@ -47,8 +47,8 @@ $language_data = array (
     'KEYWORDS' => array(
         1 => array(
             '$smarty', 'now', 'const', 'capture', 'config', 'section', 'foreach', 'template', 'version', 'ldelim', 'rdelim',
-            'config_load', 'foreachelse', 'include', 'include_php', 'insert', 'if', 'elseif', 'else', 'php',
-            'sectionelse', 'clear_all_cache', 'clear_cache', 'is_cached',
+            'foreachelse', 'include', 'include_php', 'insert', 'if', 'elseif', 'else', 'php',
+            'sectionelse', 'is_cached',
             ),
         2 => array(
             'capitalize', 'count_characters', 'cat', 'count_paragraphs', 'count_sentences', 'count_words', 'date_format',
@@ -56,7 +56,7 @@ $language_data = array (
             'strip', 'strip_tags', 'truncate', 'upper', 'wordwrap',
             ),
         3 => array(
-            'assign', 'counter', 'cycle', 'debug', 'eval', 'fetch', 'html_checkboxes', 'html_image', 'html_options',
+            'counter', 'cycle', 'debug', 'eval', 'html_checkboxes', 'html_image', 'html_options',
             'html_radios', 'html_select_date', 'html_select_time', 'html_table', 'math', 'mailto', 'popup_init',
             'popup', 'textformat'
             ),
@@ -72,7 +72,7 @@ $language_data = array (
         5 => array(
             'append', 'append_by_ref', 'assign', 'assign_by_ref', 'clear_all_assign', 'clear_all_cache',
             'clear_assign', 'clear_cache', 'clear_compiled_tpl', 'clear_config', 'config_load', 'display',
-            'fetch', 'get_config_vars', 'get_registered_object', 'get_template_vars', 'is_cached',
+            'fetch', 'get_config_vars', 'get_registered_object', 'get_template_vars',
             'load_filter', 'register_block', 'register_compiler_function', 'register_function',
             'register_modifier', 'register_object', 'register_outputfilter', 'register_postfilter',
             'register_prefilter', 'register_resource', 'trigger_error', 'template_exists', 'unregister_block',
@@ -80,7 +80,7 @@ $language_data = array (
             'unregister_outputfilter', 'unregister_postfilter', 'unregister_prefilter', 'unregister_resource'
             ),
         6 => array(
-            'name', 'assign', 'file', 'scope', 'global', 'key', 'once', 'script',
+            'name', 'file', 'scope', 'global', 'key', 'once', 'script',
             'loop', 'start', 'step', 'max', 'show', 'values', 'value', 'from', 'item'
             ),
         7 => array(
@@ -153,7 +153,8 @@ $language_data = array (
         4 => 'http://smarty.php.net/{FNAMEL}',
         5 => 'http://smarty.php.net/{FNAMEL}',
         6 => '',
-        7 => 'http://smarty.php.net/{FNAMEL}'
+        7 => 'http://smarty.php.net/{FNAMEL}',
+        8 => ''
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/sql.php b/inc/geshi/sql.php
index a2cf5f219f881beb0321d3020a98a031cf4d901f..00e4fd224b60aff39deefe9f17068f6c5b9d736a 100644
--- a/inc/geshi/sql.php
+++ b/inc/geshi/sql.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * SQL language file for GeSHi.
@@ -58,30 +58,30 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            'ALL', 'ASC', 'AS',  'ALTER', 'AND', 'ADD', 'AUTO_INCREMENT',
-            'BETWEEN', 'BINARY', 'BOTH', 'BY', 'BOOLEAN',
-            'CHANGE', 'CHECK', 'COLUMNS', 'COLUMN', 'CROSS','CREATE',
-            'DATABASES', 'DATABASE', 'DATA', 'DELAYED', 'DESCRIBE', 'DESC',  'DISTINCT', 'DELETE', 'DROP', 'DEFAULT',
-            'ENCLOSED', 'ESCAPED', 'EXISTS', 'EXPLAIN',
-            'FIELDS', 'FIELD', 'FLUSH', 'FOR', 'FOREIGN', 'FUNCTION', 'FROM',
-            'GROUP', 'GRANT',
-            'HAVING',
-            'IGNORE', 'INDEX', 'INFILE', 'INSERT', 'INNER', 'INTO', 'IDENTIFIED', 'IN', 'IS', 'IF',
-            'JOIN',
-            'KEYS', 'KILL','KEY',
-            'LEADING', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOW_PRIORITY', 'LEFT', 'LANGUAGE',
-            'MODIFY',
-            'NATURAL', 'NOT', 'NULL', 'NEXTVAL',
-            'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'ORDER', 'OUTFILE', 'OR', 'OUTER', 'ON',
-            'PROCEEDURE','PROCEDURAL', 'PRIMARY',
-            'READ', 'REFERENCES', 'REGEXP', 'RENAME', 'REPLACE', 'RETURN', 'REVOKE', 'RLIKE', 'RIGHT',
-            'SHOW', 'SONAME', 'STATUS', 'STRAIGHT_JOIN', 'SELECT', 'SETVAL', 'SET',
-            'TABLES', 'TEMINATED', 'TO', 'TRAILING','TRUNCATE', 'TABLE', 'TEMPORARY', 'TRIGGER', 'TRUSTED',
-            'UNIQUE', 'UNLOCK', 'USE', 'USING', 'UPDATE', 'UNSIGNED',
-            'VALUES', 'VARIABLES', 'VIEW',
-            'WITH', 'WRITE', 'WHERE',
-            'ZEROFILL',
-            'XOR',
+            'ADD', 'ALL', 'ALTER', 'AND', 'AS', 'ASC',
+            'AUTO_INCREMENT', 'BETWEEN', 'BINARY', 'BOOLEAN',
+            'BOTH', 'BY', 'CHANGE', 'CHECK', 'COLUMN', 'COLUMNS',
+            'CREATE', 'CROSS', 'DATA', 'DATABASE', 'DATABASES',
+            'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE',
+            'DISTINCT', 'DROP', 'ENCLOSED', 'ESCAPED', 'EXISTS',
+            'EXPLAIN', 'FIELD', 'FIELDS', 'FLUSH', 'FOR',
+            'FOREIGN', 'FROM', 'FULL', 'FUNCTION', 'GRANT',
+            'GROUP', 'HAVING', 'IDENTIFIED', 'IF', 'IGNORE',
+            'IN', 'INDEX', 'INFILE', 'INNER', 'INSERT', 'INTO',
+            'IS', 'JOIN', 'KEY', 'KEYS', 'KILL', 'LANGUAGE',
+            'LEADING', 'LEFT', 'LIKE', 'LIMIT', 'LINES', 'LOAD',
+            'LOCAL', 'LOCK', 'LOW_PRIORITY', 'MODIFY', 'NATURAL',
+            'NEXTVAL', 'NOT', 'NULL', 'ON', 'OPTIMIZE', 'OPTION',
+            'OPTIONALLY', 'OR', 'ORDER', 'OUTER', 'OUTFILE',
+            'PRIMARY', 'PROCEDURAL', 'PROCEEDURE', 'READ',
+            'REFERENCES', 'REGEXP', 'RENAME', 'REPLACE',
+            'RETURN', 'REVOKE', 'RIGHT', 'RLIKE', 'SELECT',
+            'SET', 'SETVAL', 'SHOW', 'SONAME', 'STATUS',
+            'STRAIGHT_JOIN', 'TABLE', 'TABLES', 'TEMINATED',
+            'TEMPORARY', 'TO', 'TRAILING', 'TRIGGER', 'TRUNCATE',
+            'TRUSTED', 'UNION', 'UNIQUE', 'UNLOCK', 'UNSIGNED',
+            'UPDATE', 'USE', 'USING', 'VALUES', 'VARIABLES',
+            'VIEW', 'WHERE', 'WITH', 'WRITE', 'XOR', 'ZEROFILL'
             )
         ),
     'SYMBOLS' => array(
diff --git a/inc/geshi/tcl.php b/inc/geshi/tcl.php
index bd02d78f78db43df9971b567a129f51f3b9a71f4..9badb21a66b4344a4b70ad97313406f4f126cf6a 100644
--- a/inc/geshi/tcl.php
+++ b/inc/geshi/tcl.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Reid van Melle (rvanmelle@gmail.com)
  * Copyright: (c) 2004 Reid van Melle (sorry@nowhere)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/05/05
  *
  * TCL/iTCL language file for GeSHi.
@@ -84,8 +84,6 @@ $language_data = array (
             // list handling
             'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange',
             'lreplace', 'lsearch', 'lset', 'lsort', 'split',
-            // math
-            'expr',
             // procedures and output
             'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file',
             'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek',
@@ -97,7 +95,7 @@ $language_data = array (
             // library routines
             'enconding', 'http', 'msgcat',
             // system related
-            'cd', 'clock', 'exec', 'exit', 'glob', 'pid', 'pwd', 'time',
+            'cd', 'clock', 'exec', 'glob', 'pid', 'pwd', 'time',
             // platform specified
             'dde', 'registry', 'resource',
             // special variables
@@ -111,8 +109,7 @@ $language_data = array (
          * Set 3: standard library
          */
         3 => array(
-            'comment', 'dde', 'filename', 'http', 'library', 'memory',
-            'packagens', 'registry', 'resource', 'tcltest', 'tclvars',
+            'comment', 'filename', 'library', 'packagens', 'tcltest', 'tclvars',
             ),
 
         /*
diff --git a/inc/geshi/teraterm.php b/inc/geshi/teraterm.php
new file mode 100644
index 0000000000000000000000000000000000000000..f2938cae095cf9b2988978b296be8279f4d84292
--- /dev/null
+++ b/inc/geshi/teraterm.php
@@ -0,0 +1,317 @@
+<?php
+/*************************************************************************************
+ * teraterm.php
+ * --------
+ * Author: Boris Maisuradze (boris at logmett.com)
+ * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/09/26
+ *
+ * Tera Term Macro language file for GeSHi.
+ *
+ *
+ * This version of ttl.php was created for Tera Term 4.60 and LogMeTT 2.9.4.
+ * Newer versions of these application can contain additional Macro commands
+ * and/or keywords that are not listed here. The latest release of ttl.php
+ * can be downloaded from Download section of LogMeTT.com
+ *
+ * CHANGES
+ * -------
+ * 2008/09/26 (1.0.8)
+ *   -  First Release for Tera Term 4.60 and below.
+ *
+ * TODO (updated 2008/09/26)
+ * -------------------------
+ * *
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Tera Term Macro',
+    'COMMENT_SINGLE' => array(1 => ';'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        /* Commands */
+        1 => array(
+            'Beep',
+            'BplusRecv',
+            'BplusSend',
+            'Break',            // (version 4.53 or later)
+            'Call',
+            'CallMenu',         // (version 4.56 or later)
+            'ChangeDir',
+            'ClearScreen',
+            'Clipb2Var',        //(version 4.46 or later)
+            'ClosesBox',
+            'CloseTT',
+            'Code2Str',
+            'Connect',
+            'CRC32',            // (version 4.60 or later)
+            'CRC32File',        // (version 4.60 or later)
+            'CygConnect',       // (version 4.57 or later)
+            'DelPassword',
+            'Disconnect',
+            'Do',               // (version 4.56 or later)
+            'Else',
+            'EnableKeyb',
+            'End',
+            'EndIf',
+            'EndUntil',         // (version 4.56 or later)
+            'EndWhile',
+            'Exec',
+            'ExecCmnd',
+            'Exit',
+            'FileClose',
+            'FileConcat',
+            'FileCopy',
+            'FileCreate',
+            'FileDelete',
+            'FileMarkPtr',
+            'FilenameBox',      //(version 4.54 or later)
+            'FileOpen',
+            'FileRead',
+            'FileReadln',       // (version 4.48 or later)
+            'FileRename',
+            'FileSearch',
+            'FileSeek',
+            'FileSeekBack',
+            'FileStrSeek',
+            'FileStrSeek2',
+            'FileWrite',
+            'FileWriteln',
+            'FindOperations',
+            'FlushRecv',
+            'ForNext',
+            'GetDate',
+            'GetDir',           //(version 4.46 or later)
+            'GetEnv',
+            'GetPassword',
+            'GetTime',
+            'GetTitle',
+            'GetVer',           //(version 4.58 or later)
+            'GoTo',
+            'If',
+            'IfDefined',        // (version 4.46 or later)
+            'IfThenElseIf',
+            'Include',
+            'InputBox',
+            'Int2Str',
+            'KmtFinish',
+            'KmtGet',
+            'KmtRecv',
+            'KmtSend',
+            'LoadKeyMap',
+            'LogClose',
+            'LogOpen',
+            'LogPause',
+            'LogStart',
+            'LogWrite',
+            'Loop',             // (version 4.56 or later)
+            'MakePath',
+            'MessageBox',
+            'MPause',           // (version 4.27 or later)
+            'PasswordBox',
+            'Pause',
+            'QuickvanRecv',
+            'QuickvanSend',
+            'Random',           //(version 4.27 or later)
+            'Recvln',
+            'RestoreSetup',
+            'Return',
+            'RotateLeft',       //(version 4.54 or later)
+            'RotateRight',      //(version 4.54 or later)
+            'ScpRecv',          // (version 4.57 or later)
+            'ScpSend',          // (version 4.57 or later)
+            'Send',
+            'SendBreak',
+            'SendFile',
+            'SendKcode',
+            'Sendln',
+            'SetBaud',          // (version 4.58 or later)
+            'SetDate',
+            'SetDir',
+            'SetDlgPos',
+            'SetDTR',           // (version 4.59 or later)
+            'SetRTS',           // (version 4.59 or later)
+            'SetEnv',           // (version 4.54 or later)
+            'SetEcho',
+            'SetExitCode',
+            'SetSync',
+            'SetTime',
+            'SetTitle',
+            'Show',
+            'ShowTT',
+            'Sprintf',          // (version 4.52 or later)
+            'StatusBox',
+            'Str2Code',
+            'Str2Int',
+            'StrCompare',
+            'StrConcat',
+            'StrCopy',
+            'StrLen',
+            'StrMatch',         // (version 4.59 or later)
+            'StrScan',
+            'Testlink',
+            'Then',
+            'ToLower',          //(version 4.53 or later)
+            'ToUpper',          //(version 4.53 or later)
+            'Unlink',
+            'Until',            // (version 4.56 or later)
+            'Var2Clipb',        //(version 4.46 or later)
+            'Wait',
+            'WaitEvent',
+            'Waitln',
+            'WaitRecv',
+            'WaitRegex',        // (version 4.21 or later)
+            'While',
+            'XmodemRecv',
+            'XmodemSend',
+            'YesNoBox',
+            'ZmodemRecv',
+            'ZmodemSend'
+            ),
+        /* System Variables */
+        2 => array(
+            'groupmatchstr1',
+            'groupmatchstr2',
+            'groupmatchstr3',
+            'groupmatchstr4',
+            'groupmatchstr5',
+            'groupmatchstr6',
+            'groupmatchstr7',
+            'groupmatchstr8',
+            'groupmatchstr9',
+            'inputstr',
+            'matchstr',
+            'param2',
+            'param3',
+            'param4',
+            'param5',
+            'param6',
+            'param7',
+            'param8',
+            'param9',
+            'result',
+            'timeout'
+            ),
+        /* LogMeTT Key Words */
+        3 => array(
+            '$[1]',
+            '$[2]',
+            '$[3]',
+            '$[4]',
+            '$[5]',
+            '$[6]',
+            '$[7]',
+            '$[8]',
+            '$connection$',
+            '$email$',
+            '$logdir$',
+            '$logfilename$',
+            '$logit$',
+            '$mobile$',
+            '$name$',
+            '$pager$',
+            '$parent$',
+            '$phone$',
+            '$snippet$',
+            '$ttdir$',
+            '$user$',
+            '$windir$',
+            ),
+        /* Keyword Symbols */
+        4 => array(
+            'and',
+            'not',
+            'or',
+            'xor'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']',
+        '~', '!', '+', '-', '*', '/', '%', '>>', '<<', '<<<', '>>>', '&', '^', '|',
+        '<>', '<=', '>=', '=', '==', '<>', '!=', '&&', '||'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000080; font-weight: bold!important;',
+            2 => 'color: #808000; font-weight: bold;',  // System Variables
+            3 => 'color: #ff0000; font-weight: bold;',  // LogMeTT Key Words
+            4 => 'color: #ff00ff; font-weight: bold;'   // Keyword Symbols
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #008000; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(),
+        'BRACKETS' => array(
+            0 => 'color: #ff00ff; font-weight: bold;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #800080;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #008080;'
+            ),
+        'SCRIPT' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #ff00ff; font-weight: bold;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #0000ff; font-weight: bold;'
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        0 => array (
+            GESHI_SEARCH => '(\:[_a-zA-Z][_a-zA-Z0-9]+)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/text.php b/inc/geshi/text.php
index 27a48692eefac236599bd3e18045fe3adba204c3..6c6e260b6611ab7dc3857b5134f35373bbca25af 100644
--- a/inc/geshi/text.php
+++ b/inc/geshi/text.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Sean Hanna (smokingrope@gmail.com)
  * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 04/23/2006
  *
  * Standard Text File (No Syntax Highlighting).
diff --git a/inc/geshi/thinbasic.php b/inc/geshi/thinbasic.php
index 4bf1a3472456151b4c980d1f9e46628e092e0855..caa6edf12a959f4d70a291d284976214f62b5da1 100644
--- a/inc/geshi/thinbasic.php
+++ b/inc/geshi/thinbasic.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Eros Olmi (eros.olmi@thinbasic.com)
  * Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/05/12
  *
  * thinBasic language file for GeSHi.
diff --git a/inc/geshi/tsql.php b/inc/geshi/tsql.php
index ce76de4b5167b01a2cf526b661b9e83dfdd77f26..dd6b0cced92f22bb16516917e423b486b89dbeeb 100644
--- a/inc/geshi/tsql.php
+++ b/inc/geshi/tsql.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Duncan Lock (dunc@dflock.co.uk)
  * Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/11/22
  *
  * T-SQL language file for GeSHi.
@@ -135,7 +135,7 @@ $language_data = array (
 
             //System Statistical Functions
             '@@CONNECTIONS','@@PACK_RECEIVED','@@CPU_BUSY','@@PACK_SENT',
-            'fn_virtualfilestats','@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY',
+            '@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY',
             '@@TOTAL_READ','@@PACKET_ERRORS','@@TOTAL_WRITE',
 
             //Text and Image Functions
@@ -169,8 +169,8 @@ $language_data = array (
 
             //Distributed Queries Procedures
             'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs',
-            'sp_primarykeys', 'sp_column_privileges_ex', 'sp_serveroption', 'sp_columns_ex',
-            'sp_table_privileges_ex', 'sp_droplinkedsrvlogin', 'sp_tables_ex', 'sp_foreignkeys',
+            'sp_primarykeys', 'sp_column_privileges_ex', 'sp_columns_ex',
+            'sp_table_privileges_ex', 'sp_tables_ex', 'sp_foreignkeys',
 
             //Full-Text Search Procedures
             'sp_fulltext_catalog', 'sp_help_fulltext_catalogs_cursor', 'sp_fulltext_column',
@@ -236,7 +236,7 @@ $language_data = array (
 
             //Security Procedures
             'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember',
-            'sp_addlinkedsrvlogin', 'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin',
+            'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin',
             'sp_grantlogin', 'sp_addrole', 'sp_helpdbfixedrole', 'sp_addrolemember', 'sp_helpgroup',
             'sp_addserver', 'sp_helplinkedsrvlogin', 'sp_addsrvrolemember', 'sp_helplogins', 'sp_adduser',
             'sp_helpntgroup', 'sp_approlepassword', 'sp_helpremotelogin', 'sp_changedbowner', 'sp_helprole',
diff --git a/inc/geshi/typoscript.php b/inc/geshi/typoscript.php
index f39d1fe69dae88fc0b85d75e8adc473190e58ad9..b0ae7538007ac56e5965bd42871c16d6e8ac2476 100644
--- a/inc/geshi/typoscript.php
+++ b/inc/geshi/typoscript.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Jan-Philipp Halle (typo3@jphalle.de)
  * Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/07/29
  *
  * TypoScript language file for GeSHi.
@@ -49,7 +49,7 @@ $language_data = array (
     'QUOTEMARKS' => array(),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
-        // Conditions: http://support.typo3.org/documentation/tsref/conditions/
+        // Conditions: http://documentation.typo3.org/documentation/tsref/conditions/
         1 => array(
             'browser', 'compatVersion', 'dayofmonth', 'dayofweek', 'device',
             'globalString', 'globalVars', 'hostname', 'hour',
@@ -59,7 +59,7 @@ $language_data = array (
             'usergroup', 'version'
             ),
 
-        // Functions: http://support.typo3.org/documentation/tsref/functions/
+        // Functions: http://documentation.typo3.org/documentation/tsref/functions/
         2 => array(
             'addParams', 'encapsLines', 'filelink', 'HTMLparser',
             'HTMLparser_tags', 'if', 'imageLinkWrap',
@@ -68,13 +68,13 @@ $language_data = array (
             'textStyle', 'typolink'
             ),
 
-        // Toplevel objects: http://support.typo3.org/documentation/tsref/tlo-objects/
+        // Toplevel objects: http://documentation.typo3.org/documentation/tsref/tlo-objects/
         3 => array(
             'CARRAY', 'CONFIG', 'CONSTANTS', 'FE_DATA', 'FE_TABLE', 'FRAME',
             'FRAMESET', 'META', 'PAGE', 'plugin'
             ),
 
-        // Content Objects (cObject) : http://support.typo3.org/documentation/tsref/cobjects/
+        // Content Objects (cObject) : http://documentation.typo3.org/documentation/tsref/cobjects/
         4 => array(
             'CASE', 'CLEARGIF', 'COA', 'COA_INT', 'COBJ_ARRAY', 'COLUMNS',
             'CONTENT', 'CTABLE', 'EDITPANEL', 'FILE', 'FORM',
@@ -86,12 +86,12 @@ $language_data = array (
             'USER_INT'
             ),
 
-        // GIFBUILDER toplevel link: http://support.typo3.org/documentation/tsref/gifbuilder/
+        // GIFBUILDER toplevel link: http://documentation.typo3.org/documentation/tsref/gifbuilder/
         5 => array(
             'GIFBUILDER',
             ),
 
-        // GIFBUILDER: http://support.typo3.org/documentation/tsref/gifbuilder/
+        // GIFBUILDER: http://documentation.typo3.org/documentation/tsref/gifbuilder/
         // skipped fields: IMAGE, TEXT
         // NOTE! the IMAGE and TEXT field already are linked in group 4, they
         // cannot be linked twice . . . . unfortunately
@@ -101,14 +101,14 @@ $language_data = array (
             'WORKAREA'
             ),
 
-        // MENU Objects: http://support.typo3.org/documentation/tsref/menu/
+        // MENU Objects: http://documentation.typo3.org/documentation/tsref/menu/
         7 => array(
             'GMENU', 'GMENU_FOLDOUT', 'GMENU_LAYERS', 'IMGMENU',
             'IMGMENUITEM', 'JSMENU', 'JSMENUITEM', 'TMENU',
             'TMENUITEM', 'TMENU_LAYERS'
             ),
 
-        // MENU common properties: http://support.typo3.org/documentation/tsref/menu/common-properties/
+        // MENU common properties: http://documentation.typo3.org/documentation/tsref/menu/common-properties/
         8 => array(
             'alternativeSortingField', 'begin', 'debugItemConf',
             'imgNameNotRandom', 'imgNamePrefix',
@@ -117,7 +117,7 @@ $language_data = array (
             'showAccessRestrictedPages', 'submenuObjSuffixes'
             ),
 
-        // MENU item states: http://support.typo3.org/documentation/tsref/menu/item-states/
+        // MENU item states: http://documentation.typo3.org/documentation/tsref/menu/item-states/
         9 => array(
             'ACT', 'ACTIFSUB', 'ACTIFSUBRO', 'ACTRO', 'CUR', 'CURIFSUB',
             'CURIFSUBRO', 'CURRO', 'IFSUB', 'IFSUBRO', 'NO',
@@ -204,15 +204,15 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => 'http://support.typo3.org/documentation/tsref/conditions/{FNAME}/',
-        2 => 'http://support.typo3.org/documentation/tsref/functions/{FNAME}/',
-        3 => 'http://support.typo3.org/documentation/tsref/tlo-objects/{FNAME}/',
-        4 => 'http://support.typo3.org/documentation/tsref/cobjects/{FNAME}/',
-        5 => 'http://support.typo3.org/documentation/tsref/gifbuilder/',
-        6 => 'http://support.typo3.org/documentation/tsref/gifbuilder/{FNAME}/',
-        7 => 'http://support.typo3.org/documentation/tsref/menu/{FNAME}/',
-        8 => 'http://support.typo3.org/documentation/tsref/menu/common-properties/',
-        9 => 'http://support.typo3.org/documentation/tsref/menu/item-states/'
+        1 => 'http://documentation.typo3.org/documentation/tsref/conditions/{FNAME}/',
+        2 => 'http://documentation.typo3.org/documentation/tsref/functions/{FNAME}/',
+        3 => 'http://documentation.typo3.org/documentation/tsref/tlo-objects/{FNAME}/',
+        4 => 'http://documentation.typo3.org/documentation/tsref/cobjects/{FNAME}/',
+        5 => 'http://documentation.typo3.org/documentation/tsref/gifbuilder/',
+        6 => 'http://documentation.typo3.org/documentation/tsref/gifbuilder/{FNAME}/',
+        7 => 'http://documentation.typo3.org/documentation/tsref/menu/{FNAME}/',
+        8 => 'http://documentation.typo3.org/documentation/tsref/menu/common-properties/',
+        9 => 'http://documentation.typo3.org/documentation/tsref/menu/item-states/'
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
diff --git a/inc/geshi/vb.php b/inc/geshi/vb.php
index 6028b9fd2da9cc6f1c6fbada2f266720bb51a743..040905823088750f6903e70794d4da2bdffe4375 100644
--- a/inc/geshi/vb.php
+++ b/inc/geshi/vb.php
@@ -3,14 +3,19 @@
  * vb.php
  * ------
  * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org),
+ *                     Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.3
  * Date Started: 2004/08/30
  *
  * Visual Basic language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2008/08/27 (1.0.8.1)
+ *  -  changed keyword list for better Visual Studio compliance
+ * 2008/08/26 (1.0.8.1)
+ *  -  Fixed multiline comments
  * 2004/11/27 (1.0.1)
  *  -  Added support for multiple object splitters
  * 2004/08/30 (1.0.0)
@@ -41,63 +46,37 @@
 
 $language_data = array (
     'LANG_NAME' => 'Visual Basic',
-    'COMMENT_SINGLE' => array(1 => "'"),
+    'COMMENT_SINGLE' => array(),
     'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        // Comments (either single or multiline with _
+        1 => '/\'.*(?<! _)\n/sU',
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         1 => array(
-            'as', 'err', 'boolean', 'and', 'or', 'recordset', 'unload', 'to',
-            'integer','long','single','new','database','nothing','set','close',
-            'open','print','split','line','field','querydef','instrrev',
-            'abs','array','asc','ascb','ascw','atn','avg','me',
-            'cbool','cbyte','ccur','cdate','cdbl','cdec','choose','chr','chrb','chrw','cint','clng',
-            'command','cos','count','createobject','csng','cstr','curdir','cvar','cvdate','cverr',
-            'date','dateadd','datediff','datepart','dateserial','datevalue','day','ddb','dir','doevents',
-            'environ','eof','error','exp',
-            'fileattr','filedatetime','filelen','fix','format','freefile','fv',
-            'getallstrings','getattr','getautoserversettings','getobject','getsetting',
-            'hex','hour','iif','imestatus','input','inputb','inputbox','instr','instb','int','ipmt',
-            'isarray','isdate','isempty','iserror','ismissing','isnull','isnumeric','isobject',
-            'lbound','lcase','left','leftb','len','lenb','loadpicture','loc','lof','log','ltrim',
-            'max','mid','midb','min','minute','mirr','month','msgbox',
-            'now','nper','npv','oct','partition','pmt','ppmt','pv','qbcolor',
-            'rate','rgb','right','rightb','rnd','rtrim',
-            'second','seek','sgn','shell','sin','sln','space','spc','sqr','stdev','stdevp','str',
-            'strcomp','strconv','string','switch','sum','syd',
-            'tab','tan','time','timer','timeserial','timevalue','trim','typename',
-            'ubound','ucase','val','var','varp','vartype','weekday','year',
-            'appactivate','base','beep','call','case','chdir','chdrive','const',
-            'declare','defbool','defbyte','defcur','defdate','defdbl','defdec','defint',
-            'deflng','defobj','defsng','defstr','deftype','defvar','deletesetting','dim','do',
-            'else','elseif','end','enum','erase','event','exit','explicit',
-            'false','filecopy','for','foreach','friend','function','get','gosub','goto',
-            'if','implements','kill','let','lineinput','lock','loop','lset','mkdir','name','next','not',
-            'onerror','on','option','private','property','public','put','raiseevent','randomize',
-            'redim','rem','reset','resume','return','rmdir','rset',
-            'savepicture','savesetting','sendkeys','setattr','static','sub',
-            'then','true','type','unlock','wend','while','width','with','write',
-            'vbabort','vbabortretryignore','vbapplicationmodal','vbarray',
-            'vbbinarycompare','vbblack','vbblue','vbboolean','vbbyte','vbcancel',
-            'vbcr','vbcritical','vbcrlf','vbcurrency','vbcyan','vbdataobject',
-            'vbdate','vbdecimal','vbdefaultbutton1','vbdefaultbutton2',
-            'vbdefaultbutton3','vbdefaultbutton4','vbdouble','vbempty',
-            'vberror','vbexclamation','vbfirstfourdays','vbfirstfullweek',
-            'vbfirstjan1','vbformfeed','vbfriday','vbgeneraldate','vbgreen',
-            'vbignore','vbinformation','vbinteger','vblf','vblong','vblongdate',
-            'vblongtime','vbmagenta','vbmonday','vbnewline','vbno','vbnull',
-            'vbnullchar','vbnullstring','vbobject','vbobjecterror','vbok','vbokcancel',
-            'vbokonly','vbquestion','vbred','vbretry','vbretrycancel','vbsaturday',
-            'vbshortdate','vbshorttime','vbsingle','vbstring','vbsunday',
-            'vbsystemmodal','vbtab','vbtextcompare','vbthursday','vbtuesday',
-            'vbusesystem','vbusesystemdayofweek','vbvariant','vbverticaltab',
-            'vbwednesday','vbwhite','vbyellow','vbyes','vbyesno','vbyesnocancel',
-            'vbnormal','vbdirectory'
+            'AddressOf', 'Alias', 'And', 'Append', 'As', 'BF', 'Binary',
+            'Boolean', 'ByRef', 'Byte', 'ByVal', 'Call', 'Case', 'CBool',
+            'CByte', 'CCur', 'CDate', 'CDbl', 'CDec', 'CInt', 'CLng',
+            'Close', 'Collection', 'Const', 'Control', 'CSng', 'CStr',
+            'Currency', 'CVar', 'Date', 'Declare', 'Dim', 'Do', 'Double',
+            'Each', 'Else', 'ElseIf', 'End', 'Enum', 'Erase', 'Error',
+            'Event', 'Exit', 'Explicit', 'False', 'For', 'Friend',
+            'Function', 'Get', 'GoSub', 'Goto', 'If', 'Implements', 'In',
+            'Input', 'Integer', 'Is', 'LBound', 'Let', 'Lib', 'Like',
+            'Line', 'Long', 'Loop', 'Mod', 'New', 'Next', 'Not',
+            'Nothing', 'Object', 'On', 'Open', 'Option', 'Optional',
+            'Or', 'Output', 'ParamArray', 'Preserve', 'Print', 'Private',
+            'Property', 'Public', 'RaiseEvent', 'Random', 'ReDim',
+            'Resume', 'Select', 'Set', 'Single', 'Static', 'Step',
+            'Stop', 'String', 'Sub', 'Then', 'To', 'True', 'Type',
+            'TypeOf', 'UBound', 'Until', 'Variant', 'While', 'With',
+            'WithEvents', 'Xor'
             )
         ),
     'SYMBOLS' => array(
-        '(', ')'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -105,28 +84,24 @@ $language_data = array (
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
+            1 => 'color: #000080;'
             ),
         'COMMENTS' => array(
-            1 => 'color: #808080;'
+            1 => 'color: #008000;'
             ),
         'BRACKETS' => array(
-            0 => 'color: #66cc66;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #800000;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
             ),
         'METHODS' => array(
-            1 => 'color: #66cc66;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
+            0 => 'color: #800000; font-weight: bold;'
             ),
         'SCRIPT' => array(
             ),
@@ -136,9 +111,8 @@ $language_data = array (
     'URLS' => array(
         1 => ''
         ),
-    'OOLANG' => true,
+    'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
-        1 => '.'
         ),
     'REGEXPS' => array(
         ),
@@ -146,7 +120,14 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'BRACKETS' => GESHI_NEVER,
+            'SYMBOLS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+            )
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/inc/geshi/vbnet.php b/inc/geshi/vbnet.php
index 779401d73ea53e9474301b222b89f92cdbf57f74..4a0f000c3c84916940bd8b5d5c0670655e9f9a7c 100644
--- a/inc/geshi/vbnet.php
+++ b/inc/geshi/vbnet.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/06/04
  *
  * VB.NET language file for GeSHi.
@@ -67,9 +67,9 @@ $language_data = array (
         2 => array(
             'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE',
             'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For',
-            'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT',
+            'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride',
             'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE',
-            'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'ParamArray',
+            'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray',
             'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step',
             'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents'
             ),
diff --git a/inc/geshi/verilog.php b/inc/geshi/verilog.php
index dd520fee2ca94fe8d2d5851bd35d0d22dfe07e02..57d268e9ede122d7acaea957d0690cc466b037b9 100644
--- a/inc/geshi/verilog.php
+++ b/inc/geshi/verilog.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: G�nter Dannoritzer <dannoritzer@web.de>
  * Copyright: (C) 2008 Guenter Dannoritzer
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/05/28
  *
  * Verilog language file for GeSHi.
diff --git a/inc/geshi/vhdl.php b/inc/geshi/vhdl.php
index 18c50ed238a1974efb6ccefcac0d7876804b90ab..6fd537ebc6cc5d7a7e3e54259955f5eebed25289 100644
--- a/inc/geshi/vhdl.php
+++ b/inc/geshi/vhdl.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de)
  * Copyright: (c) 2005 Alexander Krause
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2005/06/15
  *
  * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi.
diff --git a/inc/geshi/vim.php b/inc/geshi/vim.php
new file mode 100644
index 0000000000000000000000000000000000000000..94927eae76b122e4ede88356299804f08acf31aa
--- /dev/null
+++ b/inc/geshi/vim.php
@@ -0,0 +1,185 @@
+<?php
+
+/*************************************************************************************
+ * vim.php
+ * ----------------
+ * Author: Swaroop C H (swaroop@swaroopch.com)
+ * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/10/19
+ *
+ * Vim scripting language file for GeSHi.
+ *
+ * Reference: http://qbnz.com/highlighter/geshi-doc.html#language-files
+ * All keywords scraped from `:help expression-commands`.
+ * All method names scraped from `:help function-list`.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/19 (1.0.8.2)
+ * - Started.
+ *
+ * TODO (updated 2008/10/19)
+ * -------------------------
+ * - Fill out list of zillion commands
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'Vim Script',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_REGEXP' => array(
+        1 => "/^\".*$/m"
+        ),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'brea', 'break', 'call', 'cat', 'catc',
+            'catch', 'con', 'cont', 'conti',
+            'contin', 'continu', 'continue', 'ec', 'echo',
+            'echoe', 'echoer', 'echoerr', 'echoh',
+            'echohl', 'echom', 'echoms', 'echomsg', 'echon',
+            'el', 'els', 'else', 'elsei', 'elseif',
+            'en', 'end', 'endi', 'endif', 'endfo',
+            'endfor', 'endt', 'endtr', 'endtry', 'endw',
+            'endwh', 'endwhi', 'endwhil', 'endwhile', 'exe', 'exec', 'execu',
+            'execut', 'execute', 'fina', 'final', 'finall', 'finally', 'for',
+            'fun', 'func', 'funct', 'functi', 'functio', 'function', 'if', 'in',
+            'let', 'lockv', 'lockva', 'lockvar', 'retu', 'retur', 'return', 'th',
+            'thr', 'thro', 'throw', 'try', 'unl', 'unle', 'unlet', 'unlo', 'unloc',
+            'unlock', 'unlockv', 'unlockva', 'unlockvar', 'wh', 'whi', 'whil',
+            'while'
+            ),
+        2 => array(
+            'autocmd', 'com', 'comm', 'comma', 'comman', 'command', 'comc',
+            'comcl', 'comcle', 'comclea', 'comclear', 'delc', 'delco',
+            'delcom', 'delcomm', 'delcomma', 'delcomman', 'delcommand',
+            '-nargs' # TODO There are zillions of commands to be added here from http://vimdoc.sourceforge.net/htmldoc/usr_toc.html
+            ),
+        3 => array(
+            'abs', 'add', 'append', 'argc', 'argidx', 'argv', 'atan',
+            'browse', 'browsedir', 'bufexists', 'buflisted', 'bufloaded',
+            'bufname', 'bufnr', 'bufwinnr', 'byte2line', 'byteidx',
+            'ceil', 'changenr', 'char2nr', 'cindent', 'clearmatches',
+            'col', 'complete', 'complete_add', 'complete_check', 'confirm',
+            'copy', 'cos', 'count', 'cscope_connection', 'cursor',
+            'deepcopy', 'delete', 'did_filetype', 'diff_filler',
+            'diff_hlID', 'empty', 'escape', 'eval', 'eventhandler',
+            'executable', 'exists', 'extend', 'expand', 'feedkeys',
+            'filereadable', 'filewritable', 'filter', 'finddir',
+            'findfile', 'float2nr', 'floor', 'fnameescape', 'fnamemodify',
+            'foldclosed', 'foldclosedend', 'foldlevel', 'foldtext',
+            'foldtextresult', 'foreground', 'garbagecollect',
+            'get', 'getbufline', 'getbufvar', 'getchar', 'getcharmod',
+            'getcmdline', 'getcmdpos', 'getcmdtype', 'getcwd', 'getfperm',
+            'getfsize', 'getfontname', 'getftime', 'getftype', 'getline',
+            'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist',
+            'getreg', 'getregtype', 'gettabwinvar', 'getwinposx',
+            'getwinposy', 'getwinvar', 'glob', 'globpath', 'has',
+            'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel',
+            'histget', 'histnr', 'hlexists', 'hlID', 'hostname', 'iconv',
+            'indent', 'index', 'input', 'inputdialog', 'inputlist',
+            'inputrestore', 'inputsave', 'inputsecret', 'insert',
+            'isdirectory', 'islocked', 'items', 'join', 'keys', 'len',
+            'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent',
+            'localtime', 'log10', 'map', 'maparg', 'mapcheck', 'match',
+            'matchadd', 'matcharg', 'matchdelete', 'matchend', 'matchlist',
+            'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank',
+            'nr2char', 'pathshorten', 'pow', 'prevnonblank', 'printf',
+            'pumvisible', 'range', 'readfile', 'reltime', 'reltimestr',
+            'remote_expr', 'remote_foreground', 'remote_peek',
+            'remote_read', 'remote_send', 'remove', 'rename', 'repeat',
+            'resolve', 'reverse', 'round', 'search', 'searchdecl',
+            'searchpair', 'searchpairpos', 'searchpos', 'server2client',
+            'serverlist', 'setbufvar', 'setcmdpos', 'setline',
+            'setloclist', 'setmatches', 'setpos', 'setqflist', 'setreg',
+            'settabwinvar', 'setwinvar', 'shellescape', 'simplify', 'sin',
+            'sort', 'soundfold', 'spellbadword', 'spellsuggest', 'split',
+            'sqrt', 'str2float', 'str2nr', 'strftime', 'stridx', 'string',
+            'strlen', 'strpart', 'strridx', 'strtrans', 'submatch',
+            'substitute', 'synID', 'synIDattr', 'synIDtrans', 'synstack',
+            'system', 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr',
+            'taglist', 'tagfiles', 'tempname', 'tolower', 'toupper', 'tr',
+            'trunc', 'type', 'values', 'virtcol', 'visualmode', 'winbufnr',
+            'wincol', 'winheight', 'winline', 'winnr', 'winrestcmd',
+            'winrestview', 'winsaveview', 'winwidth', 'writefile'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>',
+        '^', '-', '+', '~', '?', ':', '$', '@', '.'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true
+        ),
+    'STYLES' => array(
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #adadad; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+            ),
+        'KEYWORDS' => array(
+            1 => 'color: #804040;',
+            2 => 'color: #668080;',
+            3 => 'color: #25BB4D;'
+            ),
+        'METHODS' => array(
+            0 => 'color: #000000;',
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #000000; font-weight:bold;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'STRINGS' => array(
+            0 => 'color: #C5A22D;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000;'
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+        ),
+    'OOLANG' => false, //Save some time as OO identifiers aren't used
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?>
diff --git a/inc/geshi/visualfoxpro.php b/inc/geshi/visualfoxpro.php
index 7a46e5ceb97871aa44ac9c1c5f91c12ad97f4e51..4592dd7083f88b89282e97c80920241aa240777c 100644
--- a/inc/geshi/visualfoxpro.php
+++ b/inc/geshi/visualfoxpro.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Roberto Armellin (r.armellin@tin.it)
  * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/09/17
  *
  * Visual FoxPro language file for GeSHi.
diff --git a/inc/geshi/visualprolog.php b/inc/geshi/visualprolog.php
new file mode 100644
index 0000000000000000000000000000000000000000..2a5656be332ab4b9f1a756093b1409a24ea50b23
--- /dev/null
+++ b/inc/geshi/visualprolog.php
@@ -0,0 +1,129 @@
+<?php
+/*************************************************************************************
+ * visualprolog.php
+ * ----------
+ * Author: Thomas Linder Puls (puls@pdc.dk)
+ * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk)
+ * Release Version: 1.0.8.3
+ * Date Started: 2008/11/20
+ *
+ * Visual Prolog language file for GeSHi.
+ *
+ * CHANGES
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Visual Prolog',
+    'COMMENT_SINGLE' => array(1 => '%'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'HARDQUOTE' => array('@"', '"'),
+    'HARDESCAPE' => array('""'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'clauses','constants','constructors','delegate','domains','facts',
+            'goal','guards','inherits','monitor','namespace','open',
+            'predicates','properties','resolve','supports'
+            ),
+        2 => array(
+            'align','and','anyflow','as','bitsize','catch','determ','digits',
+            'div','do','else','elseif','erroneous','externally','failure',
+            'finally','from','language','mod','multi','nondeterm','or',
+            'procedure','quot','rem','single','then','to'
+            ),
+        3 => array(
+            '#bininclude','#else','#elseif','#endif','#error','#export',
+            '#externally','#if','#import','#include','#message','#options',
+            '#orrequires','#requires','#then','#warning'
+            ),
+        ),
+    'SYMBOLS' => array(
+        '+', '-', '*', '?', '=', '/', '>', '<', '^', '!', ':', '(', ')', '{', '}', '[', ']'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #808000;',
+            2 => 'color: #333399;',
+            3 => 'color: #800080;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #AA77BD',
+            'MULTI' => 'color: #AA77BD'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #008080;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #00B7B7;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0000FF;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000;'
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #008000;',
+            1 => 'color: #808000;',
+            2 => 'color: #333399;',
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => ':',
+        2 => '::'
+        ),
+    'REGEXPS' => array(
+        0 => "(?<![a-zA-Z0-9_])(?!(?:PIPE|SEMI)>)[A-Z_]\w*(?!\w)",
+        1 => "\\b(end\\s+)?(implement|class|interface)\\b",
+        2 => "\\b(end\\s+)?(foreach|if|try)\\b",
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/inc/geshi/whitespace.php b/inc/geshi/whitespace.php
new file mode 100644
index 0000000000000000000000000000000000000000..dfada788670d6f6d6970df9794a43541a11d6f60
--- /dev/null
+++ b/inc/geshi/whitespace.php
@@ -0,0 +1,121 @@
+<?php
+/*************************************************************************************
+ * whitespace.php
+ * ----------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.3
+ * Date Started: 2009/10/31
+ *
+ * Whitespace language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/10/31 (1.0.8.1)
+ *   -  First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+$language_data = array (
+    'LANG_NAME' => 'Whitespace',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        3 => "/[^\n\x20\x09]+/s"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        ),
+    'SYMBOLS' => array(
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            ),
+        'COMMENTS' => array(
+            3 => 'color: #666666; font-style: italic;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            2 => 'background-color: #FF9999;',
+            3 => 'background-color: #9999FF;'
+            )
+        ),
+    'URLS' => array(
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        2 => array(
+            GESHI_SEARCH => "(?<!\\A)\x20",
+            GESHI_REPLACE => "&#32;",
+            GESHI_MODIFIERS => 's',
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        3 => array(
+            GESHI_SEARCH => "\x09",
+            GESHI_REPLACE => "&#9;",
+            GESHI_MODIFIERS => 's',
+            GESHI_BEFORE => "",
+            GESHI_AFTER => ""
+            ),
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'KEYWORDS' => GESHI_NEVER,
+            'SYMBOLS' => GESHI_NEVER,
+            'STRINGS' => GESHI_NEVER,
+//            'REGEXPS' => GESHI_NEVER,
+            'NUMBERS' => GESHI_NEVER
+            )
+        )
+);
+
+?>
diff --git a/inc/geshi/winbatch.php b/inc/geshi/winbatch.php
index 0a5e4e6d5439e57957c68609da80865fe7cadcca..caa94a4e062e8f05a923981826e8e6b25f7f16c7 100644
--- a/inc/geshi/winbatch.php
+++ b/inc/geshi/winbatch.php
@@ -4,7 +4,7 @@
  * ------------
  * Author: Craig Storey (storey.craig@gmail.com)
  * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2006/05/19
  *
  * WinBatch language file for GeSHi.
diff --git a/inc/geshi/xml.php b/inc/geshi/xml.php
index afc1217e9799300877279f08f4adcd1937b1bceb..48b748cc405c886d08bd659d014f75f70da91917 100644
--- a/inc/geshi/xml.php
+++ b/inc/geshi/xml.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2004/09/01
  *
  * XML language file for GeSHi. Based on the idea/file by Christian Weiske
@@ -100,14 +100,14 @@ $language_data = array (
         ),
     'REGEXPS' => array(
         0 => array(//attribute names
-            GESHI_SEARCH => '([a-z0-9_\-:]+)(=)',
+            GESHI_SEARCH => '([a-z_:][\w\-\.:]*)(=)',
             GESHI_REPLACE => '\\1',
             GESHI_MODIFIERS => 'i',
             GESHI_BEFORE => '',
             GESHI_AFTER => '\\2'
             ),
         1 => array(//Initial header line
-            GESHI_SEARCH => '(&lt;[\/?|(\?xml)]?[a-z0-9_\-:]*(\??&gt;)?)',
+            GESHI_SEARCH => '(&lt;[\/?|(\?xml)]?[a-z_:][\w\-\.:]*(\??&gt;)?)',
             GESHI_REPLACE => '\\1',
             GESHI_MODIFIERS => 'i',
             GESHI_BEFORE => '',
diff --git a/inc/geshi/xorg_conf.php b/inc/geshi/xorg_conf.php
index 55a36f59659df5f7a029cf92755492ee94b2bbe3..643d38d6051b0ec048f947f388eb625ee3d2655a 100644
--- a/inc/geshi/xorg_conf.php
+++ b/inc/geshi/xorg_conf.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8
+ * Release Version: 1.0.8.3
  * Date Started: 2008/06/18
  *
  * xorg.conf language file for GeSHi.
diff --git a/inc/geshi/xpp.php b/inc/geshi/xpp.php
index 2f9fec2c6c0cfa87236125861e0ce234cf8d552e..6e7c980351281444188e8d417ec284197f37accd 100644
--- a/inc/geshi/xpp.php
+++ b/inc/geshi/xpp.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Simon Butcher (simon@butcher.name)
  * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/02/27
  *
  * Axapta/Dynamics Ax X++ language file for GeSHi.
diff --git a/inc/geshi/z80.php b/inc/geshi/z80.php
index 2c7686345a75948b890274deea64ea36e20cd62a..845712f22fdb5abcfd566782b0737c12ca7684f7 100644
--- a/inc/geshi/z80.php
+++ b/inc/geshi/z80.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/)
- * Release Version: 1\.0\.8
+ * Release Version: 1.0.8.3
  * Date Started: 2007/02/06
  *
  * ZiLOG Z80 Assembler language file for GeSHi.