diff --git a/.gitignore b/.gitignore
index ce2e9eea67c4e525296f81684694dcf30074632f..758d216359984bea13b41ab6ea5232fc1a95da72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,7 +67,7 @@ lib/images/*/local/*
 # composer default ignores
 composer.phar
 vendor/bin/*
-vendor/*/*/phpunit.xml
+vendor/*/*/phpunit.xml*
 vendor/*/*/.travis.yml
 vendor/*/*/bin/*
 vendor/*/*/tests/*
diff --git a/.travis.yml b/.travis.yml
index 3b295ed6046f3b761f07709564fad6591c20f77d..32b8bb49ad539373684ec70a5b8331f422be2093 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,10 @@
 language: php
 sudo: false
 php:
+  - "nightly"
   - "7.1"
   - "7.0"
   - "5.6"
-  - "5.5"
-  - "5.4"
-  - "5.3"
-
 env:
   - DISABLE_FUNCTIONS=
   - DISABLE_FUNCTIONS="gzopen"
@@ -30,6 +27,7 @@ matrix:
       env: DISABLE_FUNCTIONS=
   allow_failures:
     - php: "hhvm"
+    - php: "nightly"
   exclude:
     - php: "hhvm"
       env: DISABLE_FUNCTIONS="gzopen"
@@ -40,7 +38,7 @@ notifications:
     on_success: change
     on_failure: change
 install:
-  - wget -O ~/.phpenv/versions/hhvm/bin/phpunit https://phar.phpunit.de/phpunit.phar
+  - wget -O ~/.phpenv/versions/hhvm/bin/phpunit https://phar.phpunit.de/phpunit-5.7.phar
   - chmod 755 ~/.phpenv/versions/hhvm/bin/phpunit
 before_script:
   # Disable the HHVM JIT for faster Unit Testing
diff --git a/_test/core/DokuWikiTest.php b/_test/core/DokuWikiTest.php
index 89a98a45ed75f77f80e07007e5119706b5561f4d..2e4caefdbba79bd516197a7d560bf531813b4229 100644
--- a/_test/core/DokuWikiTest.php
+++ b/_test/core/DokuWikiTest.php
@@ -1,4 +1,26 @@
 <?php
+
+
+if(!class_exists('PHPUnit_Framework_TestCase')) {
+    /**
+     * phpunit 5/6 compatibility
+     */
+    class PHPUnit_Framework_TestCase extends PHPUnit\Framework\TestCase {
+        /**
+         * @param string $class
+         * @param null|string $message
+         */
+        public function setExpectedException($class, $message=null) {
+            $this->expectException($class);
+            if(!is_null($message)) {
+                $this->expectExceptionMessage($message);
+            }
+        }
+    }
+}
+
+
+
 /**
  * Helper class to provide basic functionality for tests
  */
diff --git a/_test/phpunit.xml b/_test/phpunit.xml
index 6e250974994328d140c9926f6513562ee6b25203..f4b88be9c6f3f1b7e648222c52fd0c7660c68561 100644
--- a/_test/phpunit.xml
+++ b/_test/phpunit.xml
@@ -4,6 +4,7 @@
     convertNoticesToExceptions="false"
     colors="true"
     stderr="true"
+    backupGlobals="true"
     >
 
     <testsuites>
diff --git a/_test/tests/inc/auth_aclcheck.test.php b/_test/tests/inc/auth_aclcheck.test.php
index b128b78719d2cdc97da5dd7f05cb579148d945d3..8c9b37536eb2200a82327d2702a46cbb25bc2f35 100644
--- a/_test/tests/inc/auth_aclcheck.test.php
+++ b/_test/tests/inc/auth_aclcheck.test.php
@@ -2,7 +2,7 @@
 
 class auth_acl_test extends DokuWikiTest {
 
-    var $oldAuthAcl;
+    protected $oldAuthAcl;
 
     function setUp() {
         parent::setUp();
diff --git a/_test/tests/inc/auth_password.test.php b/_test/tests/inc/auth_password.test.php
index 71b0dfb4c4a9e1de2dbb54dcba118ea443665352..3ecc5f85e33cedebd7e9254f0f0689c6e1c68e50 100644
--- a/_test/tests/inc/auth_password.test.php
+++ b/_test/tests/inc/auth_password.test.php
@@ -2,102 +2,112 @@
 
 class auth_password_test extends DokuWikiTest {
 
-    // hashes for the password foo$method, using abcdefgh12345678912345678912345678 as salt
-    var $passes = array(
-        'smd5'  => '$1$abcdefgh$SYbjm2AEvSoHG7Xapi8so.',
-        'apr1'  => '$apr1$abcdefgh$C/GzYTF4kOVByYLEoD5X4.',
-        'md5'   => '8fa22d62408e5351553acdd91c6b7003',
-        'sha1'  => 'b456d3b0efd105d613744ffd549514ecafcfc7e1',
-        'ssha'  => '{SSHA}QMHG+uC7bHNYKkmoLbNsNI38/dJhYmNk',
-        'lsmd5' => '{SMD5}HGbkPrkWgy9KgcRGWlrsUWFiY2RlZmdo',
-        'crypt' => 'ablvoGr1hvZ5k',
-        'mysql' => '4a1fa3780bd6fd55',
-        'my411' => '*e5929347e25f82e19e4ebe92f1dc6b6e7c2dbd29',
-        'kmd5'  => 'a579299436d7969791189acadd86fcb716',
-        'djangomd5'  => 'md5$abcde$d0fdddeda8cd92725d2b54148ac09158',
-        'djangosha1' => 'sha1$abcde$c8e65a7f0acc9158843048a53dcc5a6bc4d17678',
-
-    );
+    /**
+     *  precomputed hashes
+     *
+     * for the password foo$method, using abcdefgh12345678912345678912345678 as salt
+     *
+     * @return array
+     */
+    public function hashes() {
+
+        $passes = array(
+            array('smd5', '$1$abcdefgh$SYbjm2AEvSoHG7Xapi8so.'),
+            array('apr1', '$apr1$abcdefgh$C/GzYTF4kOVByYLEoD5X4.'),
+            array('md5', '8fa22d62408e5351553acdd91c6b7003'),
+            array('sha1', 'b456d3b0efd105d613744ffd549514ecafcfc7e1'),
+            array('ssha', '{SSHA}QMHG+uC7bHNYKkmoLbNsNI38/dJhYmNk'),
+            array('lsmd5', '{SMD5}HGbkPrkWgy9KgcRGWlrsUWFiY2RlZmdo'),
+            array('crypt', 'ablvoGr1hvZ5k'),
+            array('mysql', '4a1fa3780bd6fd55'),
+            array('my411', '*E5929347E25F82E19E4EBE92F1DC6B6E7C2DBD29'),
+            array('kmd5', 'a579299436d7969791189acadd86fcb716'),
+            array('djangomd5', 'md5$abcde$d0fdddeda8cd92725d2b54148ac09158'),
+            array('djangosha1', 'sha1$abcde$c8e65a7f0acc9158843048a53dcc5a6bc4d17678'),
+
+        );
 
-    function __construct() {
         if(defined('CRYPT_SHA512') && CRYPT_SHA512 == 1) {
             // Check SHA512 only if available in this PHP
-            $this->passes['sha512'] = '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1';
+            $passes[] = array('sha512', '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1');
         }
         if(function_exists('hash_pbkdf2')) {
             if(in_array('sha256', hash_algos())) {
-                $this->passes['djangopbkdf2_sha256'] = 'pbkdf2_sha256$24000$abcdefgh1234$R23OyZJ0nGHLG6MvPNfEkV5AOz3jUY5zthByPXs2gn0=';
+                $passes[] = array('djangopbkdf2_sha256', 'pbkdf2_sha256$24000$abcdefgh1234$R23OyZJ0nGHLG6MvPNfEkV5AOz3jUY5zthByPXs2gn0=');
             }
             if(in_array('sha1', hash_algos())) {
-                $this->passes['djangopbkdf2_sha1'] = 'pbkdf2_sha1$24000$abcdefgh1234$pOliX4vV1hgOv7lFNURIHHx41HI=';
+                $passes[] = array('djangopbkdf2_sha1', 'pbkdf2_sha1$24000$abcdefgh1234$pOliX4vV1hgOv7lFNURIHHx41HI=');
             }
         }
+        return $passes;
     }
 
-
-    function test_cryptPassword(){
-        foreach($this->passes as $method => $hash){
-            $info = "testing method $method";
-            $this->assertEquals(
-                $hash,
-                auth_cryptPassword('foo'.$method, $method,'abcdefgh12345678912345678912345678'),
-                $info);
-        }
+    /**
+     * @dataProvider hashes
+     * @param $method
+     * @param $hash
+     */
+    function test_cryptPassword($method, $hash) {
+        $this->assertEquals(
+            $hash,
+            auth_cryptPassword('foo' . $method, $method, 'abcdefgh12345678912345678912345678')
+        );
     }
 
-    function test_verifyPassword(){
-        foreach($this->passes as $method => $hash){
-            $info = "testing method $method";
-            $this->assertTrue(auth_verifyPassword('foo'.$method, $hash), $info);
-            $this->assertFalse(auth_verifyPassword('bar'.$method, $hash), $info);
-        }
+    /**
+     * @dataProvider hashes
+     * @param $method
+     * @param $hash
+     */
+    function test_verifyPassword($method, $hash) {
+        $this->assertTrue(auth_verifyPassword('foo' . $method, $hash));
+        $this->assertFalse(auth_verifyPassword('bar' . $method, $hash));
     }
 
-    function test_verifySelf(){
-        foreach($this->passes as $method => $hash){
-            $info = "testing method $method";
-            $hash = auth_cryptPassword('foo'.$method,$method);
-            $this->assertTrue(auth_verifyPassword('foo'.$method, $hash), $info);
-        }
+    /**
+     * @dataProvider hashes
+     * @param $method
+     * @param $hash
+     */
+    function test_verifySelf($method, $hash) {
+        $hash = auth_cryptPassword('foo' . $method, $method);
+        $this->assertTrue(auth_verifyPassword('foo' . $method, $hash));
     }
 
-    function test_bcrypt_self(){
-        $hash = auth_cryptPassword('foobcrypt','bcrypt');
-        $this->assertTrue(auth_verifyPassword('foobcrypt',$hash));
+    function test_bcrypt_self() {
+        $hash = auth_cryptPassword('foobcrypt', 'bcrypt');
+        $this->assertTrue(auth_verifyPassword('foobcrypt', $hash));
     }
 
-    function test_verifyPassword_fixedbcrypt(){
-        $this->assertTrue(auth_verifyPassword('foobcrypt','$2a$12$uTWercxbq4sjp2xAzv3we.ZOxk51m5V/Bv5bp2H27oVFJl5neFQoC'));
+    function test_verifyPassword_fixedbcrypt() {
+        $this->assertTrue(auth_verifyPassword('foobcrypt', '$2a$12$uTWercxbq4sjp2xAzv3we.ZOxk51m5V/Bv5bp2H27oVFJl5neFQoC'));
     }
 
-    function test_verifyPassword_nohash(){
-        $this->assertTrue(auth_verifyPassword('foo','$1$$n1rTiFE0nRifwV/43bVon/'));
+    function test_verifyPassword_nohash() {
+        $this->assertTrue(auth_verifyPassword('foo', '$1$$n1rTiFE0nRifwV/43bVon/'));
     }
 
-    function test_verifyPassword_fixedpmd5(){
-        $this->assertTrue(auth_verifyPassword('test12345','$P$9IQRaTwmfeRo7ud9Fh4E2PdI0S3r.L0'));
-        $this->assertTrue(auth_verifyPassword('test12345','$H$9IQRaTwmfeRo7ud9Fh4E2PdI0S3r.L0'));
+    function test_verifyPassword_fixedpmd5() {
+        $this->assertTrue(auth_verifyPassword('test12345', '$P$9IQRaTwmfeRo7ud9Fh4E2PdI0S3r.L0'));
+        $this->assertTrue(auth_verifyPassword('test12345', '$H$9IQRaTwmfeRo7ud9Fh4E2PdI0S3r.L0'));
     }
 
-    function test_veryPassword_mediawiki(){
+    function test_veryPassword_mediawiki() {
         $this->assertTrue(auth_verifyPassword('password', ':B:838c83e1:e4ab7024509eef084cdabd03d8b2972c'));
     }
 
-
     /**
      * pmd5 checking should throw an exception when a hash with a too high
      * iteration count is passed
      */
-    function test_verifyPassword_pmd5Exception(){
+    function test_verifyPassword_pmd5Exception() {
         $except = false;
-        try{
+        try {
             auth_verifyPassword('foopmd5', '$H$abcdefgh1ZbJodHxmeXVAhEzTG7IAp.');
-        }catch (Exception $e){
+        } catch(Exception $e) {
             $except = true;
         }
         $this->assertTrue($except);
     }
 
 }
-
-//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/blowfish.test.php b/_test/tests/inc/blowfish.test.php
deleted file mode 100644
index 972df11f4b16a8df50a5ab745b33e44dd09a55b0..0000000000000000000000000000000000000000
--- a/_test/tests/inc/blowfish.test.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Test for blowfish encryption.
- */
-class blowfish_test extends DokuWikiTest {
-    public function testEncryptDecryptNumbers() {
-        $secret = '$%ÄüfuDFRR';
-        $string = '12345678';
-        $this->assertEquals(
-            $string,
-            PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret)
-        );
-    }
-
-    public function testEncryptDecryptChars() {
-        $secret = '$%ÄüfuDFRR';
-        $string = 'abcDEF012!"§$%&/()=?`´"\',.;:-_#+*~öäüÖÄÜ^°²³';
-        $this->assertEquals(
-            $string,
-            PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret)
-        );
-    }
-
-    // FS#1690 FS#1713
-    public function testEncryptDecryptBinary() {
-        $secret = '$%ÄüfuDFRR';
-        $string = "this is\0binary because of\0zero bytes";
-        $this->assertEquals(
-            $string,
-            PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret)
-        );
-    }
-}
diff --git a/_test/tests/inc/io_getSizeFile.test.php b/_test/tests/inc/io_getSizeFile.test.php
index 3456342ba5d6b17a11e265479a6cbfcac022705d..4069173e6831ed61749e407231b2008e90de3c7c 100644
--- a/_test/tests/inc/io_getSizeFile.test.php
+++ b/_test/tests/inc/io_getSizeFile.test.php
@@ -9,6 +9,7 @@ class io_getSizeFile_test extends DokuWikiTest {
         if (!DOKU_HAS_GZIP) {
             $this->markTestSkipped('skipping all zlib tests.  Need zlib extension');
         }
+        $this->assertTrue(true); // avoid being marked as risky for having no assertion
     }
 
     /*
@@ -18,6 +19,7 @@ class io_getSizeFile_test extends DokuWikiTest {
         if (!DOKU_HAS_BZIP) {
             $this->markTestSkipped('skipping all bzip2 tests.  Need bz2 extension');
         }
+        $this->assertTrue(true); // avoid being marked as risky for having no assertion
     }
 
     function test_plain(){
diff --git a/_test/tests/inc/io_readfile.test.php b/_test/tests/inc/io_readfile.test.php
index 43bb7f80c90cf0437253912e18cd65d5d10bb898..b11bae1cbb2f7f930b987f7f35ce9cef24009fce 100644
--- a/_test/tests/inc/io_readfile.test.php
+++ b/_test/tests/inc/io_readfile.test.php
@@ -8,7 +8,9 @@ class io_readfile_test extends DokuWikiTest {
     public function test_ext_zlib() {
         if (!DOKU_HAS_GZIP) {
             $this->markTestSkipped('skipping all zlib tests.  Need zlib extension');
+            return;
         }
+        $this->assertTrue(true);
     }
 
     /*
@@ -17,7 +19,9 @@ class io_readfile_test extends DokuWikiTest {
     public function test_ext_bz2() {
         if (!DOKU_HAS_BZIP) {
             $this->markTestSkipped('skipping all bzip2 tests.  Need bz2 extension');
+            return;
         }
+        $this->assertTrue(true);
     }
 
     function test_plain(){
diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php
index d517584e186c7c5c749e293cf2411bb354b9c2e9..3fb81b256b8b7d54767d7ed3d6b42337831ece19 100644
--- a/_test/tests/inc/io_replaceinfile.test.php
+++ b/_test/tests/inc/io_replaceinfile.test.php
@@ -10,7 +10,9 @@ class io_replaceinfile_test extends DokuWikiTest {
     public function test_ext_zlib() {
         if (!DOKU_HAS_GZIP) {
             $this->markTestSkipped('skipping all zlib tests.  Need zlib extension');
+            return;
         }
+        $this->assertTrue(true);
     }
 
     /*
@@ -19,7 +21,9 @@ class io_replaceinfile_test extends DokuWikiTest {
     public function test_ext_bz2() {
         if (!DOKU_HAS_BZIP) {
             $this->markTestSkipped('skipping all bzip2 tests.  Need bz2 extension');
+            return;
         }
+        $this->assertTrue(true);
     }
 
     function _write($file){
@@ -97,11 +101,16 @@ class io_replaceinfile_test extends DokuWikiTest {
 
     /**
      * Test passing an invalid parameter.
-     *
-     * @expectedException PHPUnit_Framework_Error_Warning
      */
     function test_badparam()
     {
+        if (class_exists('PHPUnit\Framework\Error\Warning')) {
+            $expect = 'PHPUnit\Framework\Error\Warning'; // PHPUnit 6
+        } else {
+            $expect = 'PHPUnit_Framework_Error_Warning'; // PHPUnit 5
+        }
+        $this->setExpectedException($expect);
+
         /* The empty $oldline parameter should be caught before the file doesn't exist test. */
         $this->assertFalse(io_replaceInFile(TMP_DIR.'/not_existing_file.txt', '', '', false, 0));
     }
diff --git a/_test/tests/inc/io_savefile.test.php b/_test/tests/inc/io_savefile.test.php
index 5f387b8a16bbe12537af047c43d97f444399209f..0dfb551cc4ec6d66f37d660731409cf1b17026a0 100644
--- a/_test/tests/inc/io_savefile.test.php
+++ b/_test/tests/inc/io_savefile.test.php
@@ -8,7 +8,9 @@ class io_savefile_test extends DokuWikiTest {
     public function test_ext_zlib() {
         if (!DOKU_HAS_GZIP) {
             $this->markTestSkipped('skipping all zlib tests.  Need zlib extension');
+            return;
         }
+        $this->assertTrue(true);
     }
 
     /*
@@ -17,7 +19,9 @@ class io_savefile_test extends DokuWikiTest {
     public function test_ext_bz2() {
         if (!DOKU_HAS_BZIP) {
             $this->markTestSkipped('skipping all bzip2 tests.  Need bz2 extension');
+            return;
         }
+        $this->assertTrue(true);
     }
 
     function _write($file){
diff --git a/_test/tests/inc/mail_isvalid.test.php b/_test/tests/inc/mail_isvalid.test.php
index 25e6b1f7bb087f32ba094e12ae936f884c511942..44c519f762ae2ff6f423d3f349cc6133e92b0162 100644
--- a/_test/tests/inc/mail_isvalid.test.php
+++ b/_test/tests/inc/mail_isvalid.test.php
@@ -1,80 +1,76 @@
 <?php
 
-class mail_isvalid extends DokuWikiTest {
+class mail_isvalid_test extends DokuWikiTest {
 
+    public function provider() {
+        return array(
+            // our own tests
+            array('bugs@php.net', true),
+            array('~someone@somewhere.com', true),
+            array('no+body.here@somewhere.com.au', true),
+            array('username+tag@domain.com', true), // FS#1447
+            array("rfc2822+allthesechars_#*!'`/-={}are.legal@somewhere.com.au", true),
+            array('_foo@test.com', true), // FS#1049
+            array('bugs@php.net1', true), // new ICAN rulez seem to allow this
+            array('.bugs@php.net1', false),
+            array('bu..gs@php.net', false),
+            array('bugs@php..net', false),
+            array('bugs@.php.net', false),
+            array('bugs@php.net.', false),
+            array('bu(g)s@php.net1', false),
+            array('bu[g]s@php.net1', false),
+            array('somebody@somewhere.museum', true),
+            array('somebody@somewhere.travel', true),
+            array('root@[2010:fb:fdac::311:2101]', true),
+            array('test@example', true), // we allow local addresses
 
-    function test1(){
-        $tests   = array();
+            // tests from http://code.google.com/p/php-email-address-validation/ below
 
-        // our own tests
-        $tests[] = array('bugs@php.net',true);
-        $tests[] = array('~someone@somewhere.com',true);
-        $tests[] = array('no+body.here@somewhere.com.au',true);
-        $tests[] = array('username+tag@domain.com',true); // FS#1447
-        $tests[] = array("rfc2822+allthesechars_#*!'`/-={}are.legal@somewhere.com.au",true);
-        $tests[] = array('_foo@test.com',true); // FS#1049
-        $tests[] = array('bugs@php.net1',true); // new ICAN rulez seem to allow this
-        $tests[] = array('.bugs@php.net1',false);
-        $tests[] = array('bu..gs@php.net',false);
-        $tests[] = array('bugs@php..net',false);
-        $tests[] = array('bugs@.php.net',false);
-        $tests[] = array('bugs@php.net.',false);
-        $tests[] = array('bu(g)s@php.net1',false);
-        $tests[] = array('bu[g]s@php.net1',false);
-        $tests[] = array('somebody@somewhere.museum',true);
-        $tests[] = array('somebody@somewhere.travel',true);
-        $tests[] = array('root@[2010:fb:fdac::311:2101]',true);
-        $tests[] = array('test@example', true); // we allow local addresses
+            array('test@example.com', true),
+            array('TEST@example.com', true),
+            array('1234567890@example.com', true),
+            array('test+test@example.com', true),
+            array('test-test@example.com', true),
+            array('t*est@example.com', true),
+            array('+1~1+@example.com', true),
+            array('{_test_}@example.com', true),
+            array('"[[ test ]]"@example.com', true),
+            array('test.test@example.com', true),
+            array('test."test"@example.com', true),
+            array('"test@test"@example.com', true),
+            array('test@123.123.123.123', true),
+            array('test@[123.123.123.123]', true),
+            array('test@example.example.com', true),
+            array('test@example.example.example.com', true),
 
-        // tests from http://code.google.com/p/php-email-address-validation/ below
-
-        $tests[] = array('test@example.com', true);
-        $tests[] = array('TEST@example.com', true);
-        $tests[] = array('1234567890@example.com', true);
-        $tests[] = array('test+test@example.com', true);
-        $tests[] = array('test-test@example.com', true);
-        $tests[] = array('t*est@example.com', true);
-        $tests[] = array('+1~1+@example.com', true);
-        $tests[] = array('{_test_}@example.com', true);
-        $tests[] = array('"[[ test ]]"@example.com', true);
-        $tests[] = array('test.test@example.com', true);
-        $tests[] = array('test."test"@example.com', true);
-        $tests[] = array('"test@test"@example.com', true);
-        $tests[] = array('test@123.123.123.123', true);
-        $tests[] = array('test@[123.123.123.123]', true);
-        $tests[] = array('test@example.example.com', true);
-        $tests[] = array('test@example.example.example.com', true);
-
-        $tests[] = array('test.example.com', false);
-        $tests[] = array('test.@example.com', false);
-        $tests[] = array('test..test@example.com', false);
-        $tests[] = array('.test@example.com', false);
-        $tests[] = array('test@test@example.com', false);
-        $tests[] = array('test@@example.com', false);
-        $tests[] = array('-- test --@example.com', false); // No spaces allowed in local part
-        $tests[] = array('[test]@example.com', false); // Square brackets only allowed within quotes
-        $tests[] = array('"test\test"@example.com', false); // Quotes cannot contain backslash
-        $tests[] = array('"test"test"@example.com', false); // Quotes cannot be nested
-        $tests[] = array('()[]\;:,<>@example.com', false); // Disallowed Characters
-        $tests[] = array('test@.', false);
-        $tests[] = array('test@example.', false);
-        $tests[] = array('test@.org', false);
-        $tests[] = array('12345678901234567890123456789012345678901234567890123456789012345@example.com', false); // 64 characters is maximum length for local part. This is 65.
-        $tests[] = array('test@123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com', false); // 255 characters is maximum length for domain. This is 256.
-        $tests[] = array('test@[123.123.123.123', false);
-        $tests[] = array('test@123.123.123.123]', false);
-
-
-        foreach($tests as $test){
-            $info = 'Testing '.$test[0];
-
-            if($test[1]){
-                $this->assertTrue((bool) mail_isvalid($test[0]), $info);
-            }else{
-                $this->assertFalse((bool) mail_isvalid($test[0]), $info);
-            }
-        }
+            array('test.example.com', false),
+            array('test.@example.com', false),
+            array('test..test@example.com', false),
+            array('.test@example.com', false),
+            array('test@test@example.com', false),
+            array('test@@example.com', false),
+            array('-- test --@example.com', false), // No spaces allowed in local part
+            array('[test]@example.com', false), // Square brackets only allowed within quotes
+            array('"test\test"@example.com', false), // Quotes cannot contain backslash
+            array('"test"test"@example.com', false), // Quotes cannot be nested
+            array('()[]\;:,<>@example.com', false), // Disallowed Characters
+            array('test@.', false),
+            array('test@example.', false),
+            array('test@.org', false),
+            array('12345678901234567890123456789012345678901234567890123456789012345@example.com', false), // 64 characters is maximum length for local part. This is 65.
+            array('test@123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com', false), // 255 characters is maximum length for domain. This is 256.
+            array('test@[123.123.123.123', false),
+            array('test@123.123.123.123]', false),
+        );
     }
 
+    /**
+     * @dataProvider provider
+     * @param string $input
+     * @param bool $success
+     */
+    function test1($input, $success) {
+        $result = mail_isvalid($input);
+        $this->assertSame($success, $result);
+    }
 }
-//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php
index fb7ed8073f0c540737645467104600db4b5239e7..6100ef1bf9c048868027f4a348c0ba2181536bac 100644
--- a/_test/tests/inc/mailer.test.php
+++ b/_test/tests/inc/mailer.test.php
@@ -241,6 +241,7 @@ class mailer_test extends DokuWikiTest {
             }
         }
 
+        $this->assertTrue(true); // avoid being marked as risky for having no assertion
     }
 
     function test_simplemailsignature() {
diff --git a/_test/tests/inc/pageutils_findnearest.test.php b/_test/tests/inc/pageutils_findnearest.test.php
index d62d3dd78d07dc60196f1946356587f605d5fe8b..c2815a06cafaa82fd06e44daa6a6e62b9a852cbc 100644
--- a/_test/tests/inc/pageutils_findnearest.test.php
+++ b/_test/tests/inc/pageutils_findnearest.test.php
@@ -2,7 +2,7 @@
 
 class pageutils_findnearest_test extends DokuWikiTest {
 
-    var $oldAuthAcl;
+    protected $oldAuthAcl;
 
     function setUp() {
         parent::setUp();
diff --git a/_test/tests/inc/remote.test.php b/_test/tests/inc/remote.test.php
index b5c3fda073b133f4c766c1b065f823dab4272d04..ee040f09a4ad3cb614ace6721039fc389695af8e 100644
--- a/_test/tests/inc/remote.test.php
+++ b/_test/tests/inc/remote.test.php
@@ -129,10 +129,10 @@ class remote_plugin_testplugin2 extends DokuWiki_Remote_Plugin {
 
 class remote_test extends DokuWikiTest {
 
-    var $userinfo;
+    protected $userinfo;
 
     /** @var  RemoteAPI */
-    var $remote;
+    protected $remote;
 
     function setUp() {
         parent::setUp();
@@ -256,6 +256,7 @@ class remote_test extends DokuWikiTest {
         $conf['remote'] = 1;
         $conf['remoteuser'] = '';
         $this->remote->forceAccess(); // no exception should occur
+        $this->assertTrue(true); // avoid being marked as risky for having no assertion
     }
 
     /**
diff --git a/_test/tests/inc/utf8_utf16be.test.php b/_test/tests/inc/utf8_utf16be.test.php
index 6a12a01fdafef702f105b54ac647386f062d8801..943ebeffc824921319b921e1039506104f91d2b0 100644
--- a/_test/tests/inc/utf8_utf16be.test.php
+++ b/_test/tests/inc/utf8_utf16be.test.php
@@ -5,8 +5,8 @@ if(!defined('UTF8_NOMBSTRING')) define('UTF8_NOMBSTRING',1);
 
 class utf8_utf16be_test extends DokuWikiTest {
     // some chars from various code regions
-    var $utf8  = '鈩ℵŁöx';
-    var $utf16 = "\x92\x29\x21\x35\x1\x41\x0\xf6\x0\x78";
+    protected $utf8  = '鈩ℵŁöx';
+    protected $utf16 = "\x92\x29\x21\x35\x1\x41\x0\xf6\x0\x78";
 
     /**
      * Convert from UTF-8 to UTF-16BE
diff --git a/composer.json b/composer.json
index 1390454aadebe53e3d1cc73aaadb63de07858b30..715f97dbf0041016b22e4c42df350191fcf42f87 100644
--- a/composer.json
+++ b/composer.json
@@ -5,12 +5,13 @@
     "type": "project",
     "license": "GPL v2",
     "require": {
-        "php": ">=5.3",
+        "php": ">=5.6",
         "splitbrain/php-archive": "~1.0",
-        "easybook/geshi": "~1.0",
         "phpseclib/phpseclib": "~2.0",
         "paragonie/random_compat": "^2.0",
-        "simplepie/simplepie": "^1.4"
+        "simplepie/simplepie": "^1.4",
+        "geshi/geshi": "^1.0",
+        "openpsa/universalfeedcreator": "^1.8"
     },
     "suggest": {
         "squizlabs/php_codesniffer": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
diff --git a/composer.lock b/composer.lock
index b6c197fea4f65afe773f16bde6e1d2ade5c5d33b..e830d3882c76e867501381e7080f76ac606bf1a7 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,66 +4,108 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "e554e0599b74f5057ae2de1300c5bde0",
+    "content-hash": "915e6fb408fdf5780e4f49b03325adcd",
     "packages": [
         {
-            "name": "easybook/geshi",
-            "version": "v1.0.8.18",
+            "name": "geshi/geshi",
+            "version": "v1.0.9.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/easybook/geshi.git",
-                "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287"
+                "url": "https://github.com/GeSHi/geshi-1.0.git",
+                "reference": "5a7b461338d322d941986a656d4d1651452e73dd"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/easybook/geshi/zipball/4b06bfe8c6fbedd6aad0a0700d650f591386e287",
-                "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287",
+                "url": "https://api.github.com/repos/GeSHi/geshi-1.0/zipball/5a7b461338d322d941986a656d4d1651452e73dd",
+                "reference": "5a7b461338d322d941986a656d4d1651452e73dd",
                 "shasum": ""
             },
-            "require": {
-                "php": ">4.3.0"
+            "require-dev": {
+                "phpunit/phpunit": "^5.7"
             },
             "type": "library",
             "autoload": {
                 "classmap": [
-                    "./"
+                    "src/geshi/",
+                    "src/geshi.php"
                 ]
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "GPL-2.0"
+                "GPL-2.0+"
             ],
             "authors": [
-                {
-                    "name": "Nigel McNie",
-                    "email": "nigel@geshi.org"
-                },
                 {
                     "name": "Benny Baumann",
-                    "email": "BenBE@geshi.org"
+                    "email": "BenBE@geshi.org",
+                    "homepage": "http://blog.benny-baumann.de/",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Generic Syntax Highlighter",
+            "homepage": "http://qbnz.com/highlighter/",
+            "time": "2017-05-05T05:51:25+00:00"
+        },
+        {
+            "name": "openpsa/universalfeedcreator",
+            "version": "v1.8.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/flack/UniversalFeedCreator.git",
+                "reference": "6261e130446d8f787bbfd229a602fb11e6816a4e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/flack/UniversalFeedCreator/zipball/6261e130446d8f787bbfd229a602fb11e6816a4e",
+                "reference": "6261e130446d8f787bbfd229a602fb11e6816a4e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "*"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "lib"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL"
+            ],
+            "authors": [
+                {
+                    "name": "Andreas Flack",
+                    "email": "flack@contentcontrol-berlin.de",
+                    "homepage": "http://www.contentcontrol-berlin.de/"
                 }
             ],
-            "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.",
-            "homepage": "http://qbnz.com/highlighter",
+            "description": "RSS and Atom feed generator by Kai Blankenhorn",
             "keywords": [
-                "highlight",
-                "highlighter",
-                "syntax"
+                "atom",
+                "georss",
+                "gpx",
+                "opml",
+                "pie",
+                "rss"
             ],
-            "time": "2016-10-05T07:15:42+00:00"
+            "time": "2017-05-18T08:28:48+00:00"
         },
         {
             "name": "paragonie/random_compat",
-            "version": "v2.0.4",
+            "version": "v2.0.10",
             "source": {
                 "type": "git",
                 "url": "https://github.com/paragonie/random_compat.git",
-                "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
+                "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
-                "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
+                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d",
+                "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d",
                 "shasum": ""
             },
             "require": {
@@ -98,7 +140,7 @@
                 "pseudorandom",
                 "random"
             ],
-            "time": "2016-11-07T23:38:38+00:00"
+            "time": "2017-03-13T16:27:32+00:00"
         },
         {
             "name": "phpseclib/phpseclib",
@@ -254,16 +296,16 @@
         },
         {
             "name": "splitbrain/php-archive",
-            "version": "1.0.7",
+            "version": "1.0.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/splitbrain/php-archive.git",
-                "reference": "c075304b44c4aadff0718af445e86bf730f331ff"
+                "reference": "6b1c1746fa0a6f9f68f0bc832892ddeda8db905c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/c075304b44c4aadff0718af445e86bf730f331ff",
-                "reference": "c075304b44c4aadff0718af445e86bf730f331ff",
+                "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6b1c1746fa0a6f9f68f0bc832892ddeda8db905c",
+                "reference": "6b1c1746fa0a6f9f68f0bc832892ddeda8db905c",
                 "shasum": ""
             },
             "require": {
@@ -272,6 +314,10 @@
             "require-dev": {
                 "phpunit/phpunit": "4.5.*"
             },
+            "suggest": {
+                "ext-iconv": "Used for proper filename encode handling",
+                "ext-mbstring": "Can be used alternatively for handling filename encoding"
+            },
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -297,7 +343,7 @@
                 "unzip",
                 "zip"
             ],
-            "time": "2015-08-12T13:24:34+00:00"
+            "time": "2017-03-19T09:10:53+00:00"
         }
     ],
     "packages-dev": [],
@@ -307,7 +353,7 @@
     "prefer-stable": true,
     "prefer-lowest": false,
     "platform": {
-        "php": ">=5.3"
+        "php": ">=5.6"
     },
     "platform-dev": []
 }
diff --git a/data/deleted.files b/data/deleted.files
index 8bb2887020497a5ed5d560688be891f00d55a288..0188e1c9ee7ec42104deebaad1a309749f92c3a2 100644
--- a/data/deleted.files
+++ b/data/deleted.files
@@ -2,6 +2,24 @@
 # but were removed later. An up to date DokuWiki should not have any of
 # the files installed
 
+# remove in 2017-02-19
+inc/SimplePie.php
+inc/Tar.class.php
+inc/ZipLib.class.php
+inc/phpseclib/Crypt_AES.php
+inc/phpseclib/Crypt_Rijndael.php
+inc/phpseclib/update.sh
+inc/phpseclib/LICENSE
+inc/phpseclib/Crypt_Base.php
+inc/phpseclib/Crypt_Hash.php
+inc/phpseclib/Math_BigInteger.php
+lib/scripts/jquery/jquery-migrate.js
+lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
+lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png
+lib/scripts/jquery/jquery-ui.js
+lib/scripts/jquery/jquery.js
+lib/tpl/dokuwiki/css/_admin.css
+
 # removed in 2016-06-26
 inc/cliopts.php
 lib/tpl/dokuwiki/css/mixins.less
diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt
index 089cf8263bda50360e5275cd7c918eb283edda88..0c4517ce11bf6b01f4149e6482b8cdc29bb217f9 100644
--- a/data/pages/wiki/syntax.txt
+++ b/data/pages/wiki/syntax.txt
@@ -416,7 +416,7 @@ class HelloWorldApp {
 }
 </code>
 
-The following language strings are currently recognized: //4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript-french, actionscript, actionscript3, ada, algol68, apache, applescript, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, epc, ecmascript, eiffel, email, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, genero, genie, gdb, glsl, gml, gnuplot, go, groovy, gettext, gwbasic, haskell, hicest, hq9plus, html, html5, icon, idl, ini, inno, intercal, io, j, java5, java, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, modula2, modula3, mmix, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml-brief, ocaml, oobas, oracle8, oracle11, oxygene, oz, pascal, pcre, perl, perl6, per, pf, php-brief, php, pike, pic16, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vbnet, vb, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, winbatch, whois, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic//
+The following language strings are currently recognized: //4cs 6502acme 6502kickass 6502tasm 68000devpac abap actionscript3 actionscript ada aimms algol68 apache applescript apt_sources arm asm asp asymptote autoconf autohotkey autoit avisynth awk bascomavr bash basic4gl batch bf biblatex bibtex blitzbasic bnf boo caddcl cadlisp ceylon cfdg cfm chaiscript chapel cil c_loadrunner clojure c_mac cmake cobol coffeescript c cpp cpp-qt cpp-winapi csharp css cuesheet c_winapi dart dcl dcpu16 dcs delphi diff div dos dot d ecmascript eiffel email epc e erlang euphoria ezt f1 falcon fo fortran freebasic freeswitch fsharp gambas gdb genero genie gettext glsl gml gnuplot go groovy gwbasic haskell haxe hicest hq9plus html html4strict html5 icon idl ini inno intercal io ispfpanel java5 java javascript jcl j jquery julia kixtart klonec klonecpp kotlin latex lb ldif lisp llvm locobasic logtalk lolcode lotusformulas lotusscript lscript lsl2 lua m68k magiksf make mapbasic mathematica matlab mercury metapost mirc mk-61 mmix modula2 modula3 mpasm mxml mysql nagios netrexx newlisp nginx nimrod nsis oberon2 objc objeck ocaml-brief ocaml octave oobas oorexx oracle11 oracle8 oxygene oz parasail parigp pascal pcre perl6 perl per pf phix php-brief php pic16 pike pixelbender pli plsql postgresql postscript povray powerbuilder powershell proftpd progress prolog properties providex purebasic pycon pys60 python qbasic qml q racket rails rbs rebol reg rexx robots rpmspec rsplus ruby rust sas sass scala scheme scilab scl sdlbasic smalltalk smarty spark sparql sql standardml stonescript swift systemverilog tclegg tcl teraterm texgraph text thinbasic tsql twig typoscript unicon upc urbi uscript vala vbnet vb vbscript vedit verilog vhdl vim visualfoxpro visualprolog whitespace whois winbatch xbasic xml xojo xorg_conf xpp yaml z80 zxbasic//
 
 ==== Downloadable Code Blocks ====
 
diff --git a/doku.php b/doku.php
index 30655fd5305940e141c2adc3839d9cccb80fff2d..42624fd2e8d908ec1fdec72b87e603a8c0c9e24f 100644
--- a/doku.php
+++ b/doku.php
@@ -9,7 +9,7 @@
  */
 
 // update message version - always use a string to avoid localized floats!
-$updateVersion = "49";
+$updateVersion = "49.2";
 
 //  xdebug_start_profiling();
 
diff --git a/feed.php b/feed.php
index 7b3b5e9407b8fdaa96f25904175ab65e3a7a6a3c..ea4ed7c600a92c81e53af071fb6277db763cc75d 100644
--- a/feed.php
+++ b/feed.php
@@ -51,7 +51,7 @@ if($cache->useCache($depends)) {
 }
 
 // create new feed
-$rss                 = new DokuWikiFeedCreator();
+$rss                 = new UniversalFeedCreator();
 $rss->title          = $conf['title'].(($opt['namespace']) ? ' '.$opt['namespace'] : '');
 $rss->link           = DOKU_URL;
 $rss->syndicationURL = DOKU_URL.'feed.php';
@@ -85,7 +85,7 @@ if(isset($modes[$opt['feed_mode']])) {
 }
 
 rss_buildItems($rss, $data, $opt);
-$feed = $rss->createFeed($opt['feed_type'], 'utf-8');
+$feed = $rss->createFeed($opt['feed_type']);
 
 // save cachefile
 $cache->storeCache($feed);
diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php
index de91a54f8841ecd19907128583c9550fe32432ff..37b55e10daa8939b1be92102f6e97ceaccc41e5a 100644
--- a/inc/DifferenceEngine.php
+++ b/inc/DifferenceEngine.php
@@ -226,6 +226,14 @@ class _DiffEngine {
      * of the two files do not match, and likewise that the last lines do not
      * match.  The caller must trim matching lines from the beginning and end
      * of the portions it is going to specify.
+     *
+     * @param integer $xoff
+     * @param integer $xlim
+     * @param integer $yoff
+     * @param integer $ylim
+     * @param integer $nchunks
+     *
+     * @return array
      */
     function _diag($xoff, $xlim, $yoff, $ylim, $nchunks) {
         $flip = false;
@@ -336,6 +344,11 @@ class _DiffEngine {
      *
      * Note that XLIM, YLIM are exclusive bounds.
      * All line numbers are origin-0 and discarded lines are not counted.
+     *
+     * @param integer $xoff
+     * @param integer $xlim
+     * @param integer $yoff
+     * @param integer $ylim
      */
     function _compareseq($xoff, $xlim, $yoff, $ylim) {
         // Slide down the bottom initial diagonal.
@@ -392,6 +405,10 @@ class _DiffEngine {
      * to be the "change".
      *
      * This is extracted verbatim from analyze.c (GNU diffutils-2.7).
+     *
+     * @param array $lines
+     * @param array $changed
+     * @param array $other_changed
      */
     function _shift_boundaries($lines, &$changed, $other_changed) {
         $i = 0;
@@ -612,6 +629,9 @@ class Diff {
      * Check a Diff for validity.
      *
      * This is here only for debugging purposes.
+     *
+     * @param mixed $from_lines
+     * @param mixed $to_lines
      */
     function _check($from_lines, $to_lines) {
         if (serialize($from_lines) != serialize($this->orig()))
@@ -889,6 +909,10 @@ class HTMLDiff {
 
     /**
      * Return a class or style parameter
+     *
+     * @param string $classname
+     *
+     * @return string
      */
     static function css($classname){
         global $DIFF_INLINESTYLES;
@@ -1339,6 +1363,11 @@ class Diff3 extends Diff {
 
     /**
      * @access private
+     *
+     * @param array $edits1
+     * @param array $edits2
+     *
+     * @return array
      */
     function _diff3($edits1, $edits2) {
         $edits = array();
diff --git a/inc/FeedParser.php b/inc/FeedParser.php
index f3ce96c24d33d99dc175b0698d64a2b32b3dc9b5..39434dcaf32b4cb61d00d0aefe584c93df7127e5 100644
--- a/inc/FeedParser.php
+++ b/inc/FeedParser.php
@@ -23,6 +23,8 @@ class FeedParser extends SimplePie {
 
     /**
      * Backward compatibility for older plugins
+     *
+     * @param string $url
      */
     function feed_url($url){
         $this->set_feed_url($url);
diff --git a/inc/Form/DropdownElement.php b/inc/Form/DropdownElement.php
index 29f94675b4035bdee1294aa6ad10ce56df820e8e..023b67dd3f9fd56a129d6a9a3fd00b04c3283ae3 100644
--- a/inc/Form/DropdownElement.php
+++ b/inc/Form/DropdownElement.php
@@ -142,12 +142,14 @@ class DropdownElement extends InputElement {
     protected function getFirstOption() {
         $options = $this->options();
         if (!empty($options)) {
-            return (string) array_shift(array_keys($options));
+            $keys = array_keys($options);
+            return (string) array_shift($keys);
         }
         foreach ($this->optGroups as $optGroup) {
             $options = $optGroup->options();
             if (!empty($options)) {
-                return (string) array_shift(array_keys($options));
+                $keys = array_keys($options);
+                return (string) array_shift($keys);
             }
         }
     }
diff --git a/inc/JSON.php b/inc/JSON.php
index e01488e14690e9bdfff46df0fed71225f2cf7af9..fe4ca5ceff6522ce8be24ca021393957145b2ec1 100644
--- a/inc/JSON.php
+++ b/inc/JSON.php
@@ -305,6 +305,10 @@ class JSON {
 
     /**
      * encodes an arbitrary variable into JSON format, alias for encode()
+     *
+     * @param mixed $var
+     *
+     * @return string
      */
     function enc($var) {
         return $this->encode($var);
@@ -640,6 +644,10 @@ class JSON {
 
     /**
      * decodes a JSON string into appropriate variable; alias for decode()
+     *
+     * @param string $var
+     *
+     * @return mixed
      */
     function dec($var) {
         return $this->decode($var);
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php
index a826c8f66265762700a606c55d14d0d368015dae..d667ce303d88dd53fb429d6edc3f28412a6e90f0 100644
--- a/inc/JpegMeta.php
+++ b/inc/JpegMeta.php
@@ -53,6 +53,8 @@ class JpegMeta {
      * Constructor
      *
      * @author Sebastian Delmont <sdelmont@zonageek.com>
+     *
+     * @param $fileName
      */
     function __construct($fileName) {
 
@@ -1109,6 +1111,8 @@ class JpegMeta {
 
     /**
      * @param string $outputName
+     *
+     * @return bool
      */
     function _writeJPEG($outputName) {
         $this->_parseAll();
@@ -1246,7 +1250,10 @@ class JpegMeta {
     /**
      * @param integer $marker
      * @param integer $length
+     * @param string $data
      * @param integer $origLength
+     *
+     * @return bool
      */
     function _writeJPEGMarker($marker, $length, &$data, $origLength) {
         if ($length <= 0) {
@@ -1575,6 +1582,10 @@ class JpegMeta {
      * Parses XMP nodes by recursion
      *
      * @author  Hakan Sandell <hakan.sandell@mydata.se>
+     *
+     * @param array $values
+     * @param int $i
+     * @param mixed $meta
      * @param integer $count
      */
     function _parseXmpNode($values, &$i, &$meta, $count) {
@@ -1681,9 +1692,13 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
      * @param integer $base
+     * @param integer $offset
      * @param boolean $isBigEndian
      * @param string $mode
+     *
+     * @return int
      */
     function _readIFD($data, $base, $offset, $isBigEndian, $mode) {
         $EXIFTags = $this->_exifTagNames($mode);
@@ -1942,9 +1957,14 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
+     * @param integer $pos
      * @param integer $offsetBase
+     * @param array $entries
      * @param boolean $isBigEndian
      * @param boolean $hasNext
+     *
+     * @return mixed
      */
     function _writeIFD(&$data, $pos, $offsetBase, &$entries, $isBigEndian, $hasNext) {
         $tiffData = null;
@@ -2006,6 +2026,8 @@ class JpegMeta {
     /**
      * @param boolean $isBigEndian
      * @param string $mode
+     *
+     * @return array
      */
     function & _getIFDEntries($isBigEndian, $mode) {
         $EXIFNames = $this->_exifTagNames($mode);
@@ -2015,8 +2037,7 @@ class JpegMeta {
         $ifdEntries = array();
         $entryCount = 0;
 
-        reset($EXIFNames);
-        while (list($tag, $name) = each($EXIFNames)) {
+        foreach($EXIFNames as $tag => $name) {
             $type = $EXIFTypeInfo[$tag][0];
             $count = $EXIFTypeInfo[$tag][1];
             $value = null;
@@ -2517,7 +2538,14 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
      * @param integer $pos
+     *
+     * @param string $type
+     * @param string $header
+     * @param mixed $value
+     *
+     * @return int|mixed
      */
     function _write8BIM(&$data, $pos, $type, $header, &$value) {
         $signature = "8BIM";
@@ -2549,9 +2577,7 @@ class JpegMeta {
 
         $IPTCNames =& $this->_iptcNameTags();
 
-        reset($this->_info['iptc']);
-
-        while (list($label) = each($this->_info['iptc'])) {
+        foreach($this->_info['iptc'] as $label => $value) {
             $value =& $this->_info['iptc'][$label];
             $type = -1;
 
@@ -2581,7 +2607,13 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
      * @param integer $pos
+     *
+     * @param string $type
+     * @param mixed $value
+     *
+     * @return int|mixed
      */
     function _writeIPTCEntry(&$data, $pos, $type, &$value) {
         $pos = $this->_putShort($data, $pos, 0x1C02);
@@ -2934,8 +2966,8 @@ class JpegMeta {
     /*************************************************************/
     function _names2Tags($tags2Names) {
         $names2Tags = array();
-        reset($tags2Names);
-        while (list($tag, $name) = each($tags2Names)) {
+
+        foreach($tags2Names as $tag => $name) {
             $names2Tags[$name] = $tag;
         }
 
@@ -2945,7 +2977,10 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param $data
      * @param integer $pos
+     *
+     * @return int
      */
     function _getByte(&$data, $pos) {
         return ord($data{$pos});
@@ -2954,7 +2989,12 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
      * @param integer $pos
+     *
+     * @param mixed $val
+     *
+     * @return int
      */
     function _putByte(&$data, $pos, $val) {
         $val = intval($val);
@@ -2993,7 +3033,12 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
      * @param integer $pos
+     *
+     * @param bool $bigEndian
+     *
+     * @return int
      */
     function _getLong(&$data, $pos, $bigEndian = true) {
         if ($bigEndian) {
@@ -3012,7 +3057,13 @@ class JpegMeta {
     /*************************************************************/
 
     /**
+     * @param mixed $data
      * @param integer $pos
+     *
+     * @param mixed $val
+     * @param bool $bigEndian
+     *
+     * @return int
      */
     function _putLong(&$data, $pos, $val, $bigEndian = true) {
         $val = intval($val);
diff --git a/inc/PassHash.class.php b/inc/PassHash.class.php
index 921460dbcfa78c4e6f6e7629774d5649ef1a2933..d24cc75e52110660c1b142dde1102b7713b441a1 100644
--- a/inc/PassHash.class.php
+++ b/inc/PassHash.class.php
@@ -313,7 +313,7 @@ class PassHash {
      * @return string Hashed password
      */
     public function hash_my411($clear) {
-        return '*'.sha1(pack("H*", sha1($clear)));
+        return '*'.strtoupper(sha1(pack("H*", sha1($clear))));
     }
 
     /**
@@ -404,6 +404,13 @@ class PassHash {
 
     /**
      * Alias for hash_pmd5
+     *
+     * @param string $clear
+     * @param null|string $salt
+     * @param string $magic
+     * @param int $compute
+     *
+     * @return string
      */
     public function hash_hmd5($clear, $salt = null, $magic = 'H', $compute = 8) {
         return $this->hash_pmd5($clear, $salt, $magic, $compute);
@@ -530,7 +537,7 @@ class PassHash {
 
         if(is_null($salt)) {
             if($compute < 4 || $compute > 31) $compute = 8;
-            $salt = '$2a$'.str_pad($compute, 2, '0', STR_PAD_LEFT).'$'.
+            $salt = '$2y$'.str_pad($compute, 2, '0', STR_PAD_LEFT).'$'.
                 $this->gen_salt(22);
         }
 
diff --git a/inc/auth.php b/inc/auth.php
index d9928cea68af7e8cc6bf24f6de59ebbd877d47c3..7fa61aa18af43a4d9760ed426f725217aa38e229 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -230,7 +230,10 @@ function auth_login($user, $pass, $sticky = false, $silent = false) {
             return true;
         } else {
             //invalid credentials - log off
-            if(!$silent) msg($lang['badlogin'], -1);
+            if(!$silent) {
+                http_status(403, 'Login failed');
+                msg($lang['badlogin'], -1);
+            }
             auth_logoff();
             return false;
         }
diff --git a/inc/blowfish.php b/inc/blowfish.php
deleted file mode 100644
index 7499515bc2bc79198007c23a79d7dae016c24372..0000000000000000000000000000000000000000
--- a/inc/blowfish.php
+++ /dev/null
@@ -1,515 +0,0 @@
-<?php
-/* vim: set expandtab sw=4 ts=4 sts=4: */
-/**
- * The Cipher_blowfish:: class implements the Cipher interface enryption data
- * using the Blowfish algorithm.
- *
- * $Horde: horde/lib/Cipher/blowfish.php,v 1.2.2.3 2003/01/03 13:23:22 jan Exp $
- *
- * Copyright 2002-2003 Mike Cochrane <mike@graftonhall.co.nz>
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @author  Mike Cochrane <mike@graftonhall.co.nz>
- * @version $Id: blowfish.php 11081 2008-01-25 09:35:48Z cybot_tm $
- * @since   Horde 2.2
- * @package horde.cipher
- */
-
-// Change for phpMyAdmin by lem9:
-//class Horde_Cipher_blowfish extends Horde_Cipher {
-class Horde_Cipher_blowfish
-{
-    /* Pi Array */
-    var $p = array(
-            0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
-            0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
-            0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
-            0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
-            0x9216D5D9, 0x8979FB1B);
-
-    /* S Boxes */
-    var $s1 = array(
-            0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
-            0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
-            0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
-            0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
-            0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
-            0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
-            0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
-            0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
-            0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
-            0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
-            0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
-            0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
-            0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
-            0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
-            0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
-            0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
-            0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
-            0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
-            0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
-            0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
-            0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
-            0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
-            0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
-            0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
-            0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
-            0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
-            0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
-            0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
-            0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
-            0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
-            0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
-            0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
-            0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
-            0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
-            0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
-            0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
-            0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
-            0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
-            0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
-            0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
-            0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
-            0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
-            0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
-            0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
-            0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
-            0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
-            0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
-            0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
-            0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
-            0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
-            0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
-            0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
-            0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
-            0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
-            0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
-            0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
-            0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
-            0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
-            0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
-            0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
-            0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
-            0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
-            0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
-            0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A);
-    var $s2 = array(
-            0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
-            0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
-            0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
-            0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
-            0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
-            0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
-            0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
-            0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
-            0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
-            0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
-            0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
-            0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
-            0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
-            0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
-            0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
-            0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
-            0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
-            0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
-            0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
-            0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
-            0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
-            0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
-            0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
-            0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
-            0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
-            0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
-            0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
-            0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
-            0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
-            0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
-            0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
-            0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
-            0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
-            0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
-            0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
-            0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
-            0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
-            0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
-            0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
-            0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
-            0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
-            0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
-            0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
-            0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
-            0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
-            0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
-            0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
-            0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
-            0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
-            0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
-            0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
-            0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
-            0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
-            0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
-            0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
-            0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
-            0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
-            0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
-            0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
-            0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
-            0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
-            0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
-            0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
-            0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7);
-    var $s3 = array(
-            0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
-            0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
-            0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
-            0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
-            0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
-            0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
-            0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
-            0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
-            0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
-            0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
-            0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
-            0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
-            0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
-            0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
-            0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
-            0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
-            0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
-            0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
-            0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
-            0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
-            0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
-            0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
-            0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
-            0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
-            0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
-            0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
-            0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
-            0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
-            0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
-            0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
-            0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
-            0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
-            0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
-            0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
-            0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
-            0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
-            0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
-            0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
-            0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
-            0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
-            0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
-            0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
-            0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
-            0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
-            0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
-            0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
-            0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
-            0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
-            0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
-            0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
-            0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
-            0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
-            0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
-            0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
-            0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
-            0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
-            0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
-            0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
-            0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
-            0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
-            0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
-            0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
-            0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
-            0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0);
-    var $s4 = array(
-            0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
-            0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
-            0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
-            0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
-            0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
-            0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
-            0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
-            0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
-            0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
-            0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
-            0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
-            0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
-            0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
-            0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
-            0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
-            0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
-            0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
-            0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
-            0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
-            0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
-            0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
-            0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
-            0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
-            0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
-            0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
-            0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
-            0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
-            0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
-            0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
-            0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
-            0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
-            0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
-            0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
-            0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
-            0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
-            0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
-            0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
-            0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
-            0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
-            0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
-            0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
-            0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
-            0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
-            0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
-            0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
-            0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
-            0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
-            0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
-            0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
-            0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
-            0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
-            0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
-            0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
-            0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
-            0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
-            0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
-            0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
-            0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
-            0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
-            0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
-            0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
-            0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
-            0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
-            0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6);
-
-    /* The number of rounds to do */
-    var $_rounds = 16;
-
-    /**
-     * Set the key to be used for en/decryption
-     *
-     * @param String $key   The key to use
-     */
-    function setKey($key) {
-        $key = $this->_formatKey($key);
-        $keyPos = $keyXor = 0;
-
-        $iMax = count($this->p);
-        $keyLen = count($key);
-        for ($i = 0; $i < $iMax; $i++) {
-            for ($t = 0; $t < 4; $t++) {
-                $keyXor = ($keyXor << 8) | (($key[$keyPos]) & 0x0ff);
-                if (++$keyPos == $keyLen) {
-                    $keyPos = 0;
-                }
-            }
-            $this->p[$i] = $this->p[$i] ^ $keyXor;
-        }
-
-        $encZero = array('L' => 0, 'R' => 0);
-        for ($i = 0; $i + 1 < $iMax; $i += 2) {
-            $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
-            $this->p[$i] = $encZero['L'];
-            $this->p[$i + 1] = $encZero['R'];
-        }
-
-        $iMax = count($this->s1);
-        for ($i = 0; $i < $iMax; $i += 2) {
-            $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
-            $this->s1[$i] = $encZero['L'];
-            $this->s1[$i + 1] = $encZero['R'];
-        }
-
-        $iMax = count($this->s2);
-        for ($i = 0; $i < $iMax; $i += 2) {
-            $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
-            $this->s2[$i] = $encZero['L'];
-            $this->s2[$i + 1] = $encZero['R'];
-        }
-
-        $iMax = count($this->s3);
-        for ($i = 0; $i < $iMax; $i += 2) {
-            $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
-            $this->s3[$i] = $encZero['L'];
-            $this->s3[$i + 1] = $encZero['R'];
-        }
-
-        $iMax = count($this->s4);
-        for ($i = 0; $i < $iMax; $i += 2) {
-            $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
-            $this->s4[$i] = $encZero['L'];
-            $this->s4[$i + 1] = $encZero['R'];
-        }
-
-    }
-
-    /**
-     * Encrypt a block on data.
-     *
-     * @param String $block         The data to encrypt
-     * @param String $key  optional The key to use
-     *
-     * @return String the encrypted output
-     */
-    function encryptBlock($block, $key = null) {
-        if (!is_null($key)) {
-            $this->setKey($key);
-        }
-
-        list($L, $R) = array_values(unpack('N*', $block));
-        $parts = $this->_encryptBlock($L, $R);
-        return pack("NN", $parts['L'], $parts['R']);
-    }
-
-    /**
-     * Encrypt a block on data.
-     *
-     * @param String $L  The data to encrypt.
-     * @param String $R  The data to encrypt.
-     *
-     * @return String  The encrypted output.
-     */
-    function _encryptBlock($L, $R) {
-        $L ^= $this->p[0];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[1];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[2];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[3];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[4];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[5];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[6];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[7];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[8];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[9];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[10];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[11];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[12];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[13];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[14];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[15];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[16];
-        $R ^= $this->p[17];
-
-        return array('L' => $R, 'R' => $L);
-    }
-
-    /**
-     * Decrypt a block on data.
-     *
-     * @param String $block          The data to decrypt
-     * @param String $key   optional The key to use
-     *
-     * @return String the decrypted output
-     */
-    function decryptBlock($block, $key = null) {
-        if (!is_null($key)) {
-            $this->setKey($key);
-        }
-
-        // change for phpMyAdmin
-        $L = null;
-        $R = null;
-
-        $retarray = array_values(unpack('N*', $block));
-        if (isset($retarray[0])) {
-            $L = $retarray[0];
-        }
-        if (isset($retarray[1])) {
-            $R = $retarray[1];
-        }
-        // end change for phpMyAdmin
-
-        $L ^= $this->p[17];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[16];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[15];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[14];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[13];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[12];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[11];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[10];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[9];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[8];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[7];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[6];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[5];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[4];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[3];
-        $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[2];
-        $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[1];
-
-        $decrypted = pack("NN", $R ^ $this->p[0], $L);
-        return $decrypted;
-    }
-
-    /**
-     * Converts a text key into an array.
-     *
-     * @param string $key
-     * @return array  The key.
-     */
-    function _formatKey($key) {
-        return array_values(unpack('C*', $key));
-    }
-
-}
-
-// higher-level functions:
-/**
- * Encryption using blowfish algorithm
- *
- * @param   string  $data   original data
- * @param   string  $secret the secret
- *
- * @return  string  the encrypted result
- *
- * @access  public
- *
- * @author  lem9
- */
-function PMA_blowfish_encrypt($data, $secret) {
-    $pma_cipher = new Horde_Cipher_blowfish;
-    $encrypt = '';
-
-    $data .= '_'; // triming fixed for DokuWiki FS#1690 FS#1713
-    $mod = strlen($data) % 8;
-
-    if ($mod > 0) {
-        $data .= str_repeat("\0", 8 - $mod);
-    }
-
-    foreach (str_split($data, 8) as $chunk) {
-        $encrypt .= $pma_cipher->encryptBlock($chunk, $secret);
-    }
-    return base64_encode($encrypt);
-}
-
-/**
- * Decryption using blowfish algorithm
- *
- * @param   string  $encdata encrypted data
- * @param   string  $secret  the secret
- *
- * @return  string  original data
- *
- * @access  public
- *
- * @author  lem9
- */
-function PMA_blowfish_decrypt($encdata, $secret) {
-    $pma_cipher = new Horde_Cipher_blowfish;
-    $decrypt = '';
-    $data = base64_decode($encdata);
-
-    foreach (str_split($data, 8) as $chunk) {
-        $decrypt .= $pma_cipher->decryptBlock($chunk, $secret);
-    }
-    return substr(rtrim($decrypt, "\0"), 0, -1); // triming fixed for DokuWiki FS#1690 FS#1713
-}
diff --git a/inc/cache.php b/inc/cache.php
index 9375dc86be863f4372687e272b3971882376d600..8589d91bad6f3e2d029b18a01b75a1feb86fcd5e 100644
--- a/inc/cache.php
+++ b/inc/cache.php
@@ -18,9 +18,9 @@ class cache {
     public $depends = array(); // array containing cache dependency information,
                                //   used by _useCache to determine cache validity
 
-    var $_event = '';       // event to be triggered during useCache
-    var $_time;
-    var $_nocache = false;  // if set to true, cache will not be used or stored
+    public $_event = '';       // event to be triggered during useCache
+    public $_time;
+    public $_nocache = false;  // if set to true, cache will not be used or stored
 
     /**
      * @param string $key primary identifier
@@ -180,7 +180,7 @@ class cache_parser extends cache {
     public $mode = '';       // input mode (represents the processing the input file will undergo)
     public $page = '';
 
-    var $_event = 'PARSER_CACHE_USE';
+    public $_event = 'PARSER_CACHE_USE';
 
     /**
      *
diff --git a/inc/cli.php b/inc/cli.php
index 14e2c0c8d40c3363200bca9379e31470c516205e..4c4403a394ae2053655bf9b767e86dfebc53a429 100644
--- a/inc/cli.php
+++ b/inc/cli.php
@@ -62,7 +62,7 @@ abstract class DokuCLI {
         );
         $this->options->registerOption(
             'help',
-            'Display this help screen and exit immeadiately.',
+            'Display this help screen and exit immediately.',
             'h'
         );
 
diff --git a/inc/common.php b/inc/common.php
index b8e77d7bf1b5b0c5f88bfa2653663e5254e7729b..9a1da79075cd016ad371dd276aac49e306306bd7 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -94,7 +94,13 @@ function stripctl($string) {
 function getSecurityToken() {
     /** @var Input $INPUT */
     global $INPUT;
-    return PassHash::hmac('md5', session_id().$INPUT->server->str('REMOTE_USER'), auth_cookiesalt());
+
+    $user = $INPUT->server->str('REMOTE_USER');
+    $session = session_id();
+
+    // CSRF checks are only for logged in users - do not generate for anonymous
+    if(trim($user) == '' || trim($session) == '') return '';
+    return PassHash::hmac('md5', $session.$user, auth_cookiesalt());
 }
 
 /**
@@ -724,7 +730,9 @@ function checkwordblock($text = '') {
                 $data['userinfo']['name'] = $INFO['userinfo']['name'];
                 $data['userinfo']['mail'] = $INFO['userinfo']['mail'];
             }
-            $callback = create_function('', 'return true;');
+            $callback = function () {
+                return true;
+            };
             return trigger_event('COMMON_WORDBLOCK_BLOCKED', $data, $callback, true);
         }
     }
@@ -1133,7 +1141,13 @@ function parsePageTemplate(&$data) {
     );
 
     // we need the callback to work around strftime's char limit
-    $tpl         = preg_replace_callback('/%./', create_function('$m', 'return strftime($m[0]);'), $tpl);
+    $tpl = preg_replace_callback(
+        '/%./',
+        function ($m) {
+            return strftime($m[0]);
+        },
+        $tpl
+    );
     $data['tpl'] = $tpl;
     return $tpl;
 }
diff --git a/inc/confutils.php b/inc/confutils.php
index 6948b6e31b475987db9fedf2748d8140d895da1d..fb9a3edd7a5b66cdb70cbcf82f8dc6e474258249 100644
--- a/inc/confutils.php
+++ b/inc/confutils.php
@@ -132,7 +132,8 @@ function getCdnUrls() {
     $versions = array();
     $lines = file(DOKU_INC . 'lib/scripts/jquery/versions');
     foreach($lines as $line) {
-        $line = preg_replace('/#.*$/', '', $line);
+        $line = trim(preg_replace('/#.*$/', '', $line));
+        if($line === '') continue;
         list($key, $val) = explode('=', $line, 2);
         $key = trim($key);
         $val = trim($val);
@@ -201,6 +202,11 @@ function getSchemes() {
  * @author Harry Fuecks <hfuecks@gmail.com>
  * @author Andreas Gohr <andi@splitbrain.org>
  * @author Gina Haeussge <gina@foosel.net>
+ *
+ * @param array $lines
+ * @param bool $lower
+ *
+ * @return array
  */
 function linesToHash($lines, $lower=false) {
     $conf = array();
@@ -234,6 +240,11 @@ function linesToHash($lines, $lower=false) {
  * @author Harry Fuecks <hfuecks@gmail.com>
  * @author Andreas Gohr <andi@splitbrain.org>
  * @author Gina Haeussge <gina@foosel.net>
+ *
+ * @param string $file
+ * @param bool $lower
+ *
+ * @return array
  */
 function confToHash($file,$lower=false) {
     $conf = array();
diff --git a/inc/events.php b/inc/events.php
index 35d55d0e3fda5f98b17eba1174e215925abc0a3d..034414f88539571b7a7577198aab318e8c47e8c2 100644
--- a/inc/events.php
+++ b/inc/events.php
@@ -22,8 +22,8 @@ class Doku_Event {
     public $canPreventDefault = true; // READONLY  if true, event handlers can prevent the events default action
 
     // private properties, event handlers can effect these through the provided methods
-    var $_default = true;     // whether or not to carry out the default action associated with the event
-    var $_continue = true;    // whether or not to continue propagating the event to other handlers
+    protected $_default = true;     // whether or not to carry out the default action associated with the event
+    protected $_continue = true;    // whether or not to continue propagating the event to other handlers
 
     /**
      * event constructor
@@ -123,18 +123,36 @@ class Doku_Event {
      * stop any further processing of the event by event handlers
      * this function does not prevent the default action taking place
      */
-    function stopPropagation() {
+    public function stopPropagation() {
         $this->_continue = false;
     }
 
+    /**
+     * may the event propagate to the next handler?
+     *
+     * @return bool
+     */
+    public function mayPropagate() {
+        return $this->_continue;
+    }
+
     /**
      * preventDefault
      *
      * prevent the default action taking place
      */
-    function preventDefault() {
+    public function preventDefault() {
         $this->_default = false;
     }
+
+    /**
+     * should the default action be executed?
+     *
+     * @return bool
+     */
+    public function mayRunDefault() {
+        return $this->_default;
+    }
 }
 
 /**
@@ -211,7 +229,7 @@ class Doku_Event_Handler {
                         $obj->$method($event, $param);
                     }
 
-                    if (!$event->_continue) return;
+                    if (!$event->mayPropagate()) return;
                 }
             }
         }
diff --git a/inc/farm.php b/inc/farm.php
index 87fcdade8d8666fd2d22c4cac07d5798eab69717..0cd9d4f9c8098ae50a0a04aa8b1e1f4c7b54efae 100644
--- a/inc/farm.php
+++ b/inc/farm.php
@@ -38,6 +38,10 @@ if(!defined('DOKU_FARM')) define('DOKU_FARM', false);
  * website's hostname from left to right and pathname from right to left. The
  * first configuration file found will be used; the remaining will ignored.
  * If no configuration file is found, return the default confdir './conf'.
+ *
+ * @param string $farm
+ *
+ * @return string
  */
 function farm_confpath($farm) {
 
diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php
deleted file mode 100644
index fe444b39baa3b750026d35ca57afe9b760bf8e10..0000000000000000000000000000000000000000
--- a/inc/feedcreator.class.php
+++ /dev/null
@@ -1,1663 +0,0 @@
-<?php
-/***************************************************************************
- * FeedCreator class v1.7.2-ppt
- * originally (c) Kai Blankenhorn
- * www.bitfolge.de
- * kaib@bitfolge.de
- * v1.3 work by Scott Reynen (scott@randomchaos.com) and Kai Blankenhorn
- * v1.5 OPML support by Dirk Clemens
- * v1.7.2-mod on-the-fly feed generation by Fabian Wolf (info@f2w.de)
- * v1.7.2-ppt ATOM 1.0 support by Mohammad Hafiz bin Ismail (mypapit@gmail.com)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * @author www.bitfolge.de
- *
- * Changelog:
- *
- * this version contains some smaller modifications for DokuWiki as well
- *
- * v1.7.2-ppt   11-21-05
- *  added Atom 1.0 support
- *  added enclosure support for RSS 2.0/ATOM 1.0
- *  added docs for v1.7.2-ppt only!
- *
- * v1.7.2-mod   03-12-05
- *  added output function outputFeed for on-the-fly feed generation
- *
- * v1.7.2   10-11-04
- *  license changed to LGPL
- *
- * v1.7.1
- *  fixed a syntax bug
- *  fixed left over debug code
- *
- * v1.7 07-18-04
- *  added HTML and JavaScript feeds (configurable via CSS) (thanks to Pascal Van Hecke)
- *  added HTML descriptions for all feed formats (thanks to Pascal Van Hecke)
- *  added a switch to select an external stylesheet (thanks to Pascal Van Hecke)
- *  changed default content-type to application/xml
- *  added character encoding setting
- *  fixed numerous smaller bugs (thanks to Sören Fuhrmann of golem.de)
- *  improved changing ATOM versions handling (thanks to August Trometer)
- *  improved the UniversalFeedCreator's useCached method (thanks to Sören Fuhrmann of golem.de)
- *  added charset output in HTTP headers (thanks to Sören Fuhrmann of golem.de)
- *  added Slashdot namespace to RSS 1.0 (thanks to Sören Fuhrmann of golem.de)
- *
- * See www.bitfolge.de for additional changelog info
- */
-// your local timezone, set to "" to disable or for GMT
-define("TIME_ZONE",date("O", time()));
-
-
-
-
-/**
- * Version string.
- **/
-
-define("FEEDCREATOR_VERSION", "FeedCreator 1.7.2-ppt DokuWiki");
-
-
-
-/**
- * A FeedItem is a part of a FeedCreator feed.
- *
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- * @since 1.3
- */
-class FeedItem extends HtmlDescribable {
-    /**
-     * Mandatory attributes of an item.
-     */
-    var $title, $description, $link;
-
-    /**
-     * Optional attributes of an item.
-     */
-    var $author, $authorEmail, $image, $category, $comments, $guid, $source, $creator;
-
-    /**
-     * Publishing date of an item. May be in one of the following formats:
-     *
-     *  RFC 822:
-     *  "Mon, 20 Jan 03 18:05:41 +0400"
-     *  "20 Jan 03 18:05:41 +0000"
-     *
-     *  ISO 8601:
-     *  "2003-01-20T18:05:41+04:00"
-     *
-     *  Unix:
-     *  1043082341
-     */
-    var $date;
-
-    /**
-     * Add <enclosure> element tag RSS 2.0
-     * modified by : Mohammad Hafiz bin Ismail (mypapit@gmail.com)
-     *
-     *
-     * display :
-     * <enclosure length="17691" url="http://something.com/picture.jpg" type="image/jpeg" />
-     *
-     */
-    var $enclosure;
-
-    /**
-     * Any additional elements to include as an assiciated array. All $key => $value pairs
-     * will be included unencoded in the feed item in the form
-     *     <$key>$value</$key>
-     * Again: No encoding will be used! This means you can invalidate or enhance the feed
-     * if $value contains markup. This may be abused to embed tags not implemented by
-     * the FeedCreator class used.
-     */
-    var $additionalElements = Array();
-
-    // on hold
-    // var $source;
-}
-
-/**
- * Class EnclosureItem
- */
-class EnclosureItem extends HtmlDescribable {
-    /*
-    *
-    * core variables
-    *
-    **/
-    var $url,$length,$type;
-
-    /*
-    * For use with another extension like Yahoo mRSS
-    * Warning :
-    * These variables might not show up in
-    * later release / not finalize yet!
-    *
-    */
-    var $width, $height, $title, $description, $keywords, $thumburl;
-
-    var $additionalElements = Array();
-
-}
-
-
-/**
- * An FeedImage may be added to a FeedCreator feed.
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- * @since 1.3
- */
-class FeedImage extends HtmlDescribable {
-    /**
-     * Mandatory attributes of an image.
-     */
-    var $title, $url, $link;
-
-    /**
-     * Optional attributes of an image.
-     */
-    var $width, $height, $description;
-}
-
-
-
-/**
- * An HtmlDescribable is an item within a feed that can have a description that may
- * include HTML markup.
- */
-class HtmlDescribable {
-    /**
-     * Indicates whether the description field should be rendered in HTML.
-     */
-    var $descriptionHtmlSyndicated;
-
-    /**
-     * Indicates whether and to how many characters a description should be truncated.
-     */
-    var $descriptionTruncSize;
-
-    var $description;
-
-    /**
-     * Returns a formatted description field, depending on descriptionHtmlSyndicated and
-     * $descriptionTruncSize properties
-     * @return    string    the formatted description
-     */
-    function getDescription() {
-        $descriptionField = new FeedHtmlField($this->description);
-        $descriptionField->syndicateHtml = $this->descriptionHtmlSyndicated;
-        $descriptionField->truncSize = $this->descriptionTruncSize;
-        return $descriptionField->output();
-    }
-
-}
-
-
-
-/**
- * An FeedHtmlField describes and generates
- * a feed, item or image html field (probably a description). Output is
- * generated based on $truncSize, $syndicateHtml properties.
- * @author Pascal Van Hecke <feedcreator.class.php@vanhecke.info>
- * @version 1.6
- */
-class FeedHtmlField {
-    /**
-     * Mandatory attributes of a FeedHtmlField.
-     */
-    var $rawFieldContent;
-
-    /**
-     * Optional attributes of a FeedHtmlField.
-     *
-     */
-    var $truncSize, $syndicateHtml;
-
-    /**
-     * Creates a new instance of FeedHtmlField.
-     * @param string $parFieldContent: if given, sets the rawFieldContent property
-     */
-    function __construct($parFieldContent) {
-        if ($parFieldContent) {
-            $this->rawFieldContent = $parFieldContent;
-        }
-    }
-
-
-    /**
-     * Creates the right output, depending on $truncSize, $syndicateHtml properties.
-     * @return string    the formatted field
-     */
-    function output() {
-        // when field available and syndicated in html we assume
-        // - valid html in $rawFieldContent and we enclose in CDATA tags
-        // - no truncation (truncating risks producing invalid html)
-        if (!$this->rawFieldContent) {
-            $result = "";
-        }   elseif ($this->syndicateHtml) {
-            $result = "<![CDATA[".$this->rawFieldContent."]]>";
-        } else {
-            if ($this->truncSize and is_int($this->truncSize)) {
-                $result = FeedCreator::iTrunc(htmlspecialchars($this->rawFieldContent),$this->truncSize);
-            } else {
-                $result = htmlspecialchars($this->rawFieldContent);
-            }
-        }
-        return $result;
-    }
-
-}
-
-
-
-/**
- * UniversalFeedCreator lets you choose during runtime which
- * format to build.
- * For general usage of a feed class, see the FeedCreator class
- * below or the example above.
- *
- * @since 1.3
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- */
-class UniversalFeedCreator extends FeedCreator {
-    /** @var FeedCreator */
-    var $_feed;
-
-    /**
-     * Sets format
-     *
-     * @param string $format
-     */
-    function _setFormat($format) {
-        switch (strtoupper($format)) {
-
-            case "2.0":
-                // fall through
-            case "RSS2.0":
-                $this->_feed = new RSSCreator20();
-                break;
-
-            case "1.0":
-                // fall through
-            case "RSS1.0":
-                $this->_feed = new RSSCreator10();
-                break;
-
-            case "0.91":
-                // fall through
-            case "RSS0.91":
-                $this->_feed = new RSSCreator091();
-                break;
-
-            case "PIE0.1":
-                $this->_feed = new PIECreator01();
-                break;
-
-            case "MBOX":
-                $this->_feed = new MBOXCreator();
-                break;
-
-            case "OPML":
-                $this->_feed = new OPMLCreator();
-                break;
-
-            case "ATOM":
-                // fall through: always the latest ATOM version
-            case "ATOM1.0":
-                $this->_feed = new AtomCreator10();
-                break;
-
-            case "ATOM0.3":
-                $this->_feed = new AtomCreator03();
-                break;
-
-            case "HTML":
-                $this->_feed = new HTMLCreator();
-                break;
-
-            case "JS":
-                // fall through
-            case "JAVASCRIPT":
-                $this->_feed = new JSCreator();
-                break;
-
-            default:
-                $this->_feed = new RSSCreator091();
-                break;
-        }
-
-        $vars = get_object_vars($this);
-        foreach ($vars as $key => $value) {
-            // prevent overwriting of properties "contentType", "encoding"; do not copy "_feed" itself
-            if (!in_array($key, array("_feed", "contentType", "encoding"))) {
-                $this->_feed->{$key} = $this->{$key};
-            }
-        }
-    }
-
-    function _sendMIME() {
-        header('Content-Type: '.$this->contentType.'; charset='.$this->encoding, true);
-    }
-
-    /**
-     * Creates a syndication feed based on the items previously added.
-     *
-     * @see        FeedCreator::addItem()
-     * @param    string    $format    format the feed should comply to. Valid values are:
-     *          "PIE0.1", "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3", "HTML", "JS"
-     * @return    string    the contents of the feed.
-     */
-    function createFeed($format = "RSS0.91") {
-        $this->_setFormat($format);
-        return $this->_feed->createFeed();
-    }
-
-    /**
-     * Saves this feed as a file on the local disk. After the file is saved, an HTTP redirect
-     * header may be sent to redirect the use to the newly created file.
-     * @since 1.4
-     *
-     * @param   string  $format  format the feed should comply to. Valid values are:
-     *          "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM", "ATOM0.3", "HTML", "JS"
-     * @param   string  $filename    optional    the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()).
-     * @param   boolean $displayContents optional    send the content of the file or not. If true, the file will be sent in the body of the response.
-     */
-    function saveFeed($format="RSS0.91", $filename="", $displayContents=true) {
-        $this->_setFormat($format);
-        $this->_feed->saveFeed($filename, $displayContents);
-    }
-
-
-    /**
-     * Turns on caching and checks if there is a recent version of this feed in the cache.
-     * If there is, an HTTP redirect header is sent.
-     * To effectively use caching, you should create the FeedCreator object and call this method
-     * before anything else, especially before you do the time consuming task to build the feed
-     * (web fetching, for example).
-     *
-     * @param string   $format   format the feed should comply to. Valid values are:
-     *       "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3".
-     * @param string   $filename   optional the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()).
-     * @param int      $timeout optional the timeout in seconds before a cached version is refreshed (defaults to 3600 = 1 hour)
-     */
-    function useCached($format="RSS0.91", $filename="", $timeout=3600) {
-        $this->_setFormat($format);
-        $this->_feed->useCached($filename, $timeout);
-    }
-
-
-    /**
-     * Outputs feed to the browser - needed for on-the-fly feed generation (like it is done in WordPress, etc.)
-     *
-     * @param    $format  string  format the feed should comply to. Valid values are:
-     *                           "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3".
-     */
-    function outputFeed($format='RSS0.91') {
-        $this->_setFormat($format);
-        $this->_sendMIME();
-        $this->_feed->outputFeed();
-    }
-
-
-}
-
-
-/**
- * FeedCreator is the abstract base implementation for concrete
- * implementations that implement a specific format of syndication.
- *
- * @abstract
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- * @since 1.4
- */
-class FeedCreator extends HtmlDescribable {
-
-    /**
-     * Mandatory attributes of a feed.
-     */
-    var $title, $description, $link;
-
-
-    /**
-     * Optional attributes of a feed.
-     */
-    var $syndicationURL, $language, $copyright, $pubDate, $lastBuildDate, $editor, $editorEmail, $webmaster, $category, $docs, $ttl, $rating, $skipHours, $skipDays;
-    /**
-     * Optional attribute of a feed
-     *
-     * @var FeedImage
-     */
-    var $image = null;
-
-    /**
-    * The url of the external xsl stylesheet used to format the naked rss feed.
-    * Ignored in the output when empty.
-    */
-    var $xslStyleSheet = "";
-
-    /**
-     * Style sheet for rss feed
-     */
-    var $cssStyleSheet = "";
-
-
-    /**
-     * @access private
-     * @var FeedItem[]
-     */
-    var $items = Array();
-
-    /**
-     * This feed's MIME content type.
-     * @since 1.4
-     * @access private
-     */
-    var $contentType = "application/xml";
-
-
-    /**
-     * This feed's character encoding.
-     * @since 1.6.1
-     **/
-    var $encoding = "utf-8";
-
-
-    /**
-     * Any additional elements to include as an assiciated array. All $key => $value pairs
-     * will be included unencoded in the feed in the form
-     *     <$key>$value</$key>
-     * Again: No encoding will be used! This means you can invalidate or enhance the feed
-     * if $value contains markup. This may be abused to embed tags not implemented by
-     * the FeedCreator class used.
-     */
-    var $additionalElements = Array();
-
-
-    var $_timeout;
-
-    /**
-     * Adds an FeedItem to the feed.
-     *
-     * @param FeedItem $item The FeedItem to add to the feed.
-     * @access public
-     */
-    function addItem($item) {
-        $this->items[] = $item;
-    }
-
-
-    /**
-     * Truncates a string to a certain length at the most sensible point.
-     * First, if there's a '.' character near the end of the string, the string is truncated after this character.
-     * If there is no '.', the string is truncated after the last ' ' character.
-     * If the string is truncated, " ..." is appended.
-     * If the string is already shorter than $length, it is returned unchanged.
-     *
-     * @static
-     * @param string  $string A string to be truncated.
-     * @param int     $length the maximum length the string should be truncated to
-     * @return string    the truncated string
-     */
-    static function iTrunc($string, $length) {
-        if (strlen($string)<=$length) {
-            return $string;
-        }
-
-        $pos = strrpos($string,".");
-        if ($pos>=$length-4) {
-            $string = substr($string,0,$length-4);
-            $pos = strrpos($string,".");
-        }
-        if ($pos>=$length*0.4) {
-            return substr($string,0,$pos+1)." ...";
-        }
-
-        $pos = strrpos($string," ");
-        if ($pos>=$length-4) {
-            $string = substr($string,0,$length-4);
-            $pos = strrpos($string," ");
-        }
-        if ($pos>=$length*0.4) {
-            return substr($string,0,$pos)." ...";
-        }
-
-        return substr($string,0,$length-4)." ...";
-
-    }
-
-
-    /**
-     * Creates a comment indicating the generator of this feed.
-     * The format of this comment seems to be recognized by
-     * Syndic8.com.
-     */
-    function _createGeneratorComment() {
-        return "<!-- generator=\"".FEEDCREATOR_VERSION."\" -->\n";
-    }
-
-
-    /**
-     * Creates a string containing all additional elements specified in
-     * $additionalElements.
-     * @param $elements      array   an associative array containing key => value pairs
-     * @param $indentString  string  a string that will be inserted before every generated line
-     * @return    string    the XML tags corresponding to $additionalElements
-     */
-    function _createAdditionalElements($elements, $indentString="") {
-        $ae = "";
-        if (is_array($elements)) {
-            foreach($elements AS $key => $value) {
-                $ae.= $indentString."<$key>$value</$key>\n";
-            }
-        }
-        return $ae;
-    }
-
-    /**
-     * Create elements for stylesheets
-     */
-    function _createStylesheetReferences() {
-        $xml = "";
-        if ($this->cssStyleSheet) $xml .= "<?xml-stylesheet href=\"".$this->cssStyleSheet."\" type=\"text/css\"?>\n";
-        if ($this->xslStyleSheet) $xml .= "<?xml-stylesheet href=\"".$this->xslStyleSheet."\" type=\"text/xsl\"?>\n";
-        return $xml;
-    }
-
-
-    /**
-     * Builds the feed's text.
-     * @abstract
-     * @return    string    the feed's complete text
-     */
-    function createFeed() {
-    }
-
-    /**
-     * Generate a filename for the feed cache file. The result will be $_SERVER["PHP_SELF"] with the extension changed to .xml.
-     * For example:
-     *
-     * echo $_SERVER["PHP_SELF"]."\n";
-     * echo FeedCreator::_generateFilename();
-     *
-     * would produce:
-     *
-     * /rss/latestnews.php
-     * latestnews.xml
-     *
-     * @return string the feed cache filename
-     * @since 1.4
-     * @access private
-     */
-    function _generateFilename() {
-        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
-        return substr($fileInfo["basename"],0,-(strlen($fileInfo["extension"])+1)).".xml";
-    }
-
-
-    /**
-     * @since 1.4
-     * @access private
-     *
-     * @param string $filename
-     */
-    function _redirect($filename) {
-        // attention, heavily-commented-out-area
-
-        // maybe use this in addition to file time checking
-        //Header("Expires: ".date("r",time()+$this->_timeout));
-
-        /* no caching at all, doesn't seem to work as good:
-        Header("Cache-Control: no-cache");
-        Header("Pragma: no-cache");
-        */
-
-        // HTTP redirect, some feed readers' simple HTTP implementations don't follow it
-        //Header("Location: ".$filename);
-
-        header("Content-Type: ".$this->contentType."; charset=".$this->encoding."; filename=".utf8_basename($filename));
-        header("Content-Disposition: inline; filename=".utf8_basename($filename));
-        readfile($filename);
-        die();
-    }
-
-    /**
-     * Turns on caching and checks if there is a recent version of this feed in the cache.
-     * If there is, an HTTP redirect header is sent.
-     * To effectively use caching, you should create the FeedCreator object and call this method
-     * before anything else, especially before you do the time consuming task to build the feed
-     * (web fetching, for example).
-     * @since 1.4
-     * @param $filename  string  optional    the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()).
-     * @param $timeout   int     optional    the timeout in seconds before a cached version is refreshed (defaults to 3600 = 1 hour)
-     */
-    function useCached($filename="", $timeout=3600) {
-        $this->_timeout = $timeout;
-        if ($filename=="") {
-            $filename = $this->_generateFilename();
-        }
-        if (file_exists($filename) AND (time()-filemtime($filename) < $timeout)) {
-            $this->_redirect($filename);
-        }
-    }
-
-
-    /**
-     * Saves this feed as a file on the local disk. After the file is saved, a redirect
-     * header may be sent to redirect the user to the newly created file.
-     * @since 1.4
-     *
-     * @param $filename         string  optional    the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()).
-     * @param $displayContents  boolean optional    send an HTTP redirect header or not. If true, the user will be automatically redirected to the created file.
-     */
-    function saveFeed($filename="", $displayContents=true) {
-        if ($filename=="") {
-            $filename = $this->_generateFilename();
-        }
-        $feedFile = fopen($filename, "w+");
-        if ($feedFile) {
-            fputs($feedFile,$this->createFeed());
-            fclose($feedFile);
-            if ($displayContents) {
-                $this->_redirect($filename);
-            }
-        } else {
-            echo "<br /><b>Error creating feed file, please check write permissions.</b><br />";
-        }
-    }
-
-    /**
-     * Outputs this feed directly to the browser - for on-the-fly feed generation
-     * @since 1.7.2-mod
-     *
-     * still missing: proper header output - currently you have to add it manually
-     */
-    function outputFeed() {
-        echo $this->createFeed();
-    }
-
-
-}
-
-
-/**
- * FeedDate is an internal class that stores a date for a feed or feed item.
- * Usually, you won't need to use this.
- */
-class FeedDate {
-    /** @var int */
-    var $unix;
-
-    /**
-     * Creates a new instance of FeedDate representing a given date.
-     * Accepts RFC 822, ISO 8601 date formats as well as unix time stamps.
-     * @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and time is used.
-     */
-    function __construct($dateString="") {
-        if ($dateString=="") $dateString = date("r");
-
-        if (is_numeric($dateString)) {
-            $this->unix = $dateString;
-            return;
-        }
-        if (preg_match("~(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s+)?(\\d{1,2})\\s+([a-zA-Z]{3})\\s+(\\d{4})\\s+(\\d{2}):(\\d{2}):(\\d{2})\\s+(.*)~",$dateString,$matches)) {
-            $months = Array("Jan"=>1,"Feb"=>2,"Mar"=>3,"Apr"=>4,"May"=>5,"Jun"=>6,"Jul"=>7,"Aug"=>8,"Sep"=>9,"Oct"=>10,"Nov"=>11,"Dec"=>12);
-            $this->unix = mktime($matches[4],$matches[5],$matches[6],$months[$matches[2]],$matches[1],$matches[3]);
-            if (substr($matches[7],0,1)=='+' OR substr($matches[7],0,1)=='-') {
-                $tzOffset = (((int) substr($matches[7],0,3) * 60) +
-                             (int) substr($matches[7],-2)) * 60;
-            } else {
-                if (strlen($matches[7])==1) {
-                    $oneHour = 3600;
-                    $ord = ord($matches[7]);
-                    if ($ord < ord("M")) {
-                        $tzOffset = (ord("A") - $ord - 1) * $oneHour;
-                    } elseif ($ord >= ord("M") AND $matches[7]!="Z") {
-                        $tzOffset = ($ord - ord("M")) * $oneHour;
-                    } elseif ($matches[7]=="Z") {
-                        $tzOffset = 0;
-                    }
-                }
-                switch ($matches[7]) {
-                    case "UT":
-                    case "GMT": $tzOffset = 0;
-                }
-            }
-            $this->unix += $tzOffset;
-            return;
-        }
-        if (preg_match("~(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(.*)~",$dateString,$matches)) {
-            $this->unix = mktime($matches[4],$matches[5],$matches[6],$matches[2],$matches[3],$matches[1]);
-            if (substr($matches[7],0,1)=='+' OR substr($matches[7],0,1)=='-') {
-                $tzOffset = (((int) substr($matches[7],0,3) * 60) +
-                             (int) substr($matches[7],-2)) * 60;
-            } else {
-                if ($matches[7]=="Z") {
-                    $tzOffset = 0;
-                }
-            }
-            $this->unix += $tzOffset;
-            return;
-        }
-        $this->unix = 0;
-    }
-
-    /**
-     * Gets the date stored in this FeedDate as an RFC 822 date.
-     *
-     * @return string a date in RFC 822 format
-     */
-    function rfc822() {
-        //return gmdate("r",$this->unix);
-        $date = gmdate("D, d M Y H:i:s", $this->unix);
-        if (TIME_ZONE!="") $date .= " ".str_replace(":","",TIME_ZONE);
-        return $date;
-    }
-
-    /**
-     * Gets the date stored in this FeedDate as an ISO 8601 date.
-     *
-     * @return string a date in ISO 8601 (RFC 3339) format
-     */
-    function iso8601() {
-        $date = gmdate("Y-m-d\TH:i:sO",$this->unix);
-        if (TIME_ZONE!="") $date = str_replace("+0000",TIME_ZONE,$date);
-        $date = substr($date,0,22) . ':' . substr($date,-2);
-        return $date;
-    }
-
-
-    /**
-     * Gets the date stored in this FeedDate as unix time stamp.
-     *
-     * @return int a date as a unix time stamp
-     */
-    function unix() {
-        return $this->unix;
-    }
-}
-
-
-/**
- * RSSCreator10 is a FeedCreator that implements RDF Site Summary (RSS) 1.0.
- *
- * @see http://www.purl.org/rss/1.0/
- * @since 1.3
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- */
-class RSSCreator10 extends FeedCreator {
-
-    /**
-     * Builds the RSS feed's text. The feed will be compliant to RDF Site Summary (RSS) 1.0.
-     * The feed will contain all items previously added in the same order.
-     * @return    string    the feed's complete text
-     */
-    function createFeed() {
-        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
-        $feed.= $this->_createGeneratorComment();
-        if ($this->cssStyleSheet=="") {
-            $this->cssStyleSheet = "http://www.w3.org/2000/08/w3c-synd/style.css";
-        }
-        $feed.= $this->_createStylesheetReferences();
-        $feed.= "<rdf:RDF\n";
-        $feed.= "    xmlns=\"http://purl.org/rss/1.0/\"\n";
-        $feed.= "    xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n";
-        $feed.= "    xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\"\n";
-        $feed.= "    xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n";
-        $feed.= "    <channel rdf:about=\"".$this->syndicationURL."\">\n";
-        $feed.= "        <title>".htmlspecialchars($this->title)."</title>\n";
-        $feed.= "        <description>".htmlspecialchars($this->description)."</description>\n";
-        $feed.= "        <link>".$this->link."</link>\n";
-        if ($this->image!=null) {
-            $feed.= "        <image rdf:resource=\"".$this->image->url."\" />\n";
-        }
-        $now = new FeedDate();
-        $feed.= "       <dc:date>".htmlspecialchars($now->iso8601())."</dc:date>\n";
-        $feed.= "        <items>\n";
-        $feed.= "            <rdf:Seq>\n";
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            $feed.= "                <rdf:li rdf:resource=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n";
-        }
-        $feed.= "            </rdf:Seq>\n";
-        $feed.= "        </items>\n";
-        $feed.= "    </channel>\n";
-        if ($this->image!=null) {
-            $feed.= "    <image rdf:about=\"".$this->image->url."\">\n";
-            $feed.= "        <title>".htmlspecialchars($this->image->title)."</title>\n";
-            $feed.= "        <link>".$this->image->link."</link>\n";
-            $feed.= "        <url>".$this->image->url."</url>\n";
-            $feed.= "    </image>\n";
-        }
-        $feed.= $this->_createAdditionalElements($this->additionalElements, "    ");
-
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            $feed.= "    <item rdf:about=\"".htmlspecialchars($this->items[$i]->link)."\">\n";
-            //$feed.= "        <dc:type>Posting</dc:type>\n";
-            $feed.= "        <dc:format>text/html</dc:format>\n";
-            if ($this->items[$i]->date!=null) {
-                $itemDate = new FeedDate($this->items[$i]->date);
-                $feed.= "        <dc:date>".htmlspecialchars($itemDate->iso8601())."</dc:date>\n";
-            }
-            if ($this->items[$i]->source!="") {
-                $feed.= "        <dc:source>".htmlspecialchars($this->items[$i]->source)."</dc:source>\n";
-            }
-            if ($this->items[$i]->author!="") {
-                $feed.= "        <dc:creator>".htmlspecialchars($this->items[$i]->author)."</dc:creator>\n";
-            }
-            $feed.= "        <title>".htmlspecialchars(strip_tags(strtr($this->items[$i]->title,"\n\r","  ")))."</title>\n";
-            $feed.= "        <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
-            $feed.= "        <description>".htmlspecialchars($this->items[$i]->description)."</description>\n";
-            $feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
-            $feed.= "    </item>\n";
-        }
-        $feed.= "</rdf:RDF>\n";
-        return $feed;
-    }
-}
-
-
-
-/**
- * RSSCreator091 is a FeedCreator that implements RSS 0.91 Spec, revision 3.
- *
- * @see http://my.netscape.com/publish/formats/rss-spec-0.91.html
- * @since 1.3
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- */
-class RSSCreator091 extends FeedCreator {
-
-    /**
-     * Stores this RSS feed's version number.
-     * @access private
-     */
-    var $RSSVersion;
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->_setRSSVersion("0.91");
-        $this->contentType = "application/rss+xml";
-    }
-
-    /**
-     * Sets this RSS feed's version number.
-     * @access private
-     *
-     * @param $version
-     */
-    function _setRSSVersion($version) {
-        $this->RSSVersion = $version;
-    }
-
-    /**
-     * Builds the RSS feed's text. The feed will be compliant to RDF Site Summary (RSS) 1.0.
-     * The feed will contain all items previously added in the same order.
-     * @return    string    the feed's complete text
-     */
-    function createFeed() {
-        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
-        $feed.= $this->_createGeneratorComment();
-        $feed.= $this->_createStylesheetReferences();
-        $feed.= "<rss version=\"".$this->RSSVersion."\">\n";
-        $feed.= "    <channel>\n";
-        $feed.= "        <title>".FeedCreator::iTrunc(htmlspecialchars($this->title),100)."</title>\n";
-        $this->descriptionTruncSize = 500;
-        $feed.= "        <description>".$this->getDescription()."</description>\n";
-        $feed.= "        <link>".$this->link."</link>\n";
-        $now = new FeedDate();
-        $feed.= "        <lastBuildDate>".htmlspecialchars($now->rfc822())."</lastBuildDate>\n";
-        $feed.= "        <generator>".FEEDCREATOR_VERSION."</generator>\n";
-
-        if ($this->image!=null) {
-            $feed.= "        <image>\n";
-            $feed.= "            <url>".$this->image->url."</url>\n";
-            $feed.= "            <title>".FeedCreator::iTrunc(htmlspecialchars($this->image->title),100)."</title>\n";
-            $feed.= "            <link>".$this->image->link."</link>\n";
-            if ($this->image->width!="") {
-                $feed.= "            <width>".$this->image->width."</width>\n";
-            }
-            if ($this->image->height!="") {
-                $feed.= "            <height>".$this->image->height."</height>\n";
-            }
-            if ($this->image->description!="") {
-                $feed.= "            <description>".$this->image->getDescription()."</description>\n";
-            }
-            $feed.= "        </image>\n";
-        }
-        if ($this->language!="") {
-            $feed.= "        <language>".$this->language."</language>\n";
-        }
-        if ($this->copyright!="") {
-            $feed.= "        <copyright>".FeedCreator::iTrunc(htmlspecialchars($this->copyright),100)."</copyright>\n";
-        }
-        if ($this->editor!="") {
-            $feed.= "        <managingEditor>".FeedCreator::iTrunc(htmlspecialchars($this->editor),100)."</managingEditor>\n";
-        }
-        if ($this->webmaster!="") {
-            $feed.= "        <webMaster>".FeedCreator::iTrunc(htmlspecialchars($this->webmaster),100)."</webMaster>\n";
-        }
-        if ($this->pubDate!="") {
-            $pubDate = new FeedDate($this->pubDate);
-            $feed.= "        <pubDate>".htmlspecialchars($pubDate->rfc822())."</pubDate>\n";
-        }
-        if ($this->category!="") {
-            // Changed for DokuWiki: multiple categories are possible
-            if(is_array($this->category)) foreach($this->category as $cat){
-                $feed.= "        <category>".htmlspecialchars($cat)."</category>\n";
-            }else{
-                $feed.= "        <category>".htmlspecialchars($this->category)."</category>\n";
-            }
-        }
-        if ($this->docs!="") {
-            $feed.= "        <docs>".FeedCreator::iTrunc(htmlspecialchars($this->docs),500)."</docs>\n";
-        }
-        if ($this->ttl!="") {
-            $feed.= "        <ttl>".htmlspecialchars($this->ttl)."</ttl>\n";
-        }
-        if ($this->rating!="") {
-            $feed.= "        <rating>".FeedCreator::iTrunc(htmlspecialchars($this->rating),500)."</rating>\n";
-        }
-        if ($this->skipHours!="") {
-            $feed.= "        <skipHours>".htmlspecialchars($this->skipHours)."</skipHours>\n";
-        }
-        if ($this->skipDays!="") {
-            $feed.= "        <skipDays>".htmlspecialchars($this->skipDays)."</skipDays>\n";
-        }
-        $feed.= $this->_createAdditionalElements($this->additionalElements, "    ");
-
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            $feed.= "        <item>\n";
-            $feed.= "            <title>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."</title>\n";
-            $feed.= "            <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
-            $feed.= "            <description>".$this->items[$i]->getDescription()."</description>\n";
-
-            if ($this->items[$i]->author!="") {
-                $feed.= "            <author>".htmlspecialchars($this->items[$i]->author)."</author>\n";
-            }
-            /*
-            // on hold
-            if ($this->items[$i]->source!="") {
-                    $feed.= "            <source>".htmlspecialchars($this->items[$i]->source)."</source>\n";
-            }
-            */
-            if ($this->items[$i]->category!="") {
-                // Changed for DokuWiki: multiple categories are possible
-                if(is_array($this->items[$i]->category)) foreach($this->items[$i]->category as $cat){
-                    $feed.= "        <category>".htmlspecialchars($cat)."</category>\n";
-                }else{
-                    $feed.= "        <category>".htmlspecialchars($this->items[$i]->category)."</category>\n";
-                }
-            }
-
-            if ($this->items[$i]->comments!="") {
-                $feed.= "            <comments>".htmlspecialchars($this->items[$i]->comments)."</comments>\n";
-            }
-            if ($this->items[$i]->date!="") {
-                $itemDate = new FeedDate($this->items[$i]->date);
-                $feed.= "            <pubDate>".htmlspecialchars($itemDate->rfc822())."</pubDate>\n";
-            }
-            if ($this->items[$i]->guid!="") {
-                $feed.= "            <guid>".htmlspecialchars($this->items[$i]->guid)."</guid>\n";
-            }
-            $feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
-
-            if ($this->RSSVersion == "2.0" && $this->items[$i]->enclosure != null) {
-                 $feed.= "            <enclosure url=\"";
-                 $feed.= $this->items[$i]->enclosure->url;
-                 $feed.= "\" length=\"";
-                 $feed.= $this->items[$i]->enclosure->length;
-                 $feed.= "\" type=\"";
-                 $feed.= $this->items[$i]->enclosure->type;
-                 $feed.= "\"/>\n";
-            }
-
-            $feed.= "        </item>\n";
-        }
-
-        $feed.= "    </channel>\n";
-        $feed.= "</rss>\n";
-        return $feed;
-    }
-}
-
-
-
-/**
- * RSSCreator20 is a FeedCreator that implements RDF Site Summary (RSS) 2.0.
- *
- * @see http://backend.userland.com/rss
- * @since 1.3
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- */
-class RSSCreator20 extends RSSCreator091 {
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        parent::_setRSSVersion("2.0");
-    }
-
-}
-
-
-/**
- * PIECreator01 is a FeedCreator that implements the emerging PIE specification,
- * as in http://intertwingly.net/wiki/pie/Syntax.
- *
- * @deprecated
- * @since 1.3
- * @author Scott Reynen <scott@randomchaos.com> and Kai Blankenhorn <kaib@bitfolge.de>
- */
-class PIECreator01 extends FeedCreator {
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->encoding = "utf-8";
-    }
-
-    /**
-     * Build content
-     * @return string
-     */
-    function createFeed() {
-        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
-        $feed.= $this->_createStylesheetReferences();
-        $feed.= "<feed version=\"0.1\" xmlns=\"http://example.com/newformat#\">\n";
-        $feed.= "    <title>".FeedCreator::iTrunc(htmlspecialchars($this->title),100)."</title>\n";
-        $this->descriptionTruncSize = 500;
-        $feed.= "    <subtitle>".$this->getDescription()."</subtitle>\n";
-        $feed.= "    <link>".$this->link."</link>\n";
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            $feed.= "    <entry>\n";
-            $feed.= "        <title>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."</title>\n";
-            $feed.= "        <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
-            $itemDate = new FeedDate($this->items[$i]->date);
-            $feed.= "        <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
-            $feed.= "        <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
-            $feed.= "        <modified>".htmlspecialchars($itemDate->iso8601())."</modified>\n";
-            $feed.= "        <id>".htmlspecialchars($this->items[$i]->guid)."</id>\n";
-            if ($this->items[$i]->author!="") {
-                $feed.= "        <author>\n";
-                $feed.= "            <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
-                if ($this->items[$i]->authorEmail!="") {
-                    $feed.= "            <email>".$this->items[$i]->authorEmail."</email>\n";
-                }
-                $feed.="        </author>\n";
-            }
-            $feed.= "        <content type=\"text/html\" xml:lang=\"en-us\">\n";
-            $feed.= "            <div xmlns=\"http://www.w3.org/1999/xhtml\">".$this->items[$i]->getDescription()."</div>\n";
-            $feed.= "        </content>\n";
-            $feed.= "    </entry>\n";
-        }
-        $feed.= "</feed>\n";
-        return $feed;
-    }
-}
-
-/**
- * AtomCreator10 is a FeedCreator that implements the atom specification,
- * as in http://www.atomenabled.org/developers/syndication/atom-format-spec.php
- * Please note that just by using AtomCreator10 you won't automatically
- * produce valid atom files. For example, you have to specify either an editor
- * for the feed or an author for every single feed item.
- *
- * Some elements have not been implemented yet. These are (incomplete list):
- * author URL, item author's email and URL, item contents, alternate links,
- * other link content types than text/html. Some of them may be created with
- * AtomCreator10::additionalElements.
- *
- * @see FeedCreator#additionalElements
- * @since 1.7.2-mod (modified)
- * @author Mohammad Hafiz Ismail (mypapit@gmail.com)
- */
-class AtomCreator10 extends FeedCreator {
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->contentType = "application/atom+xml";
-        $this->encoding = "utf-8";
-    }
-
-    /**
-     * Build content
-     * @return string
-     */
-    function createFeed() {
-        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
-        $feed.= $this->_createGeneratorComment();
-        $feed.= $this->_createStylesheetReferences();
-        $feed.= "<feed xmlns=\"http://www.w3.org/2005/Atom\"";
-        if ($this->language!="") {
-            $feed.= " xml:lang=\"".$this->language."\"";
-        }
-        $feed.= ">\n";
-        $feed.= "    <title>".htmlspecialchars($this->title)."</title>\n";
-        $feed.= "    <subtitle>".htmlspecialchars($this->description)."</subtitle>\n";
-        $feed.= "    <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->link)."\"/>\n";
-        $feed.= "    <id>".htmlspecialchars($this->link)."</id>\n";
-        $now = new FeedDate();
-        $feed.= "    <updated>".htmlspecialchars($now->iso8601())."</updated>\n";
-        if ($this->editor!="") {
-            $feed.= "    <author>\n";
-            $feed.= "        <name>".$this->editor."</name>\n";
-            if ($this->editorEmail!="") {
-                $feed.= "        <email>".$this->editorEmail."</email>\n";
-            }
-            $feed.= "    </author>\n";
-        }
-        $feed.= "    <generator>".FEEDCREATOR_VERSION."</generator>\n";
-        $feed.= "<link rel=\"self\" type=\"application/atom+xml\" href=\"". $this->syndicationURL . "\" />\n";
-        $feed.= $this->_createAdditionalElements($this->additionalElements, "    ");
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            $feed.= "    <entry>\n";
-            $feed.= "        <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n";
-            $feed.= "        <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n";
-            if ($this->items[$i]->date=="") {
-                $this->items[$i]->date = time();
-            }
-            $itemDate = new FeedDate($this->items[$i]->date);
-            $feed.= "        <published>".htmlspecialchars($itemDate->iso8601())."</published>\n";
-            $feed.= "        <updated>".htmlspecialchars($itemDate->iso8601())."</updated>\n";
-            $feed.= "        <id>".htmlspecialchars($this->items[$i]->link)."</id>\n";
-            $feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
-            if ($this->items[$i]->author!="") {
-                $feed.= "        <author>\n";
-                $feed.= "            <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
-                $feed.= "        </author>\n";
-            }
-            if ($this->items[$i]->description!="") {
-                $feed.= "        <summary>".htmlspecialchars($this->items[$i]->description)."</summary>\n";
-            }
-            if ($this->items[$i]->enclosure != null) {
-                $feed.="        <link rel=\"enclosure\" href=\"". $this->items[$i]->enclosure->url ."\" type=\"". $this->items[$i]->enclosure->type."\"  length=\"". $this->items[$i]->enclosure->length . "\" />\n";
-            }
-            $feed.= "    </entry>\n";
-        }
-        $feed.= "</feed>\n";
-        return $feed;
-    }
-
-
-}
-
-
-/**
- * AtomCreator03 is a FeedCreator that implements the atom specification,
- * as in http://www.intertwingly.net/wiki/pie/FrontPage.
- * Please note that just by using AtomCreator03 you won't automatically
- * produce valid atom files. For example, you have to specify either an editor
- * for the feed or an author for every single feed item.
- *
- * Some elements have not been implemented yet. These are (incomplete list):
- * author URL, item author's email and URL, item contents, alternate links,
- * other link content types than text/html. Some of them may be created with
- * AtomCreator03::additionalElements.
- *
- * @see FeedCreator#additionalElements
- * @since 1.6
- * @author Kai Blankenhorn <kaib@bitfolge.de>, Scott Reynen <scott@randomchaos.com>
- */
-class AtomCreator03 extends FeedCreator {
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->contentType = "application/atom+xml";
-        $this->encoding = "utf-8";
-    }
-
-    /**
-     * Build content
-     * @return string
-     */
-    function createFeed() {
-        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
-        $feed.= $this->_createGeneratorComment();
-        $feed.= $this->_createStylesheetReferences();
-        $feed.= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\"";
-        if ($this->language!="") {
-            $feed.= " xml:lang=\"".$this->language."\"";
-        }
-        $feed.= ">\n";
-        $feed.= "    <title>".htmlspecialchars($this->title)."</title>\n";
-        $feed.= "    <tagline>".htmlspecialchars($this->description)."</tagline>\n";
-        $feed.= "    <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->link)."\"/>\n";
-        $feed.= "    <id>".htmlspecialchars($this->link)."</id>\n";
-        $now = new FeedDate();
-        $feed.= "    <modified>".htmlspecialchars($now->iso8601())."</modified>\n";
-        if ($this->editor!="") {
-            $feed.= "    <author>\n";
-            $feed.= "        <name>".$this->editor."</name>\n";
-            if ($this->editorEmail!="") {
-                $feed.= "        <email>".$this->editorEmail."</email>\n";
-            }
-            $feed.= "    </author>\n";
-        }
-        $feed.= "    <generator>".FEEDCREATOR_VERSION."</generator>\n";
-        $feed.= $this->_createAdditionalElements($this->additionalElements, "    ");
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            $feed.= "    <entry>\n";
-            $feed.= "        <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n";
-            $feed.= "        <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n";
-            if ($this->items[$i]->date=="") {
-                $this->items[$i]->date = time();
-            }
-            $itemDate = new FeedDate($this->items[$i]->date);
-            $feed.= "        <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
-            $feed.= "        <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
-            $feed.= "        <modified>".htmlspecialchars($itemDate->iso8601())."</modified>\n";
-            $feed.= "        <id>".htmlspecialchars($this->items[$i]->link)."</id>\n";
-            $feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
-            if ($this->items[$i]->author!="") {
-                $feed.= "        <author>\n";
-                $feed.= "            <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
-                $feed.= "        </author>\n";
-            }
-            if ($this->items[$i]->description!="") {
-                $feed.= "        <summary>".htmlspecialchars($this->items[$i]->description)."</summary>\n";
-            }
-            $feed.= "    </entry>\n";
-        }
-        $feed.= "</feed>\n";
-        return $feed;
-    }
-}
-
-
-/**
- * MBOXCreator is a FeedCreator that implements the mbox format
- * as described in http://www.qmail.org/man/man5/mbox.html
- *
- * @since 1.3
- * @author Kai Blankenhorn <kaib@bitfolge.de>
- */
-class MBOXCreator extends FeedCreator {
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->contentType = "text/plain";
-        $this->encoding = "utf-8";
-    }
-
-    /**
-     * @param string $input
-     * @param int $line_max
-     * @return string
-     */
-    function qp_enc($input = "", $line_max = 76) {
-        $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
-        $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
-        $eol = "\r\n";
-        $escape = "=";
-        $output = "";
-        while( list(, $line) = each($lines) ) {
-            //$line = rtrim($line); // remove trailing white space -> no =20\r\n necessary
-            $linlen = strlen($line);
-            $newline = "";
-            for($i = 0; $i < $linlen; $i++) {
-                $c = substr($line, $i, 1);
-                $dec = ord($c);
-                if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only
-                    $c = "=20";
-                } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required
-                    $h2 = floor($dec/16);
-                    $h1 = floor($dec%16);
-                    $c = $escape.$hex["$h2"].$hex["$h1"];
-                }
-                if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted
-                    $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay
-                    $newline = "";
-                }
-                $newline .= $c;
-            } // end of for
-            $output .= $newline.$eol;
-        }
-        return trim($output);
-    }
-
-
-    /**
-     * Builds the MBOX contents.
-     * @return    string    the feed's complete text
-     */
-    function createFeed() {
-        $icnt = count($this->items);
-        $feed = "";
-        for ($i=0; $i<$icnt; $i++) {
-            if ($this->items[$i]->author!="") {
-                $from = $this->items[$i]->author;
-            } else {
-                $from = $this->title;
-            }
-            $itemDate = new FeedDate($this->items[$i]->date);
-            $feed.= "From ".strtr(MBOXCreator::qp_enc($from)," ","_")." ".date("D M d H:i:s Y",$itemDate->unix())."\n";
-            $feed.= "Content-Type: text/plain;\n";
-            $feed.= "   charset=\"".$this->encoding."\"\n";
-            $feed.= "Content-Transfer-Encoding: quoted-printable\n";
-            $feed.= "Content-Type: text/plain\n";
-            $feed.= "From: \"".MBOXCreator::qp_enc($from)."\"\n";
-            $feed.= "Date: ".$itemDate->rfc822()."\n";
-            $feed.= "Subject: ".MBOXCreator::qp_enc(FeedCreator::iTrunc($this->items[$i]->title,100))."\n";
-            $feed.= "\n";
-            $body = chunk_split(MBOXCreator::qp_enc($this->items[$i]->description));
-            $feed.= preg_replace("~\nFrom ([^\n]*)(\n?)~","\n>From $1$2\n",$body);
-            $feed.= "\n";
-            $feed.= "\n";
-        }
-        return $feed;
-    }
-
-    /**
-     * Generate a filename for the feed cache file. Overridden from FeedCreator to prevent XML data types.
-     * @return string the feed cache filename
-     * @since 1.4
-     * @access private
-     */
-    function _generateFilename() {
-        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
-        return substr($fileInfo["basename"],0,-(strlen($fileInfo["extension"])+1)).".mbox";
-    }
-}
-
-
-/**
- * OPMLCreator is a FeedCreator that implements OPML 1.0.
- *
- * @see http://opml.scripting.com/spec
- * @author Dirk Clemens, Kai Blankenhorn
- * @since 1.5
- */
-class OPMLCreator extends FeedCreator {
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->encoding = "utf-8";
-    }
-
-    /**
-     * Build content
-     * @return string
-     */
-    function createFeed() {
-        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
-        $feed.= $this->_createGeneratorComment();
-        $feed.= $this->_createStylesheetReferences();
-        $feed.= "<opml xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n";
-        $feed.= "    <head>\n";
-        $feed.= "        <title>".htmlspecialchars($this->title)."</title>\n";
-        if ($this->pubDate!="") {
-            $date = new FeedDate($this->pubDate);
-            $feed.= "         <dateCreated>".$date->rfc822()."</dateCreated>\n";
-        }
-        if ($this->lastBuildDate!="") {
-            $date = new FeedDate($this->lastBuildDate);
-            $feed.= "         <dateModified>".$date->rfc822()."</dateModified>\n";
-        }
-        if ($this->editor!="") {
-            $feed.= "         <ownerName>".$this->editor."</ownerName>\n";
-        }
-        if ($this->editorEmail!="") {
-            $feed.= "         <ownerEmail>".$this->editorEmail."</ownerEmail>\n";
-        }
-        $feed.= "    </head>\n";
-        $feed.= "    <body>\n";
-        $icnt = count($this->items);
-        for ($i=0;$i<$icnt; $i++) {
-            $feed.= "    <outline type=\"rss\" ";
-            $title = htmlspecialchars(strip_tags(strtr($this->items[$i]->title,"\n\r","  ")));
-            $feed.= " title=\"".$title."\"";
-            $feed.= " text=\"".$title."\"";
-            //$feed.= " description=\"".htmlspecialchars($this->items[$i]->description)."\"";
-            $feed.= " url=\"".htmlspecialchars($this->items[$i]->link)."\"";
-            $feed.= "/>\n";
-        }
-        $feed.= "    </body>\n";
-        $feed.= "</opml>\n";
-        return $feed;
-    }
-}
-
-
-
-/**
- * HTMLCreator is a FeedCreator that writes an HTML feed file to a specific
- * location, overriding the createFeed method of the parent FeedCreator.
- * The HTML produced can be included over http by scripting languages, or serve
- * as the source for an IFrame.
- * All output by this class is embedded in <div></div> tags to enable formatting
- * using CSS.
- *
- * @author Pascal Van Hecke
- * @since 1.7
- */
-class HTMLCreator extends FeedCreator {
-
-    var $contentType = "text/html";
-
-    /**
-     * Contains HTML to be output at the start of the feed's html representation.
-     */
-    var $header;
-
-    /**
-     * Contains HTML to be output at the end of the feed's html representation.
-     */
-    var $footer ;
-
-    /**
-     * Contains HTML to be output between entries. A separator is only used in
-     * case of multiple entries.
-     */
-    var $separator;
-
-    /**
-     * Used to prefix the stylenames to make sure they are unique
-     * and do not clash with stylenames on the users' page.
-     */
-    var $stylePrefix;
-
-    /**
-     * Determines whether the links open in a new window or not.
-     */
-    var $openInNewWindow = true;
-
-    var $imageAlign ="right";
-
-    /**
-     * In case of very simple output you may want to get rid of the style tags,
-     * hence this variable.  There's no equivalent on item level, but of course you can
-     * add strings to it while iterating over the items ($this->stylelessOutput .= ...)
-     * and when it is non-empty, ONLY the styleless output is printed, the rest is ignored
-     * in the function createFeed().
-     */
-    var $stylelessOutput ="";
-
-    /**
-     * Writes the HTML.
-     * @return    string    the scripts's complete text
-     */
-    function createFeed() {
-        // if there is styleless output, use the content of this variable and ignore the rest
-        if ($this->stylelessOutput!="") {
-            return $this->stylelessOutput;
-        }
-
-        //if no stylePrefix is set, generate it yourself depending on the script name
-        if ($this->stylePrefix=="") {
-            $this->stylePrefix = str_replace(".", "_", $this->_generateFilename())."_";
-        }
-
-        //set an openInNewWindow_token_to be inserted or not
-        $targetInsert = "";
-        if ($this->openInNewWindow) {
-            $targetInsert = " target='_blank'";
-        }
-
-        // use this array to put the lines in and implode later with "document.write" javascript
-        $feedArray = array();
-        if ($this->image!=null) {
-            $imageStr = "<a href='".$this->image->link."'".$targetInsert.">".
-                            "<img src='".$this->image->url."' border='0' alt='".
-                            FeedCreator::iTrunc(htmlspecialchars($this->image->title),100).
-                            "' align='".$this->imageAlign."' ";
-            if ($this->image->width) {
-                $imageStr .=" width='".$this->image->width. "' ";
-            }
-            if ($this->image->height) {
-                $imageStr .=" height='".$this->image->height."' ";
-            }
-            $imageStr .="/></a>";
-            $feedArray[] = $imageStr;
-        }
-
-        if ($this->title) {
-            $feedArray[] = "<div class='".$this->stylePrefix."title'><a href='".$this->link."' ".$targetInsert." class='".$this->stylePrefix."title'>".
-                FeedCreator::iTrunc(htmlspecialchars($this->title),100)."</a></div>";
-        }
-        if ($this->getDescription()) {
-            $feedArray[] = "<div class='".$this->stylePrefix."description'>".
-                str_replace("]]>", "", str_replace("<![CDATA[", "", $this->getDescription())).
-                "</div>";
-        }
-
-        if ($this->header) {
-            $feedArray[] = "<div class='".$this->stylePrefix."header'>".$this->header."</div>";
-        }
-
-        $icnt = count($this->items);
-        for ($i=0; $i<$icnt; $i++) {
-            if ($this->separator and $i > 0) {
-                $feedArray[] = "<div class='".$this->stylePrefix."separator'>".$this->separator."</div>";
-            }
-
-            if ($this->items[$i]->title) {
-                if ($this->items[$i]->link) {
-                    $feedArray[] =
-                        "<div class='".$this->stylePrefix."item_title'><a href='".$this->items[$i]->link."' class='".$this->stylePrefix.
-                        "item_title'".$targetInsert.">".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100).
-                        "</a></div>";
-                } else {
-                    $feedArray[] =
-                        "<div class='".$this->stylePrefix."item_title'>".
-                        FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100).
-                        "</div>";
-                }
-            }
-            if ($this->items[$i]->getDescription()) {
-                $feedArray[] =
-                "<div class='".$this->stylePrefix."item_description'>".
-                    str_replace("]]>", "", str_replace("<![CDATA[", "", $this->items[$i]->getDescription())).
-                    "</div>";
-            }
-        }
-        if ($this->footer) {
-            $feedArray[] = "<div class='".$this->stylePrefix."footer'>".$this->footer."</div>";
-        }
-
-        $feed= "".join($feedArray, "\r\n");
-        return $feed;
-    }
-
-    /**
-     * Overrrides parent to produce .html extensions
-     *
-     * @return string the feed cache filename
-     * @since 1.4
-     * @access private
-     */
-    function _generateFilename() {
-        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
-        return substr($fileInfo["basename"],0,-(strlen($fileInfo["extension"])+1)).".html";
-    }
-}
-
-
-/**
- * JSCreator is a class that writes a js file to a specific
- * location, overriding the createFeed method of the parent HTMLCreator.
- *
- * @author Pascal Van Hecke
- */
-class JSCreator extends HTMLCreator {
-    var $contentType = "text/javascript";
-
-    /**
-     * writes the javascript
-     * @return    string    the scripts's complete text
-     */
-    function createFeed() {
-        $feed = parent::createFeed();
-        $feedArray = explode("\n",$feed);
-
-        $jsFeed = "";
-        foreach ($feedArray as $value) {
-            $jsFeed .= "document.write('".trim(addslashes($value))."');\n";
-        }
-        return $jsFeed;
-    }
-
-    /**
-     * Overrrides parent to produce .js extensions
-     *
-     * @return string the feed cache filename
-     * @since 1.4
-     * @access private
-     */
-    function _generateFilename() {
-        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
-        return substr($fileInfo["basename"],0,-(strlen($fileInfo["extension"])+1)).".js";
-    }
-
-}
-
-/**
- * This class allows to override the hardcoded charset
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class DokuWikiFeedCreator extends UniversalFeedCreator{
-
-    /**
-     * Build content
-     *
-     * @param string $format
-     * @param string $encoding
-     * @return string
-     */
-    function createFeed($format = "RSS0.91",$encoding='iso-8859-15') {
-        $this->_setFormat($format);
-        $this->_feed->encoding = $encoding;
-        return $this->_feed->createFeed();
-    }
-}
-
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/inc/form.php b/inc/form.php
index 91a171555c85aa3b686a7042ad201dcdd8774878..caf12c019b2fa5028d5914f20b384ba10e02487a 100644
--- a/inc/form.php
+++ b/inc/form.php
@@ -28,17 +28,17 @@ if(!defined('DOKU_INC')) die('meh.');
 class Doku_Form {
 
     // Form id attribute
-    var $params = array();
+    protected $params = array();
 
     // Draw a border around form fields.
     // Adds <fieldset></fieldset> around the elements
-    var $_infieldset = false;
+    protected $_infieldset = false;
 
     // Hidden form fields.
-    var $_hidden = array();
+    protected $_hidden = array();
 
     // Array of pseudo-tags
-    var $_content = array();
+    protected $_content = array();
 
     /**
      * Constructor
@@ -441,6 +441,16 @@ function form_makeField($type, $name, $value='', $label=null, $id='', $class='',
  *
  * @see     form_makeField
  * @author  Tom N Harris <tnharris@whoopdedo.org>
+ *
+ * @param string $type
+ * @param string $name
+ * @param string $value
+ * @param null|string $label
+ * @param string $id
+ * @param string $class
+ * @param array $attrs
+ *
+ * @return array
  */
 function form_makeFieldRight($type, $name, $value='', $label=null, $id='', $class='', $attrs=array()) {
     if (is_null($label)) $label = $name;
@@ -456,6 +466,15 @@ function form_makeFieldRight($type, $name, $value='', $label=null, $id='', $clas
  *
  * @see     form_makeField
  * @author  Tom N Harris <tnharris@whoopdedo.org>
+ *
+ * @param string $name
+ * @param string $value
+ * @param null|string $label
+ * @param string $id
+ * @param string $class
+ * @param array $attrs
+ *
+ * @return array
  */
 function form_makeTextField($name, $value='', $label=null, $id='', $class='', $attrs=array()) {
     if (is_null($label)) $label = $name;
@@ -472,6 +491,14 @@ function form_makeTextField($name, $value='', $label=null, $id='', $class='', $a
  *
  * @see     form_makeField
  * @author  Tom N Harris <tnharris@whoopdedo.org>
+ *
+ * @param string $name
+ * @param null|string $label
+ * @param string $id
+ * @param string $class
+ * @param array $attrs
+ *
+ * @return array
  */
 function form_makePasswordField($name, $label=null, $id='', $class='', $attrs=array()) {
     if (is_null($label)) $label = $name;
@@ -487,6 +514,14 @@ function form_makePasswordField($name, $label=null, $id='', $class='', $attrs=ar
  *
  * @see     form_makeField
  * @author  Michael Klier <chi@chimeric.de>
+ *
+ * @param string $name
+ * @param null|string $label
+ * @param string $id
+ * @param string $class
+ * @param array $attrs
+ *
+ * @return array
  */
 function form_makeFileField($name, $label=null, $id='', $class='', $attrs=array()) {
     if (is_null($label)) $label = $name;
@@ -504,6 +539,15 @@ function form_makeFileField($name, $label=null, $id='', $class='', $attrs=array(
  *
  * @see     form_makeFieldRight
  * @author  Tom N Harris <tnharris@whoopdedo.org>
+ *
+ * @param string $name
+ * @param string $value
+ * @param null|string $label
+ * @param string $id
+ * @param string $class
+ * @param array $attrs
+ *
+ * @return array
  */
 function form_makeCheckboxField($name, $value='1', $label=null, $id='', $class='', $attrs=array()) {
     if (is_null($label)) $label = $name;
@@ -520,6 +564,15 @@ function form_makeCheckboxField($name, $value='1', $label=null, $id='', $class='
  *
  * @see     form_makeFieldRight
  * @author  Tom N Harris <tnharris@whoopdedo.org>
+ *
+ * @param string $name
+ * @param string $value
+ * @param null|string $label
+ * @param string $id
+ * @param string $class
+ * @param array $attrs
+ *
+ * @return array
  */
 function form_makeRadioField($name, $value='1', $label=null, $id='', $class='', $attrs=array()) {
     if (is_null($label)) $label = $name;
diff --git a/inc/html.php b/inc/html.php
index 70ba4dcfe55fe55364b93c7c783cee8b11058a61..2897d01c15e3f07bb99df75f3a279b57e773b90b 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -208,8 +208,7 @@ function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label
     $ret .= '<form class="button btn_'.$name.'" method="'.$method.'" action="'.$script.'"><div class="no">';
 
     if(is_array($params)){
-        reset($params);
-        while (list($key, $val) = each($params)) {
+        foreach($params as $key => $val) {
             $ret .= '<input type="hidden" name="'.$key.'" ';
             $ret .= 'value="'.htmlspecialchars($val).'" />';
         }
diff --git a/inc/indexer.php b/inc/indexer.php
index a86bfc656b6484d1101bef4807985a85ccd4be22..fac7a3f683bf6e24d5db6d695f9d373642798489 100644
--- a/inc/indexer.php
+++ b/inc/indexer.php
@@ -1474,6 +1474,10 @@ function idx_lookup(&$words) {
 /**
  * Split a string into tokens
  *
+ * @param string $string
+ * @param bool $wc
+ *
+ * @return array
  */
 function idx_tokenizer($string, $wc=false) {
     $Indexer = idx_get_indexer();
diff --git a/inc/infoutils.php b/inc/infoutils.php
index a124e2c952b9f9bb0179a077ae3b4e40a6f98ede..933eb7cceec02c8a79d7840cd3c9c3d583a24b0b 100644
--- a/inc/infoutils.php
+++ b/inc/infoutils.php
@@ -114,13 +114,13 @@ function check(){
     if ($INFO['isadmin'] || $INFO['ismanager']){
         msg('DokuWiki version: '.getVersion(),1);
 
-        if(version_compare(phpversion(),'5.3.3','<')){
-            msg('Your PHP version is too old ('.phpversion().' vs. 5.3.3+ needed)',-1);
+        if(version_compare(phpversion(),'5.6.0','<')){
+            msg('Your PHP version is too old ('.phpversion().' vs. 5.6.0+ needed)',-1);
         }else{
             msg('PHP version '.phpversion(),1);
         }
     } else {
-        if(version_compare(phpversion(),'5.3.3','<')){
+        if(version_compare(phpversion(),'5.6.0','<')){
             msg('Your PHP version is too old',-1);
         }
     }
@@ -383,6 +383,9 @@ function info_msg_allowed($msg){
  * little function to print the content of a var
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param string $msg
+ * @param bool $hidden
  */
 function dbg($msg,$hidden=false){
     if($hidden){
@@ -400,6 +403,9 @@ function dbg($msg,$hidden=false){
  * Print info to a log file
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param string $msg
+ * @param string $header
  */
 function dbglog($msg,$header=''){
     global $conf;
@@ -502,6 +508,8 @@ function dbg_backtrace(){
  * debug output
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
  */
 function debug_guard(&$data){
     foreach($data as $key => $value){
diff --git a/inc/init.php b/inc/init.php
index b2319fe95c135c77b3922c789aaa6c95b9053119..4e4cd6450f6f158ac633aa060bf8242a59b3a9ca 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -5,6 +5,10 @@
 
 /**
  * timing Dokuwiki execution
+ *
+ * @param integer $start
+ *
+ * @return mixed
  */
 function delta_time($start=0) {
     return microtime(true)-((float)$start);
@@ -32,11 +36,7 @@ if (!defined('DOKU_E_LEVEL') && file_exists(DOKU_CONF.'report_e_all')) {
     define('DOKU_E_LEVEL', E_ALL);
 }
 if (!defined('DOKU_E_LEVEL')) {
-    if(defined('E_DEPRECATED')){ // since php 5.3, since php 5.4 E_STRICT is part of E_ALL
-        error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
-    }else{
-        error_reporting(E_ALL ^ E_NOTICE);
-    }
+    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
 } else {
     error_reporting(DOKU_E_LEVEL);
 }
@@ -149,9 +149,8 @@ if(!headers_sent() && !defined('NOSESSION')) {
     }
     if(!defined('DOKU_SESSION_DOMAIN'))   define ('DOKU_SESSION_DOMAIN', '');
 
-    session_name(DOKU_SESSION_NAME);
-    session_set_cookie_params(DOKU_SESSION_LIFETIME, DOKU_SESSION_PATH, DOKU_SESSION_DOMAIN, ($conf['securecookie'] && is_ssl()), true);
-    session_start();
+    // start the session
+    init_session();
 
     // load left over messages
     if(isset($_SESSION[DOKU_COOKIE]['msg'])) {
@@ -160,18 +159,6 @@ if(!headers_sent() && !defined('NOSESSION')) {
     }
 }
 
-// kill magic quotes
-if (get_magic_quotes_gpc() && !defined('MAGIC_QUOTES_STRIPPED')) {
-    if (!empty($_GET))    remove_magic_quotes($_GET);
-    if (!empty($_POST))   remove_magic_quotes($_POST);
-    if (!empty($_COOKIE)) remove_magic_quotes($_COOKIE);
-    if (!empty($_REQUEST)) remove_magic_quotes($_REQUEST);
-    @ini_set('magic_quotes_gpc', 0);
-    define('MAGIC_QUOTES_STRIPPED',1);
-}
-if(function_exists('set_magic_quotes_runtime')) @set_magic_quotes_runtime(0);
-@ini_set('magic_quotes_sybase',0);
-
 // don't let cookies ever interfere with request vars
 $_REQUEST = array_merge($_GET,$_POST);
 
@@ -227,6 +214,28 @@ if (!defined('NOSESSION')) {
 // setup mail system
 mail_setup();
 
+/**
+ * Initializes the session
+ *
+ * Makes sure the passed session cookie is valid, invalid ones are ignored an a new session ID is issued
+ *
+ * @link http://stackoverflow.com/a/33024310/172068
+ * @link http://php.net/manual/en/session.configuration.php#ini.session.sid-length
+ */
+function init_session() {
+    global $conf;
+    session_name(DOKU_SESSION_NAME);
+    session_set_cookie_params(DOKU_SESSION_LIFETIME, DOKU_SESSION_PATH, DOKU_SESSION_DOMAIN, ($conf['securecookie'] && is_ssl()), true);
+
+    // make sure the session cookie contains a valid session ID
+    if(isset($_COOKIE[DOKU_SESSION_NAME]) && !preg_match('/^[-,a-zA-Z0-9]{22,256}$/', $_COOKIE[DOKU_SESSION_NAME])) {
+        unset($_COOKIE[DOKU_SESSION_NAME]);
+    }
+
+    session_start();
+}
+
+
 /**
  * Checks paths from config file
  */
@@ -320,6 +329,10 @@ function init_files(){
  * Check for accessibility on directories as well.
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param string $path
+ *
+ * @return bool|string
  */
 function init_path($path){
     // check existence
@@ -375,30 +388,6 @@ function init_creationmodes(){
     if($auto_dmode != $conf['dmode']) $conf['dperm'] = $conf['dmode'];
 }
 
-/**
- * remove magic quotes recursivly
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function remove_magic_quotes(&$array) {
-    foreach (array_keys($array) as $key) {
-        // handle magic quotes in keynames (breaks order)
-        $sk = stripslashes($key);
-        if($sk != $key){
-            $array[$sk] = $array[$key];
-            unset($array[$key]);
-            $key = $sk;
-        }
-
-        // do recursion if needed
-        if (is_array($array[$key])) {
-            remove_magic_quotes($array[$key]);
-        }else {
-            $array[$key] = stripslashes($array[$key]);
-        }
-    }
-}
-
 /**
  * Returns the full absolute URL to the directory where
  * DokuWiki is installed in (includes a trailing slash)
@@ -408,6 +397,10 @@ function remove_magic_quotes(&$array) {
  * !! initialized.
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param null|string $abs
+ *
+ * @return string
  */
 function getBaseURL($abs=null){
     global $conf;
@@ -505,6 +498,8 @@ function is_ssl(){
 
 /**
  * print a nice message even if no styles are loaded yet.
+ *
+ * @param integer|string $msg
  */
 function nice_die($msg){
     echo<<<EOT
@@ -532,6 +527,11 @@ EOT;
  * @author Andreas Gohr <andi@splitbrain.org>
  * @author <richpageau at yahoo dot co dot uk>
  * @link   http://php.net/manual/en/function.realpath.php#75992
+ *
+ * @param string $path
+ * @param bool $exists
+ *
+ * @return bool|string
  */
 function fullpath($path,$exists=false){
     static $run = 0;
diff --git a/inc/io.php b/inc/io.php
index a736d645a0da7178d965a8044d1181a056bab9fd..7b646f127f81491966f3efcc0357d6c334160256 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -339,7 +339,8 @@ function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0)
     if ($maxlines > 0) {
         $count = 0;
         $matched = 0;
-        while (($count < $maxlines) && (list($i,$line) = each($lines))) {
+        foreach($lines as $i => $line) {
+            if($count >= $maxlines) break;
             // $matched will be set to 0|1 depending on whether pattern is matched and line replaced
             $lines[$i] = preg_replace($pattern, $replace, $line, -1, $matched);
             if ($matched) $count++;
diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php
index b842c798fb2ed62726a0991d69691ea99b20559c..4416215ddf0f9314d618d75801f63ea687768e77 100644
--- a/inc/lang/az/lang.php
+++ b/inc/lang/az/lang.php
@@ -1,9 +1,10 @@
 <?php
+
 /**
- * Azerbaijani language file
- *
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
  * @author Pasha L. Topchiyev <pasha@itopchiyev.com>
+ * @author Elchin <quliyev_elchin1989@mail.ru>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -43,6 +44,7 @@ $lang['btn_recover']           = 'Qaralamanı qaytar';
 $lang['btn_draftdel']          = 'Qaralamanı sil';
 $lang['btn_revert']            = 'Qaytar';
 $lang['btn_register']          = 'Qeydiyyatdan keç';
+$lang['btn_img_backto']        = 'Qayıd %s';
 $lang['loggedinas']            = 'İstifadəcinin adı:';
 $lang['user']                  = 'istifadəci adı';
 $lang['pass']                  = 'ÅžifrÉ™';
@@ -57,7 +59,7 @@ $lang['badlogin']              = 'Təssüf ki istifadəçi adı və ya şifrə s
 $lang['minoredit']             = 'Az dəyişiklər';
 $lang['draftdate']             = 'Qaralama yadda saxlandı';
 $lang['nosecedit']             = 'Bu vaxt ərzində səhifə dəyişilmişdir, və bölmə haqqında məlumat köhnəlmişdir. Səhifənin tam versiyası yüklənmişdir.';
-$lang['searchcreatepage']      = "Əgər Siz axtardığınızı tapa bilmədinizsə, onda Siz adı axtarışınız ilə uyğun düşən yeni səhifə yarada bilərsiniz. Bunu eləmək üçün, sadəcə ''Səhifəni yarat'' düyməsini sıxın.";
+$lang['searchcreatepage']      = 'Əgər Siz axtardığınızı tapa bilmədinizsə, onda Siz adı axtarışınız ilə uyğun düşən yeni səhifə yarada bilərsiniz. Bunu eləmək üçün, sadəcə \'\'Səhifəni yarat\'\' düyməsini sıxın.';
 $lang['regmissing']            = 'Təssüf ki Siz bütün xanələri doldurmalısınız.';
 $lang['reguexists']            = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.';
 $lang['regsuccess']            = 'İstivadəci yaradıldı və şifrə sizin e-maila göndərildi.';
@@ -71,6 +73,9 @@ $lang['profna']                = 'Bu wiki profilin dəyişdirilməsini dəstəkl
 $lang['profnochange']          = 'Dəyişiklər edilmədi, profil yenilənmədi.';
 $lang['profnoempty']           = 'istifadəci adı və e-mail ünvanı boş ola bilməz.';
 $lang['profchanged']           = 'İstifadəçi profili uğurla yeniləndi.';
+$lang['profdeleteuser']        = 'Profili sil.';
+$lang['profconfdeletemissing'] = 'Təsdiq xanası seçilməib.';
+$lang['proffail']              = 'İstifadəçi profili yenilənmiyib.';
 $lang['pwdforget']             = 'Şifrəni yaddan çıxartmısız? Buyurun yenisini əldə edin';
 $lang['resendna']              = 'Bu wiki şifrəni yenidən göndərməyi dəstəkləmir.';
 $lang['resendpwdmissing']      = 'Formanın bütün xanəlırini doldurun.';
@@ -87,7 +92,25 @@ $lang['txt_filename']          = 'Faylın wiki-də olan adını daxil edin (müt
 $lang['txt_overwrt']           = 'Mövcud olan faylın üstündən yaz';
 $lang['lockedby']              = 'В данный момент заблокирован Bu an blokdadır:';
 $lang['lockexpire']            = 'Blok bitir:';
-$lang['js']['willexpire']            = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.';
+$lang['js']['willexpire']      = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.';
+$lang['js']['notsavedyet']     = 'Yaddaşa verilməmiş məlumatlar itəcək.';
+$lang['js']['searchmedia']     = 'Faylların axtarışı';
+$lang['js']['keepopen']        = 'Seçimdən sonra pəncərəni açıq saxlamaq';
+$lang['js']['hidedetails']     = 'Təfərruatı gizlət';
+$lang['js']['mediadisplay']    = 'Link növü';
+$lang['js']['mediasize']       = 'Şəkil ölçüsü.';
+$lang['js']['mediaclose']      = 'BaÄŸla.';
+$lang['js']['mediadisplayimg'] = 'Şəkili göstər.';
+$lang['js']['mediadisplaylnk'] = 'Ancaq linki göstər.';
+$lang['js']['mediasmall']      = 'Kiçik versiya.';
+$lang['js']['mediamedium']     = 'Orta versiya.';
+$lang['js']['medialarge']      = 'Böyük versiya.';
+$lang['js']['mediaoriginal']   = 'Orjinal versiya.';
+$lang['js']['medialnk']        = 'Məlumat səhifəsinə keçid.';
+$lang['js']['nosmblinks']      = 'Windows-un şəbəkə qovluqlarına link ancaq Internet Explorer-dən işləyir. \nAmma Siz linki köçürə bilərsiniz.';
+$lang['js']['linkwiz']         = 'Linklər köməkçisi';
+$lang['js']['linkto']          = 'Link göstərir:';
+$lang['js']['del_confirm']     = 'Siz əminsiz ki, seçilmişləri silmək istəyirsiniz?';
 $lang['rssfailed']             = 'Aşağıda göstərilmiş xəbər lentini əldə edən zaman xəta baş verdi: ';
 $lang['nothingfound']          = 'Heçnə tapılmadı.';
 $lang['mediaselect']           = 'Mediya-faylın seçilməsi';
@@ -104,13 +127,6 @@ $lang['deletefail']            = '"%s" adlı fayl silinmədi. Faylın giriş haq
 $lang['mediainuse']            = '"%s" adlı fayl silinmədi. Fayl hələ istifadə olunur';
 $lang['namespaces']            = 'Namespace-lər';
 $lang['mediafiles']            = 'Mövcud olan fayllar';
-$lang['js']['searchmedia']     = 'Faylların axtarışı';
-$lang['js']['keepopen']        = 'Seçimdən sonra pəncərəni açıq saxlamaq';
-$lang['js']['hidedetails']     = 'Təfərruatı gizlət';
-$lang['js']['nosmblinks']      = 'Windows-un şəbəkə qovluqlarına link ancaq Internet Explorer-dən işləyir. \nAmma Siz linki köçürə bilərsiniz.';
-$lang['js']['linkwiz']         = 'Linklər köməkçisi';
-$lang['js']['linkto']          = 'Link göstərir:';
-$lang['js']['del_confirm']     = 'Siz əminsiz ki, seçilmişləri silmək istəyirsiniz?';
 $lang['mediausage']            = 'Bu fayla link yaratmaq üçün aşağıdakı sintaksisdən istifadə edin:';
 $lang['mediaview']             = 'Bu faylın ilkinə bax';
 $lang['mediaroot']             = 'kök';
@@ -170,7 +186,6 @@ $lang['upperns']               = 'Ana namespace-ə keç';
 $lang['metaedit']              = 'Meta-məlumatlarda düzəliş et';
 $lang['metasaveerr']           = 'Meta-məlumatları yazan zamanı xəta';
 $lang['metasaveok']            = 'Meta-məlumatlar yadda saxlandı';
-$lang['btn_img_backto']        = 'Qayıd %s';
 $lang['img_title']             = 'Başlıq:';
 $lang['img_caption']           = 'İmza:';
 $lang['img_date']              = 'Tarix:';
@@ -213,5 +228,5 @@ $lang['days']                  = '%d gün əvvəl';
 $lang['hours']                 = '%d saat əvvəl';
 $lang['minutes']               = '%d dəqiqə əvvəl';
 $lang['seconds']               = '%d saniyə əvvəl';
-$lang['email_signature_text'] = 'DokuWiki aşağıdakı adresdə yerləşir
+$lang['email_signature_text']  = 'DokuWiki aşağıdakı adresdə yerləşir
 @DOKUWIKIURL@';
diff --git a/inc/lang/ca-valencia/admin.txt b/inc/lang/ca-valencia/admin.txt
index 628948e86db9c3002cd98af489ccd6340c1be146..60b1b6e5d335ca6d5f2c5344a523b37f99bb463a 100644
--- a/inc/lang/ca-valencia/admin.txt
+++ b/inc/lang/ca-valencia/admin.txt
@@ -1,4 +1,4 @@
 ====== Administració ======
 
-Avall pot trobar una llista de tasques administratives disponibles en DokuWiki.
+Baix pot trobar una llista de tasques administratives disponibles en DokuWiki.
 
diff --git a/inc/lang/ca-valencia/adminplugins.txt b/inc/lang/ca-valencia/adminplugins.txt
index 6c5c4f90de155847341de210f6af38fca0fcb656..010701e4dc51ccc70f5d710d883cc8a10bc93268 100644
--- a/inc/lang/ca-valencia/adminplugins.txt
+++ b/inc/lang/ca-valencia/adminplugins.txt
@@ -1 +1 @@
-===== Plúgins adicionals =====
\ No newline at end of file
+===== Plugins adicionals =====
diff --git a/inc/lang/ca-valencia/backlinks.txt b/inc/lang/ca-valencia/backlinks.txt
index 06a1106f6e7962432eb5ea6981c5483faca9d93d..bd7fde837ae847cba9be08a780afba001e50e001 100644
--- a/inc/lang/ca-valencia/backlinks.txt
+++ b/inc/lang/ca-valencia/backlinks.txt
@@ -1,3 +1,3 @@
 ====== Vínculs remitents ======
 
-Una llista de pàgines que pareixen vincular a la pàgina actual.
\ No newline at end of file
+Una llista de pàgines que pareixen vincular a la pàgina actual.
diff --git a/inc/lang/ca-valencia/conflict.txt b/inc/lang/ca-valencia/conflict.txt
index 67319612df8d3e1f04a925e75f2a6a934054a42f..6e91fe5ea17b347a21f3c17d556de29e74a5c103 100644
--- a/inc/lang/ca-valencia/conflict.txt
+++ b/inc/lang/ca-valencia/conflict.txt
@@ -1,6 +1,6 @@
 ====== Ya existix una versió més nova ======
 
-Existix una versió més nova del document que ha editat. Açò ha passat perque un atre usuari ha modificat el document mentres vosté estava editant-lo.
+Existix una versió més nova del document que ha editat. Açò ha passat perquè un altre usuari ha modificat el document mentre vosté estava editant-lo.
 
-Estudie be les diferències mostrades avall i decidixca quina versió vol guardar. Si pulsa ''Guardar'' es guardarà la versió que està editant. Pulse ''Cancelar'' per a conservar la versió modificada per l'atre usuari..
+Estudie be les diferències mostrades avall i decidixca quina versió vol guardar. Si pulsa ''Guardar'' es guardarà la versió que està editant. Pulse ''Cancelar'' per a conservar la versió modificada per l'atre usuari.
 
diff --git a/inc/lang/ca-valencia/draft.txt b/inc/lang/ca-valencia/draft.txt
index e7e814a69a19f19f8902b559a8c6ff2a86ad5af9..d3972a78f76d777330d4d9f86dbad923d3b22e5b 100644
--- a/inc/lang/ca-valencia/draft.txt
+++ b/inc/lang/ca-valencia/draft.txt
@@ -1,6 +1,6 @@
 ====== Borrador trobat ======
 
-L'última edició d'esta pàgina no es completà correctament. DokuWiki guarda automàticament un borrador que ara pot recuperar per a continuar editant. Avall pot vore la data en que es guardà l'últim borrador.
+L'última edició d'esta pàgina no es completà correctament. DokuWiki guarda automàticament un borrador que ara pot recuperar per a continuar editant. Baix pot vore la data en què es guardà l'últim borrador.
 
-Per favor, decidixca si vol //recuperar// la sessió que pergué, //borrar// el borrador o //cancelar// esta edició.
+Per favor, decidisca si vol //recuperar// la sessió que pergué, //borrar// el borrador o //cancelar// esta edició.
 
diff --git a/inc/lang/ca-valencia/editrev.txt b/inc/lang/ca-valencia/editrev.txt
index 99188a0e9aa291ae6e7b8696972e2cc89070a931..54feb3bb12cb58070bd4715a3179126026a5ad40 100644
--- a/inc/lang/ca-valencia/editrev.txt
+++ b/inc/lang/ca-valencia/editrev.txt
@@ -1,2 +1,2 @@
-**¡Ha carregat una versió antiga del document!** Si la guarda crearà una nova versió en el contingut d'esta.
+**Ha carregat una versió antiga del document!** Si la guarda crearà una nova versió en el contingut d'esta.
 ----
diff --git a/inc/lang/ca-valencia/install.html b/inc/lang/ca-valencia/install.html
index 49cd4260f67b26a40a850e36ee8b286d3eb32df3..804b80313feadbd0c23d51b56015c76368b7db77 100644
--- a/inc/lang/ca-valencia/install.html
+++ b/inc/lang/ca-valencia/install.html
@@ -1,11 +1,8 @@
 <p>Esta pàgina l'ajudarà en la primera instalació i configuració de <a href="http://dokuwiki.org">Dokuwiki</a>. N'hi ha més informació de l'instalador disponible en la
 <a href="http://dokuwiki.org/installer">pàgina de documentació</a>.</p>
 
-<p>DokuWiki utilisa archius corrents per a l'almagasenament de les pàgines del wiki i atra informació associada ad estes pàgines (p. e. imàgens, índexs de busca, versions antigues, etc.). Per a que DokuWiki funcione correctament
-<strong>deu</strong> tindre accés d'escritura als directoris que contenen estos archius. Est instalador no pot ajustar els permissos del directori. Normalment haurà de fer-ho directament en una consola de del sistema o, si utilisa un hostage, per FTP o en el panel de control (p. e. cPanel).</p>
+<p>DokuWiki utilitza arxius corrents per al magatzemament de les pàgines del wiki i atra informació associada ad estes pàgines (p. e. imàgens, índexs de busca, versions antigues, etc.). Per a que DokuWiki funcione correctament <strong>deu</strong> tindre accés d'escritura als directoris que contenen estos archius. Est instalador no pot ajustar els permissos del directori. Normalment haurà de fer-ho directament en una consola de del sistema o, si utilisa un hostage, per FTP o en el panel de control (p. e. cPanel).</p>
 
-<p>Est instalador configurarà <abbr title="access control list">ACL</abbr> en el seu DokuWiki, que al mateix temps permet l'accés de l'administrador i l'accés al menú d'administració de DokuWiki per a instalar plúgins, gestionar usuaris, gestionar els accessos a les pàgines del wiki i la modificació dels ajusts de configuració. No és necessari per a que DokuWiki funcione, pero farà més fàcil la seua administració.</p>
+<p>L'instali·lador configurarà <abbr title="access control list">ACL</abbr> en el seu DokuWiki, que al mateix temps permet l'accés de l'administrador i l'accés al menú d'administració de DokuWiki per a instalar plugins, gestionar usuaris, gestionar els accessos a les pàgines del wiki i la modificació dels ajusts de configuració. No és necessari per a que DokuWiki funcione, pero farà més fàcil la seua administració.</p>
 
-<p>Els usuaris experimentats o en necessitats especials de configuració deuen utilisar estos vínculs per a informació referent a
-<a href="http://dokuwiki.org/install">instruccions d'instalació</a>
-i <a href="http://dokuwiki.org/config">ajusts de configuració</a>.</p>
+<p>Els usuaris experimentats o en necessitats especials de configuració deuen utilitzar estos vínculs per a informació referent a <a href="http://dokuwiki.org/install">instruccions d'instalació</a> i <a href="http://dokuwiki.org/config">ajusts de configuració</a>.</p>
diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php
index b899bf36ee0c1e1dccc586a7782f30c7c23a5e2d..120f1ace06dea0e879d49781540997919eb2b8b6 100644
--- a/inc/lang/ca-valencia/lang.php
+++ b/inc/lang/ca-valencia/lang.php
@@ -5,6 +5,7 @@
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  * @author Bernat Arlandis i Mañó <berarma@ya.com>
  * @author Bernat Arlandis <berarma@llenguaitecnologia.com>
+ * 
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -37,7 +38,7 @@ $lang['btn_delete']            = 'Borrar';
 $lang['btn_back']              = 'Arrere';
 $lang['btn_backlink']          = 'Vínculs remitents';
 $lang['btn_subscribe']         = 'Subscriure\'s a la pàgina';
-$lang['btn_profile']           = 'Actualisar perfil';
+$lang['btn_profile']           = 'Actualitzar perfil';
 $lang['btn_reset']             = 'Reiniciar';
 $lang['btn_draft']             = 'Editar borrador';
 $lang['btn_recover']           = 'Recuperar borrador';
@@ -63,7 +64,7 @@ $lang['regmissing']            = 'Disculpe, pero deu omplir tots els camps.';
 $lang['reguexists']            = 'Disculpe, pero ya existix un usuari en este nom.';
 $lang['regsuccess']            = 'S\'ha creat l\'usuari i se li ha enviat la contrasenya per correu electrònic.';
 $lang['regsuccess2']           = 'S\'ha creat l\'usuari.';
-$lang['regmailfail']           = 'Pareix que ha hagut un erro enviant el correu en la contrasenya. ¡Per favor, contacte en l\'administrador!';
+$lang['regmailfail']           = 'Pareix que ha hagut un error enviant el correu en la contrasenya. ¡Per favor, contacte en l\'administrador!';
 $lang['regbadmail']            = 'La direcció de correu no pareix vàlida - contacte en l\'administrador si pensa que és deu a un erro nostre';
 $lang['regbadpass']            = 'Les dos contrasenyes que ha donat no són idèntiques, per favor, torne a intentar-ho.';
 $lang['regpwmail']             = 'La seua contrasenya de DokuWiki';
@@ -71,7 +72,7 @@ $lang['reghere']               = '¿Encara no té un conte? Cree-se\'n un';
 $lang['profna']                = 'Este wiki no li permet modificar el perfil';
 $lang['profnochange']          = 'Sense canvis, no hi ha res que fer.';
 $lang['profnoempty']           = 'No es permet deixar el nom o la direcció de correu buits.';
-$lang['profchanged']           = 'Perfil de l\'usuari actualisat.';
+$lang['profchanged']           = 'Perfil de l\'usuari actualitzat.';
 $lang['pwdforget']             = '¿Ha oblidat la contrasenya? Demane\'n una nova';
 $lang['resendna']              = 'Este wiki no permet reenviar la contrasenya.';
 $lang['resendpwdmissing']      = 'Disculpe, pero deu omplir tots els camps.';
@@ -92,18 +93,18 @@ $lang['js']['willexpire']            = 'El seu bloqueig per a editar esta pàgin
 $lang['js']['notsavedyet']     = 'Els canvis no guardats es perdran.\n¿Segur que vol continuar?';
 $lang['rssfailed']             = 'Ha ocorregut un erro al solicitar este canal: ';
 $lang['nothingfound']          = 'No s\'ha trobat res.';
-$lang['mediaselect']           = 'Archius de mijos';
+$lang['mediaselect']           = 'Arxius de mijos';
 $lang['uploadsucc']            = 'Enviament correcte';
 $lang['uploadfail']            = 'Enviament fallit. ¿Potser no tinga els permissos necessaris?';
 $lang['uploadwrong']           = 'Enviament denegat. ¡Esta extensió d\'archiu està prohibida!';
-$lang['uploadexist']           = 'L\'archiu ya existix. No s\'ha fet res.';
+$lang['uploadexist']           = 'L\'arxiu ya existix. No s\'ha fet res.';
 $lang['uploadbadcontent']      = 'El contingut enviat no coincidix en l\'extensió de l\'archiu %s';
 $lang['uploadspam']            = 'L\'enviament ha segut bloquejat per la llista anti-spam.';
 $lang['uploadxss']             = 'L\'enviament ha segut bloquejat per ser possiblement perillós.';
 $lang['uploadsize']            = 'L\'archiu enviat és massa gran. (màx. %s)';
 $lang['deletesucc']            = 'S\'ha borrat l\'archiu "%s".';
 $lang['deletefail']            = 'No s\'ha pogut borrar "%s" - comprove els permissos.';
-$lang['mediainuse']            = 'L\'archiu "%s" no s\'ha borrat - encara s\'està utilisant.';
+$lang['mediainuse']            = 'L\'arxiu "%s" no s\'ha borrat - encara s\'està utilisant.';
 $lang['namespaces']            = 'Espais de noms';
 $lang['mediafiles']            = 'Archius disponibles en';
 $lang['js']['searchmedia']     = 'Buscar archius';
@@ -113,13 +114,13 @@ $lang['js']['nosmblinks']      = 'Els vínculs a recursos compartits de Windows
 $lang['js']['linkwiz']         = 'Assistent de vínculs';
 $lang['js']['linkto']          = 'Vincular a:';
 $lang['js']['del_confirm']     = '¿Realment vol borrar el(s) ítem(s) seleccionat(s)?';
-$lang['mediausage']            = 'Utilise la següent sintaxis per a referenciar est archiu:';
+$lang['mediausage']            = 'Utilize la següent sintaxis per a referenciar est archiu:';
 $lang['mediaview']             = 'Vore l\'archiu original';
 $lang['mediaroot']             = 'base';
-$lang['mediaupload']           = 'Enviar un archiu a l\'espai de noms actual. Per a crear sub-espais, afigga\'ls separats per dos punts davant del nom de l\'archiu que pose en "Enviar com".';
+$lang['mediaupload']           = 'Enviar un arxiu a l\'espai de noms actual. Per a crear sub-espais, afigga\'ls separats per dos punts davant del nom de l\'arxiu que pose en "Enviar com".';
 $lang['mediaextchange']        = '¡Extensió de l\'archiu canviada de .%s a .%s!';
 $lang['reference']             = 'Referències per a';
-$lang['ref_inuse']             = 'No es pot borrar l\'archiu perque encara s\'utilisa en les següents pàgines:';
+$lang['ref_inuse']             = 'No es pot borrar l\'arxiu perque encara s\'utilisa en les següents pàgines:';
 $lang['ref_hidden']            = 'Algunes referències estan en pàgines que no té permissos per a vore';
 $lang['hits']                  = 'Encerts';
 $lang['quickhits']             = 'Noms de pàgines coincidents';
@@ -170,13 +171,13 @@ $lang['qb_smileys']            = 'Smileys';
 $lang['qb_chars']              = 'Caràcters especials';
 $lang['upperns']               = 'anar a l\'espai de noms superior';
 $lang['metaedit']              = 'Editar meta-senyes';
-$lang['metasaveerr']           = 'Erro escrivint meta-senyes';
+$lang['metasaveerr']           = 'Error escrivint meta-senyes';
 $lang['metasaveok']            = 'Meta-senyes guardades';
 $lang['btn_img_backto']        = 'Tornar a %s';
-$lang['img_title']             = 'Títul:';
-$lang['img_caption']           = 'Subtítul:';
+$lang['img_title']             = 'Títol:';
+$lang['img_caption']           = 'Subtítol:';
 $lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nom de l\'archiu:';
+$lang['img_fname']             = 'Nom de l\'arxiu:';
 $lang['img_fsize']             = 'Tamany:';
 $lang['img_artist']            = 'Fotógraf:';
 $lang['img_copyr']             = 'Copyright:';
@@ -185,7 +186,7 @@ $lang['img_camera']            = 'Càmara:';
 $lang['img_keywords']          = 'Paraules clau:';
 $lang['authtempfail']          = 'L\'autenticació d\'usuaris està desactivada temporalment. Si la situació persistix, per favor, informe a l\'administrador del Wiki.';
 $lang['i_chooselang']          = 'Trie l\'idioma';
-$lang['i_installer']           = 'Instalador de DokuWiki';
+$lang['i_installer']           = 'Instal·lador de DokuWiki';
 $lang['i_wikiname']            = 'Nom del Wiki';
 $lang['i_enableacl']           = 'Activar ACL (recomanat)';
 $lang['i_superuser']           = 'Super-usuari';
@@ -195,13 +196,13 @@ Deuria tornar a extraure els archius del paquet que ha descarregat o consultar l
 <a href="http://dokuwiki.org/install">instruccions d\'instalació de Dokuwiki</a> completes';
 $lang['i_funcna']              = 'La funció de PHP <code>%s</code> no està disponible. ¿Pot ser que el seu proveïdor d\'hostage l\'haja desactivada per algun motiu?';
 $lang['i_phpver']              = 'La versió de PHP <code>%s</code> és menor que
-la <code>%s</code> que es necessita. Necessita actualisar PHP.';
+la <code>%s</code> que es necessita. Necessita actualitzar PHP.';
 $lang['i_permfail']            = 'DokuWiki no pot escriure en <code>%s</code>. ¡Necessita arreglar els permissos d\'este directori!';
 $lang['i_confexists']          = '<code>%s</code> ya existix';
-$lang['i_writeerr']            = 'No es pot crear <code>%s</code>. Haurà de comprovar els permissos del directori/archiu i crear manualment l\'archiu.';
+$lang['i_writeerr']            = 'No es pot crear <code>%s</code>. Haurà de comprovar els permissos del directori/archiu i crear manualment l\'arxiu.';
 $lang['i_badhash']             = 'dokuwiki.php substituït o modificat (hash=<code>%s</code>)';
 $lang['i_badval']              = '<code>%s</code> - valor illegal o buit';
-$lang['i_success']             = 'La configuració ha finalisat correctament. Ya pot borrar l\'archiu install.php. Passe al
+$lang['i_success']             = 'La configuració ha finalisat correctament. Ya pot borrar l\'arxiu install.php. Passe al
 <a href="doku.php?id=wiki:welcome">nou DokuWiki</a>.';
 $lang['i_failure']             = 'Han aparegut alguns erros escrivint els archius de configuració. Deurà arreglar-los manualment abans de que
 puga utilisar el <a href="doku.php?id=wiki:welcome">nou DokuWiki</a>.';
diff --git a/inc/lang/ca-valencia/login.txt b/inc/lang/ca-valencia/login.txt
index b550c6440283b2d0f827c0c14326ffb1e9d6d677..23cfd98205f19cc853762b57128a5b15346841e8 100644
--- a/inc/lang/ca-valencia/login.txt
+++ b/inc/lang/ca-valencia/login.txt
@@ -1,4 +1,4 @@
 ====== Inici de sessió ======
 
-¡Encara no ha iniciat sessió! Introduïxca les seues credencials d'autenticació per a iniciar-la. Necessita tindre les galletes del navegador activades.
+Encara no ha iniciat sessió! Introduïxca les seues credencials d'autenticació per a iniciar-la. Necessita tindre les galetes del navegador activades.
 
diff --git a/inc/lang/ca-valencia/newpage.txt b/inc/lang/ca-valencia/newpage.txt
index 93b15442507f726a82d1b8246951325db978e70f..9605ab07d25562955c1131e18e0fdbf9850e3e19 100644
--- a/inc/lang/ca-valencia/newpage.txt
+++ b/inc/lang/ca-valencia/newpage.txt
@@ -1,3 +1,3 @@
 ====== Este tema encara no existix ======
 
-Ha seguit un víncul a una pàgina que encara no existix. Si té els permissos necessaris pot crear-la utilisant el botó ''Crear esta pàgina''.
+Ha seguit un víncul a una pàgina que encara no existix. Si té els permissos necessaris pot crear-la utilizant el botó ''Crear esta pàgina''.
diff --git a/inc/lang/ca-valencia/preview.txt b/inc/lang/ca-valencia/preview.txt
index 0997f5953b6b74ef1f65d4098ab56b378524fae4..e4cddec2a95be0a7ff36166a9c28930ecfe6b4e6 100644
--- a/inc/lang/ca-valencia/preview.txt
+++ b/inc/lang/ca-valencia/preview.txt
@@ -1,4 +1,4 @@
 ====== Previsualisació ======
 
-Açò es una previsualisació per a vore cóm quedarà la pàgina. ¡Recorde que encara no està guardada!
+Açò es una previsualització per a vore cóm quedarà la pàgina. Recorde que encara no està guardada!
 
diff --git a/inc/lang/ca-valencia/read.txt b/inc/lang/ca-valencia/read.txt
index 80d96cd4580f393cc1fee5254797bdcd6b493acd..28e4245874bf7c3c462461e164ef76adb914ce59 100644
--- a/inc/lang/ca-valencia/read.txt
+++ b/inc/lang/ca-valencia/read.txt
@@ -1,2 +1,2 @@
-Esta pàgina és només de llectura. Pot vore el còdic font, pero no pot canviar-lo. Pregunte a l'administrador si creu que és un erro.
+Esta pàgina és només de llectura. Pot vore el còdic font, pero no pot canviar-lo. Pregunte a l'administrador si creu que és un error.
 
diff --git a/inc/lang/ca-valencia/register.txt b/inc/lang/ca-valencia/register.txt
index 7515be6a91c6176f21f399e4a941055a0afe85d2..ec4ff8b23f2c5736e7459673d7c6561ad9ddf8a0 100644
--- a/inc/lang/ca-valencia/register.txt
+++ b/inc/lang/ca-valencia/register.txt
@@ -1,5 +1,4 @@
 ====== Registrar-se com a usuari nou ======
 
-Escriga tota la informació que se li demana avall per a crear un nou conte en este wiki. Assegure's de donar una **direcció de correu electrònic vàlida** - si no se li demana una contrasenya ací se li enviarà a eixa direcció. El nom d'usuari deuria ser un
-[[doku>pagename|nom de pàgina]] vàlit.
+Escriga tota la informació que se li demana al davall per a crear un nou conte en este wiki. Assegure's de donar una **direcció de correu electrònic vàlida** - si no se li demana una contrasenya ací se li enviarà a eixa adreça. El nom d'usuari deuria ser un [[doku>pagename|nom de pàgina]] vàlid.
 
diff --git a/inc/lang/ca-valencia/revisions.txt b/inc/lang/ca-valencia/revisions.txt
index 08e7e043c8a91232f784d705324e869e7c507818..d83a2e9b10e58a6dc2c56790a994d98214f81460 100644
--- a/inc/lang/ca-valencia/revisions.txt
+++ b/inc/lang/ca-valencia/revisions.txt
@@ -1,4 +1,4 @@
 ====== Versions antigues ======
 
-Versions antigues del document actual. Per a recuperar una versió anterior de la pàgina, trie-la ací avall, pulse ''Editar esta pàgina'' i guarde-la.
+Versions antigues del document actual. Per a recuperar una versió anterior de la pàgina, tríe-la ací baix, pulse ''Editar esta pàgina'' i guarde-la.
 
diff --git a/inc/lang/ca-valencia/searchpage.txt b/inc/lang/ca-valencia/searchpage.txt
index 7ed3cd2afbed3a56ad587b8c2172bd8911a80678..be8d3e1d7748be22749a7521554ef79d21588762 100644
--- a/inc/lang/ca-valencia/searchpage.txt
+++ b/inc/lang/ca-valencia/searchpage.txt
@@ -1,5 +1,5 @@
 ====== Buscar ======
 
-Pot vore els resultats de la busca ací avall.  @CREATEPAGEINFO@
+Pot vore els resultats de la busca ací baix.  @CREATEPAGEINFO@
 
 ===== Resultats =====
diff --git a/inc/lang/ca-valencia/stopwords.txt b/inc/lang/ca-valencia/stopwords.txt
index 1b4decbe598f7e02e1eeab8dcc1f67d01c26a693..39c5bb3d8d07765226f860449f8a791c5c01365a 100644
--- a/inc/lang/ca-valencia/stopwords.txt
+++ b/inc/lang/ca-valencia/stopwords.txt
@@ -3,11 +3,8 @@
 # No need to include words shorter than 3 chars - these are ignored anyway
 ell
 ella
-nosatres
-nosatros
-mosatros
-vosatres
-vosatros
+nosaltres
+vosaltres
 ells
 els
 los
@@ -51,7 +48,7 @@ això
 açò
 allò
 des
-soc
+sóc
 eres
 som
 sou
@@ -62,14 +59,14 @@ com
 cóm
 qui
 que
-qué
+què
 quan
 quant
 quants
 quanta
 quantes
 mentres
-pero
+però
 atre
 atra
 atres
diff --git a/inc/lang/ca-valencia/uploadmail.txt b/inc/lang/ca-valencia/uploadmail.txt
index 73837d07d5d895f68b94d76c48a7514e98dfd52f..a67397db10fc8f6c52e2df5b80ee44cf35ada46e 100644
--- a/inc/lang/ca-valencia/uploadmail.txt
+++ b/inc/lang/ca-valencia/uploadmail.txt
@@ -1,6 +1,6 @@
 S'ha enviat un archiu al seu DokuWiki. Les senyes:
 
-Archiu: @MEDIA@
+Arxiu: @MEDIA@
 Data: @DATE@
 Navegador: @BROWSER@
 Direcció IP: @IPADDRESS@
diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php
index 9279db16ce0ae986533fec490a1af85547d23cc7..ec353f770de9c017aa50d1c0a28b2fcf535b11e7 100644
--- a/inc/lang/ca/lang.php
+++ b/inc/lang/ca/lang.php
@@ -9,6 +9,8 @@
  * @author Eduard Díaz <edudiaz@scopia.es>
  * @author controlonline.net <controlonline.net@gmail.com>
  * @author Pauet <pauet@gmx.com>
+ * @author Àngel Pérez Beroy <aperezberoy@gmail.com>
+ * @author David Surroca <david.tb303@gmail.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -190,6 +192,8 @@ $lang['diff_side']             = 'Un al costat de l\'altre';
 $lang['diffprevrev']           = 'Revisió prèvia';
 $lang['diffnextrev']           = 'Següent revisió';
 $lang['difflastrev']           = 'Ultima revisió';
+$lang['diffbothprevrev']       = 'Ambdós costats versió prèvia';
+$lang['diffbothnextrev']       = 'Ambdós costats nova versio';
 $lang['line']                  = 'Línia';
 $lang['breadcrumb']            = 'Camí:';
 $lang['youarehere']            = 'Sou aquí:';
@@ -283,6 +287,7 @@ $lang['i_problems']            = 'L\'instal·lador ha trobat alguns problemes, q
 $lang['i_modified']            = 'Per raons de seguretat aquesta seqüència només funciona amb una instal·lació nova i no modificada de Dokuwiki. Hauríeu de tornar a baixar el paquet i/o descomprimir-lo o consultar les <a href="http://dokuwiki.org/install">instruccions d\'instal·lació de Dokuwiki</a> completes';
 $lang['i_funcna']              = 'La funció PHP <code>%s</code> no està disponible. Potser el vostre proveïdor de serveis l\'ha inhabilitada per alguna raó';
 $lang['i_phpver']              = 'La vostra versió de PHP <code>%s</code> és inferior a la requerida <code>%s</code>. Necessiteu actualitzar la vostra instal·lació de PHP.';
+$lang['i_mbfuncoverload']      = 'mbstring.func_overload cal que sigui deshabilitada en php.ini perquè funcioni DokuWiki';
 $lang['i_permfail']            = 'DokuWiki no pot escriure <code>%s</code>. Heu d\'arreglar els permisos d\'aquest directori';
 $lang['i_confexists']          = '<code>%s</code> ja existeix';
 $lang['i_writeerr']            = 'No es pot crear <code>%s</code>. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.';
@@ -332,8 +337,12 @@ $lang['media_perm_read']       = 'No teniu permisos suficients per a llegir arxi
 $lang['media_perm_upload']     = 'No teniu permisos suficients per a pujar arxius';
 $lang['media_update']          = 'Puja la nova versió';
 $lang['media_restore']         = 'Restaura aquesta versió';
+$lang['media_acl_warning']     = 'Aquesta llista pot no estar completa per restriccions ACL i per llistes ocultes';
 $lang['currentns']             = 'Espai de noms actual';
 $lang['searchresult']          = 'Resultats cerca';
 $lang['plainhtml']             = 'HTML pla';
+$lang['wikimarkup']            = 'Wiki Marcatge';
+$lang['page_nonexist_rev']     = 'Pàgina no existeix a %s. Aixó es conseqüencia d\'haver-la creada a <a href="%s">%s</a>.';
+$lang['unable_to_parse_date']  = 'Impossible de esbrinar el paràmetre "%s".';
 $lang['email_signature_text']  = 'Aquest mail ha estat generat per DokuWiki a
 @DOKUWIKIURL@';
diff --git a/inc/lang/ca/subscr_single.txt b/inc/lang/ca/subscr_single.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a1711f2550dafdef38d5d1fdbee7c9780111a0ea
--- /dev/null
+++ b/inc/lang/ca/subscr_single.txt
@@ -0,0 +1,16 @@
+Hola!
+
+La pàgina  @PAGE@ amb el títol @TITLE@ ha canviat.
+Aquí son els canvis:
+
+-------------------------------------------------------- 
+@DIFF@ 
+--------------------------------------------------------
+
+Data : @DATE@ 
+Usuari : @USER@ 
+Resum edició: @SUMMARY@ 
+Versió vella: @OLDPAGE@ 
+Nova versió: @NEWPAGE@
+
+Per cancel·lar la pàgina de notificacions, entra a la wiki a  @DOKUWIKIURL@ i llavors ves a @SUBSCRIBE@ i desinscriu-te dels canvis dels noms d'espai(namespace) i pàgines.
\ No newline at end of file
diff --git a/inc/lang/cs/conflict.txt b/inc/lang/cs/conflict.txt
index 941118db350ba4a280a2e2a54dbcaa6542d6196a..b332a479464d9588a87064ec2e9d1fe76c30f40d 100644
--- a/inc/lang/cs/conflict.txt
+++ b/inc/lang/cs/conflict.txt
@@ -2,4 +2,4 @@
 
 Existuje novější verze právě upravovaného dokumentu. To se stává, pokud někdo jiný změnil dokument, který právě upravujete.
 
-Prohlédněte si níže uvedené rozdíly, případně rozdíly z obou verzí ručně spojte dohromady a rozhodněte se, kterou verzi uchovat. Pokud zvolíte ''Uložit'', bude uložena vaše verze. Jinak stiskněte ''Storno'' pro uchování původní verze.
+Prohlédněte si níže uvedené rozdíly, případně rozdíly z obou verzí ručně spojte dohromady a rozhodněte se, kterou verzi uchovat. Pokud zvolíte ''Uložit'', bude uložena vaše verze. Jinak stiskněte ''Zrušit'' pro uchování původní verze.
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index e96f313b66ab6bbd07396a12dc340fe86c01e12f..fe2f893660196391d948a422936fbf7542799995 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -21,6 +21,8 @@
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
  * @author Turkislav <turkislav@blabla.com>
  * @author Daniel Slováček <danslo@danslo.cz>
+ * @author Martin Růžička <martinr@post.cz>
+ * @author Pavel Krupička <pajdacz@gmail.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -42,7 +44,7 @@ $lang['btn_older']             = 'starší >>';
 $lang['btn_revs']              = 'Starší verze';
 $lang['btn_recent']            = 'Poslední úpravy';
 $lang['btn_upload']            = 'Načíst';
-$lang['btn_cancel']            = 'Storno';
+$lang['btn_cancel']            = 'Zrušit';
 $lang['btn_index']             = 'Mapa stránek';
 $lang['btn_secedit']           = 'Upravit';
 $lang['btn_login']             = 'Přihlásit se';
@@ -133,8 +135,8 @@ $lang['js']['mediasize']       = 'Velikost obrázku';
 $lang['js']['mediatarget']     = 'Cíl odkazu';
 $lang['js']['mediaclose']      = 'Zavřít';
 $lang['js']['mediainsert']     = 'Vložit';
-$lang['js']['mediadisplayimg'] = 'Ukázat obrázek';
-$lang['js']['mediadisplaylnk'] = 'Ukázat pouze odkaz';
+$lang['js']['mediadisplayimg'] = 'Zobrazit obrázek';
+$lang['js']['mediadisplaylnk'] = 'Zobrazit pouze odkaz';
 $lang['js']['mediasmall']      = 'Malá verze';
 $lang['js']['mediamedium']     = 'Střední verze';
 $lang['js']['medialarge']      = 'Velká verze';
diff --git a/inc/lang/cs/subscr_digest.txt b/inc/lang/cs/subscr_digest.txt
index 49869b315c9b4b3d4305abd3028f1891a2bf96c8..2ed7bf7b66f539e0a0e9cdf6feab582b3c1a2541 100644
--- a/inc/lang/cs/subscr_digest.txt
+++ b/inc/lang/cs/subscr_digest.txt
@@ -11,7 +11,7 @@ Stará revize: @OLDPAGE@
 Nová revize: @NEWPAGE@
 
 Pro odhlášení z odebírání změn na této webové stránce
-se prosím přihlašte do wiki na adrese
+se prosím přihlaste do wiki na adrese
 @DOKUWIKIURL@, pak navštivte
 @SUBSCRIBE@
 a odhlaste se z odebírání změn na stránce či
diff --git a/inc/lang/cs/subscr_single.txt b/inc/lang/cs/subscr_single.txt
index ea6b4bd9b387fff1a87e8bbca8598b6b63c2db61..83d45b6d21773032ec01434bca4ba0eaad3f5fc1 100644
--- a/inc/lang/cs/subscr_single.txt
+++ b/inc/lang/cs/subscr_single.txt
@@ -14,7 +14,7 @@ Stará revize: @OLDPAGE@
 Nová revize: @NEWPAGE@
 
 Pro odhlášení z odebírání změn na této webové stránce
-se prosím přihlašte do wiki na adrese
+se prosím přihlaste do wiki na adrese
 @DOKUWIKIURL@, pak navštivte
 @SUBSCRIBE@
 a odhlaste se z odebírání změn na stránce či
diff --git a/inc/lang/cs/updateprofile.txt b/inc/lang/cs/updateprofile.txt
index d5eadc66cdfefc09f2d7e45ab3a872d20660c688..bf6281df2e720a959a4bb46f92a578a103bd0e5a 100644
--- a/inc/lang/cs/updateprofile.txt
+++ b/inc/lang/cs/updateprofile.txt
@@ -1,4 +1,4 @@
-====== Upravit profil vašeho učtu ======
+====== Upravit profil vašeho účtu ======
 
 Vyplňte pouze pole, která chcete změnit. Nemůžete ale změnit své uživatelské jméno.
 
diff --git a/inc/lang/cs/uploadmail.txt b/inc/lang/cs/uploadmail.txt
index d66ae2689ab933448b6744d008fad973138fee57..090167da605be7eae8f83e26cdde148023b4d81e 100644
--- a/inc/lang/cs/uploadmail.txt
+++ b/inc/lang/cs/uploadmail.txt
@@ -1,8 +1,8 @@
-Do DokuWiki byl nahrán nový dokument. Tady jsou detaily:
+Do DokuWiki byl nahrán nový dokument. Zde jsou podrobnosti:
 
 Soubor : @MEDIA@
 Datum : @DATE@
-Prohlážeč : @BROWSER@
+Prohlížeč : @BROWSER@
 IP adresa : @IPADDRESS@
 Hostitel : @HOSTNAME@
 Velikost : @SIZE@
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index be1084326c92ffb34dc5dcbae7e235752576c73f..4cd819e2a05ecaeeeb8b41f03ac7437bf3853888 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -23,6 +23,7 @@
  * @author Volker Bödker <volker@boedker.de>
  * @author Janosch <janosch@moinzen.de>
  * @author rnck <dokuwiki@rnck.de>
+ * @author Felix <j.felix@mueller-donath.de>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -350,8 +351,8 @@ $lang['media_restore']         = 'Diese Version wiederherstellen';
 $lang['media_acl_warning']     = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
 $lang['currentns']             = 'Aktueller Namensraum';
 $lang['searchresult']          = 'Suchergebnis';
-$lang['email_signature_text']       = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
-@DOKUWIKIURL@';
 $lang['plainhtml']             = 'Reines HTML';
 $lang['wikimarkup']            = 'Wiki Markup';
 $lang['page_nonexist_rev']     = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: <a href="%s">%s</a>.';
+$lang['email_signature_text']  = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
+@DOKUWIKIURL@';
diff --git a/inc/lang/de/backlinks.txt b/inc/lang/de/backlinks.txt
index 25e0ed5f9e50526b34bb593aad0dda694e6142c5..b9caf945fbc859477d71e5debbcaef4a5aca01e0 100644
--- a/inc/lang/de/backlinks.txt
+++ b/inc/lang/de/backlinks.txt
@@ -1,4 +1,4 @@
-====== Links hierher ======
+====== Links hierher (Backlinks) ======
 
 Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite führen.
 
diff --git a/inc/lang/de/conflict.txt b/inc/lang/de/conflict.txt
index d24e5b19845aec04baf723b445b6db4df16dc173..dc44f71c0c5247418f19628971156eacd2f7241b 100644
--- a/inc/lang/de/conflict.txt
+++ b/inc/lang/de/conflict.txt
@@ -1,4 +1,4 @@
-====== Eine neuere Version existiert ======
+====== Es gibt eine neuere Version ======
 
 Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat parallel an der selben Seite gearbeitet und zuerst gespeichert.
 
diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php
index 24b28c277ab48de733febe02b8cd02165d23b292..b77ef75adb947bb4548b1577005f792754a59dd3 100644
--- a/inc/lang/de/lang.php
+++ b/inc/lang/de/lang.php
@@ -29,6 +29,8 @@
  * @author Marcel Eickhoff <eickhoff.marcel@gmail.com>
  * @author Pascal Schröder <Pascal1802@gmail.com>
  * @author Hendrik Diel <diel.hendrik@gmail.com>
+ * @author Marco Hofmann <xenadmin@meinekleinefarm.net>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -45,7 +47,7 @@ $lang['btn_search']            = 'Suche';
 $lang['btn_save']              = 'Speichern';
 $lang['btn_preview']           = 'Vorschau';
 $lang['btn_top']               = 'Nach oben';
-$lang['btn_newer']             = '<< jüngere Änderungen';
+$lang['btn_newer']             = '<< neuere Änderungen';
 $lang['btn_older']             = 'ältere Änderungen >>';
 $lang['btn_revs']              = 'Ältere Versionen';
 $lang['btn_recent']            = 'Letzte Änderungen';
@@ -88,9 +90,9 @@ $lang['badlogin']              = 'Benutzername oder Passwort sind falsch.';
 $lang['badpassconfirm']        = 'Das Passwort war falsch.';
 $lang['minoredit']             = 'kleine Änderung';
 $lang['draftdate']             = 'Entwurf gespeichert am';
-$lang['nosecedit']             = 'Diese Seite wurde in der Zwischenzeit geändert, Sektionsinfo ist veraltet, lade stattdessen volle Seite.';
+$lang['nosecedit']             = 'Diese Seite wurde in der Zwischenzeit geändert, der Seitenabschnitt ist veraltet, lade stattdessen volle Seite.';
 $lang['searchcreatepage']      = 'Falls der gesuchte Begriff nicht gefunden wurde, können Sie direkt eine neue Seite für den Suchbegriff anlegen, indem Sie auf den **\'\'[Seite anlegen]\'\'** Knopf drücken.';
-$lang['regmissing']            = 'Alle Felder müssen ausgefüllt werden.';
+$lang['regmissing']            = 'Bitte alle Felder ausfüllen!';
 $lang['reguexists']            = 'Der Benutzername existiert leider schon.';
 $lang['regsuccess']            = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.';
 $lang['regsuccess2']           = 'Der neue Benutzer wurde angelegt.';
@@ -108,9 +110,9 @@ $lang['profnodelete']          = 'Dieses Wiki unterstützt nicht das Löschen vo
 $lang['profdeleteuser']        = 'Benutzerprofil löschen';
 $lang['profdeleted']           = 'Ihr Benutzerprofil wurde im Wiki gelöscht.';
 $lang['profconfdelete']        = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.';
-$lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.';
+$lang['profconfdeletemissing'] = 'Bestätigung im Ankreuzkästchen fehlt';
 $lang['proffail']              = 'Das Benutzerkonto konnte nicht aktualisiert werden.';
-$lang['pwdforget']             = 'Passwort vergessen? Fordere ein neues an';
+$lang['pwdforget']             = 'Passwort vergessen? Fordern Sie ein neues an';
 $lang['resendna']              = 'Passwörter versenden ist in diesem Wiki nicht möglich.';
 $lang['resendpwd']             = 'Neues Passwort setzen für';
 $lang['resendpwdmissing']      = 'Es tut mir leid, aber Sie müssen alle Felder ausfüllen.';
@@ -135,7 +137,7 @@ $lang['js']['keepopen']        = 'Fenster nach Auswahl nicht schließen';
 $lang['js']['hidedetails']     = 'Details ausblenden';
 $lang['js']['mediatitle']      = 'Linkeinstellungen';
 $lang['js']['mediadisplay']    = 'Linktyp';
-$lang['js']['mediaalign']      = 'Anordnung';
+$lang['js']['mediaalign']      = 'Ausrichtung';
 $lang['js']['mediasize']       = 'Bildgröße';
 $lang['js']['mediatarget']     = 'Linkziel';
 $lang['js']['mediaclose']      = 'Schließen';
@@ -150,17 +152,17 @@ $lang['js']['medialnk']        = 'Link zur Detailseite';
 $lang['js']['mediadirect']     = 'Direktlink zum Original';
 $lang['js']['medianolnk']      = 'Kein Link';
 $lang['js']['medianolink']     = 'Bild nicht verlinken';
-$lang['js']['medialeft']       = 'Das Bild links anordnen.';
-$lang['js']['mediaright']      = 'Das Bild rechts anordnen.';
-$lang['js']['mediacenter']     = 'Das Bild in der Mitte anordnen.';
-$lang['js']['medianoalign']    = 'Keine Anordnung benutzen.';
+$lang['js']['medialeft']       = 'Das Bild links ausrichten.';
+$lang['js']['mediaright']      = 'Das Bild rechts ausrichten.';
+$lang['js']['mediacenter']     = 'Das Bild in der Mitte ausrichten.';
+$lang['js']['medianoalign']    = 'Keine Ausrichtung benutzen.';
 $lang['js']['nosmblinks']      = 'Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer.\nDer Link kann jedoch durch Kopieren und Einfügen verwendet werden.';
 $lang['js']['linkwiz']         = 'Link-Assistent';
 $lang['js']['linkto']          = 'Link nach:';
 $lang['js']['del_confirm']     = 'Eintrag wirklich löschen?';
 $lang['js']['restore_confirm'] = 'Wirklich diese Version wiederherstellen?';
 $lang['js']['media_diff']      = 'Unterschiede anzeigen:';
-$lang['js']['media_diff_both'] = 'Side by Side';
+$lang['js']['media_diff_both'] = 'Nebeneinander';
 $lang['js']['media_diff_opacity'] = 'Überblenden';
 $lang['js']['media_diff_portions'] = 'Übergang';
 $lang['js']['media_select']    = 'Dateien auswählen…';
@@ -185,12 +187,12 @@ $lang['deletefail']            = '"%s" konnte nicht gelöscht werden - prüfen S
 $lang['mediainuse']            = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.';
 $lang['namespaces']            = 'Namensräume';
 $lang['mediafiles']            = 'Vorhandene Dateien in';
-$lang['accessdenied']          = 'Es ist Ihnen nicht gestattet, diese Seite zu sehen.';
+$lang['accessdenied']          = 'Diese Seite dürfen sie nicht sehen.';
 $lang['mediausage']            = 'Syntax zum Verwenden dieser Datei:';
 $lang['mediaview']             = 'Originaldatei öffnen';
 $lang['mediaroot']             = 'Wurzel';
 $lang['mediaupload']           = 'Laden Sie hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stellen Sie diese dem Dateinamen durch Doppelpunkt getrennt voran, nachdem Sie die Datei ausgewählt haben.';
-$lang['mediaextchange']        = 'Dateiendung vom .%s nach .%s geändert!';
+$lang['mediaextchange']        = 'Dateiendung von .%s nach .%s geändert!';
 $lang['reference']             = 'Verwendung von';
 $lang['ref_inuse']             = 'Diese Datei kann nicht gelöscht werden, da sie noch von folgenden Seiten benutzt wird:';
 $lang['ref_hidden']            = 'Einige Verweise sind auf Seiten, für die Sie keine Leseberechtigung haben.';
@@ -204,7 +206,7 @@ $lang['diff2']                 = 'Zeige Unterschiede der ausgewählten Versionen
 $lang['difflink']              = 'Link zu dieser Vergleichsansicht';
 $lang['diff_type']             = 'Unterschiede anzeigen:';
 $lang['diff_inline']           = 'Inline';
-$lang['diff_side']             = 'Side by Side';
+$lang['diff_side']             = 'Nebeneinander';
 $lang['diffprevrev']           = 'Vorhergehende Überarbeitung';
 $lang['diffnextrev']           = 'Nächste  Überarbeitung';
 $lang['difflastrev']           = 'Letzte  Überarbeitung';
@@ -236,7 +238,7 @@ $lang['mail_upload']           = 'Datei hochgeladen:';
 $lang['changes_type']          = 'Änderungen anzeigen von';
 $lang['pages_changes']         = 'Seiten';
 $lang['media_changes']         = 'Mediendateien';
-$lang['both_changes']          = 'Beides, Seiten- und Mediendateien';
+$lang['both_changes']          = 'Beides: Seiten- und Mediendateien';
 $lang['qb_bold']               = 'Fetter Text';
 $lang['qb_italic']             = 'Kursiver Text';
 $lang['qb_underl']             = 'Unterstrichener Text';
@@ -291,9 +293,9 @@ $lang['subscr_m_unsubscribe']  = 'Löschen';
 $lang['subscr_m_subscribe']    = 'Abonnieren';
 $lang['subscr_m_receive']      = 'Benachrichtigung';
 $lang['subscr_style_every']    = 'E-Mail bei jeder Bearbeitung';
-$lang['subscr_style_digest']   = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)';
+$lang['subscr_style_digest']   = 'E-Mail-Zusammenfassung der Änderungen jeder Seite (Alle %.2f Tage)';
 $lang['subscr_style_list']     = 'Liste der geänderten Seiten (Alle %.2f Tage)';
-$lang['authtempfail']          = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Admin.';
+$lang['authtempfail']          = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich bitte an den Admin.';
 $lang['i_chooselang']          = 'Wählen Sie Ihre Sprache';
 $lang['i_installer']           = 'DokuWiki Installation';
 $lang['i_wikiname']            = 'Wiki-Name';
@@ -338,8 +340,8 @@ $lang['media_edittab']         = 'Bearbeiten';
 $lang['media_historytab']      = 'Verlauf';
 $lang['media_list_thumbs']     = 'Vorschaubilder';
 $lang['media_list_rows']       = 'Reihen';
-$lang['media_sort_name']       = 'nach Name';
-$lang['media_sort_date']       = 'nach Datum';
+$lang['media_sort_name']       = 'Name';
+$lang['media_sort_date']       = 'Datum';
 $lang['media_namespaces']      = 'Namensraum wählen';
 $lang['media_files']           = 'Dateien in %s';
 $lang['media_upload']          = 'In den <strong>%s</strong> Namensraum hochladen.';
@@ -360,5 +362,5 @@ $lang['plainhtml']             = 'HTML Klartext';
 $lang['wikimarkup']            = 'Wiki Markup';
 $lang['page_nonexist_rev']     = 'Die Seite exitiert nicht unter %s. Sie wurde aber unter <a href="%s">%s</a>';
 $lang['unable_to_parse_date']  = 'Parameter "%s" kann nicht geparsed werden.';
-$lang['email_signature_text'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
+$lang['email_signature_text']  = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
 @DOKUWIKIURL@';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index c32a0b0296842e9814e18f4036b843bd1542b800..25910cbef6139984387b38757b727adc42727d0f 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -12,6 +12,7 @@
  * @author Constantinos Xanthopoulos <conx@xanthopoulos.info>
  * @author chris taklis <ctaklis@gmail.com>
  * @author cross <cross1962@gmail.com>
+ * @author Zacharias Sdregas <zsdregas@sch.gr>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -55,6 +56,8 @@ $lang['btn_register']          = 'Εγγραφή';
 $lang['btn_apply']             = 'Εφαρμογή';
 $lang['btn_media']             = 'Διαχειριστής πολυμέσων';
 $lang['btn_deleteuser']        = 'Αφαίρεσε τον λογαριασμό μου';
+$lang['btn_img_backto']        = 'Επιστροφή σε %s';
+$lang['btn_mediaManager']      = 'Εμφάνιση στον διαχειριστή πολυμέσων';
 $lang['loggedinas']            = 'Συνδεδεμένος ως:';
 $lang['user']                  = 'Όνομα χρήστη';
 $lang['pass']                  = 'Κωδικός';
@@ -70,10 +73,12 @@ $lang['badpassconfirm']        = 'Ο κωδικός που εισάγατε εί
 $lang['minoredit']             = 'Ασήμαντες αλλαγές';
 $lang['draftdate']             = 'Αυτόματη αποθήκευση πρόχειρης σελίδας στις';
 $lang['nosecedit']             = 'Η σελίδα τροποποιήθηκε στο μεταξύ και τα στοιχεία της ενότητας δεν ήταν συγχρονισμένα, οπότε φορτώθηκε η πλήρης σελίδα.  ';
+$lang['searchcreatepage']      = 'Αν δεν βρίσκεις αυτό που ψάχνεις, μπορείς να δημιουργήσεις ή να επεξεργαστείς τη σελίδα που ψάχνεις, χρησιμοποιώντας το κατάλληλο εργαλείο.';
 $lang['regmissing']            = 'Πρέπει να συμπληρώσετε όλα τα πεδία.';
 $lang['reguexists']            = 'Αυτός ο λογαριασμός υπάρχει ήδη.';
 $lang['regsuccess']            = 'Ο λογαριασμός δημιουργήθηκε και ο κωδικός εστάλει με e-mail.';
 $lang['regsuccess2']           = 'Ο λογαριασμός δημιουργήθηκε.';
+$lang['regfail']               = 'Δεν έγινε η δημιουργία χρήστη.';
 $lang['regmailfail']           = 'Φαίνεται να υπάρχει πρόβλημα με την αποστολή του κωδικού μέσω e-mail. Παρακαλούμε επικοινωνήστε μαζί μας!';
 $lang['regbadmail']            = 'Η διεύθυνση e-mail δεν είναι έγκυρη - εάν πιστεύετε ότι αυτό είναι λάθος, επικοινωνήστε μαζί μας';
 $lang['regbadpass']            = 'Οι δύο κωδικοί δεν είναι ίδιοι, προσπαθήστε ξανά.';
@@ -87,6 +92,8 @@ $lang['profnodelete']          = 'Το wiki δεν υποστηρίζει την
 $lang['profdeleteuser']        = 'Διαγραφή λογαριασμού';
 $lang['profdeleted']           = 'Ο λογαριασμός διαγράφηκε από αυτό το wiki';
 $lang['profconfdelete']        = 'Επιθυμώ να διαγράψω τον λογαριασμό μου από αυτό το wiki. <br/> Αυτή η επιλογή δεν μπορεί να αναιρεθεί.';
+$lang['profconfdeletemissing'] = 'Το κουμπί επιβεβαίωσης δεν πατήθηκε';
+$lang['proffail']              = 'Δεν ενημερώθηκε το προφίλ του χρήστη.';
 $lang['pwdforget']             = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.';
 $lang['resendna']              = 'Αυτό το wiki δεν υποστηρίζει την εκ\' νέου αποστολή κωδικών.';
 $lang['resendpwd']             = 'Εισαγωγή νέου ωδικού για';
@@ -183,6 +190,9 @@ $lang['difflink']              = 'Σύνδεσμος σε αυτή την προ
 $lang['diff_type']             = 'Προβολή διαφορών:';
 $lang['diff_inline']           = 'Σε σειρά';
 $lang['diff_side']             = 'Δίπλα-δίπλα';
+$lang['diffprevrev']           = 'Προηγούμενη αναθεώρηση';
+$lang['diffnextrev']           = 'Επόμενη αναθεώρηση';
+$lang['difflastrev']           = 'Τελευταία αναθεώρηση';
 $lang['line']                  = 'Γραμμή';
 $lang['breadcrumb']            = 'Ιστορικό:';
 $lang['youarehere']            = 'Είστε εδώ:';
@@ -238,7 +248,6 @@ $lang['upperns']               = 'πήγαινε στον μητρικό φάκ
 $lang['metaedit']              = 'Τροποποίηση metadata';
 $lang['metasaveerr']           = 'Η αποθήκευση των metadata απέτυχε';
 $lang['metasaveok']            = 'Επιτυχής αποθήκευση metadata';
-$lang['btn_img_backto']            = 'Επιστροφή σε %s';
 $lang['img_title']             = 'Τίτλος:';
 $lang['img_caption']           = 'Λεζάντα:';
 $lang['img_date']              = 'Ημερομηνία:';
@@ -251,7 +260,6 @@ $lang['img_camera']            = 'Camera:';
 $lang['img_keywords']          = 'Λέξεις-κλειδιά:';
 $lang['img_width']             = 'Πλάτος:';
 $lang['img_height']            = 'Ύψος:';
-$lang['btn_mediaManager']           = 'Εμφάνιση στον διαχειριστή πολυμέσων';
 $lang['subscr_subscribe_success'] = 'Ο/η %s προστέθηκε στην λίστα ειδοποιήσεων για το %s';
 $lang['subscr_subscribe_error'] = 'Σφάλμα κατά την προσθήκη του/της %s στην λίστα ειδοποιήσεων για το %s';
 $lang['subscr_subscribe_noaddress'] = 'Δεν υπάρχει διεύθυνση ταχυδρομείου συσχετισμένη με το όνομα χρήστη σας. Κατά συνέπεια δεν μπορείτε να προστεθείτε στην λίστα ειδοποιήσεων';
@@ -279,6 +287,7 @@ $lang['i_modified']            = 'Για λόγους ασφαλείας, ο ο
 Πρέπει είτε να κάνετε νέα εγκατάσταση, χρησιμοποιώντας το αρχικό πακέτο εγκατάστασης, ή να συμβουλευτείτε τις <a href="http://dokuwiki.org/el:install">οδηγίες εγκατάστασης της εφαρμογής</a>.';
 $lang['i_funcna']              = 'Η λειτουργία <code>%s</code> της PHP δεν είναι διαθέσιμη. Πιθανόν να είναι απενεργοποιημένη στις ρυθμίσεις έναρξης της PHP';
 $lang['i_phpver']              = 'Η έκδοση <code>%s</code> της PHP που έχετε είναι παλαιότερη της απαιτούμενης <code>%s</code>. Πρέπει να αναβαθμίσετε την PHP.';
+$lang['i_mbfuncoverload']      = 'Για να εκτελεστεί το Dokuwiki πρέπει να απενεργοποιήσετε τη ρύθμιση mbstring.func_overload στο αρχείο php.ini';
 $lang['i_permfail']            = 'Ο φάκελος <code>%s</code> δεν είναι εγγράψιμος από την εφαρμογή DokuWiki. Πρέπει να διορθώσετε τα δικαιώματα πρόσβασης αυτού του φακέλου!';
 $lang['i_confexists']          = '<code>%s</code> υπάρχει ήδη';
 $lang['i_writeerr']            = 'Δεν είναι δυνατή η δημιουργία του <code>%s</code>. Πρέπει να διορθώσετε τα δικαιώματα πρόσβασης αυτού του φακέλου/αρχείου και να δημιουργήσετε το αρχείο χειροκίνητα!';
@@ -326,5 +335,5 @@ $lang['media_perm_upload']     = 'Συγνώμη, δεν έχετε επαρκή
 $lang['media_update']          = 'Φόρτωση νέας έκδοσης';
 $lang['media_restore']         = 'Επαναφορά αυτή της έκδοσης';
 $lang['searchresult']          = 'Αποτέλεσμα έρευνας';
-$lang['email_signature_text'] = 'Αυτό το e-mail δημιουργήθηκε αυτόματα από την εφαρμογή DokuWiki στην διεύθυνση
+$lang['email_signature_text']  = 'Αυτό το e-mail δημιουργήθηκε αυτόματα από την εφαρμογή DokuWiki στην διεύθυνση
 @DOKUWIKIURL@';
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index c988c94ad7f051ff5b8a0729b942978895caca59..9f14918d2d759a7ea0232860707f892f5e7c17c1 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -39,6 +39,7 @@
  * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
  * @author Floriang <antispam@floriang.eu>
  * @author Eric <ericstevenart@netc.fr>
+ * @author Olivier Humbert <trebmuh@tuxfamily.org>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -201,7 +202,7 @@ $lang['mediaview']             = 'Afficher le fichier original';
 $lang['mediaroot']             = 'racine';
 $lang['mediaupload']           = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag &amp; drop)';
 $lang['mediaextchange']        = 'Extension du fichier modifiée de .%s en .%s !';
-$lang['reference']             = 'Références pour';
+$lang['reference']             = 'Utilisé par';
 $lang['ref_inuse']             = 'Le fichier ne peut être effacé car il est toujours utilisé par les pages suivantes :';
 $lang['ref_hidden']            = 'Des références sont présentes dans des pages que vous ne pouvez pas voir (autorisations insuffisantes)';
 $lang['hits']                  = 'Occurrences trouvées';
diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php
index 75b56974d5c840f6cf71a388eaa3c3d8d5221f47..3792c615938971553083ea350be633007180ed0b 100644
--- a/inc/lang/it/lang.php
+++ b/inc/lang/it/lang.php
@@ -23,6 +23,7 @@
  * @author Torpedo <dgtorpedo@gmail.com>
  * @author Maurizio <mcannavo@katamail.com>
  * @author Riccardo <riccardofila@gmail.com>
+ * @author Paolo <paolopoz12@gmail.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php
index ffdddd9ca787948104c09ebcf2d190960c7e425f..76c99bc061c8be22d8962f1b64799c7ca2b4a513 100644
--- a/inc/lang/nl/lang.php
+++ b/inc/lang/nl/lang.php
@@ -31,6 +31,8 @@
  * @author Wesley de Weerd <wesleytiel@gmail.com>
  * @author Sjoerd <sjoerd@sjomar.eu>
  * @author Joachim David <joa_david@hotmail.com>
+ * @author mark prins <mprins@users.sf.net>
+ * @author stafmans <dokuwiki@stafmans.net>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -47,7 +49,7 @@ $lang['btn_search']            = 'Zoeken';
 $lang['btn_save']              = 'Opslaan';
 $lang['btn_preview']           = 'Voorbeeld';
 $lang['btn_top']               = 'Terug naar boven';
-$lang['btn_newer']             = '<< recenter';
+$lang['btn_newer']             = '<< nieuwer';
 $lang['btn_older']             = 'ouder >>';
 $lang['btn_revs']              = 'Oude revisies';
 $lang['btn_recent']            = 'Recente aanpassingen';
diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php
index e04811f5d84335853f560f3f262eef3a1e2c6ed0..bc946366df5cb1366523a811ba2abc536e29e19f 100644
--- a/inc/lang/no/lang.php
+++ b/inc/lang/no/lang.php
@@ -85,7 +85,7 @@ $lang['badlogin']              = 'Ugyldig brukernavn og/eller passord.';
 $lang['badpassconfirm']        = 'Beklager, passordet var feil';
 $lang['minoredit']             = 'Mindre endringer';
 $lang['draftdate']             = 'Kladd autolagret';
-$lang['nosecedit']             = 'Siden ble endret i mellomtiden, seksjonsinfo har blitt foreldet - lastet full side istedet.';
+$lang['nosecedit']             = 'Siden er i mellomtiden endret, seksjonsinfo har blitt foreldet - lastet full side istedet.';
 $lang['searchcreatepage']      = 'Hvis du ikke finner det du leter etter, så kan du skape en ny side med samme navn som ditt søk ved å klikke på \'\'**Lag denne siden**\'\'-knappen.';
 $lang['regmissing']            = 'Vennligst fyll ut alle felt.';
 $lang['reguexists']            = 'Det finnes allerede en konto med dette brukernavnet.';
@@ -170,7 +170,7 @@ $lang['js']['media_cancel']    = 'fjern';
 $lang['js']['media_overwrt']   = 'Erstatt eksisterende filer';
 $lang['rssfailed']             = 'En feil oppstod da denne kilden skulle hentes:';
 $lang['nothingfound']          = 'Ingen data funnet.';
-$lang['mediaselect']           = 'Valg av mediafil';
+$lang['mediaselect']           = 'Mediefiler';
 $lang['uploadsucc']            = 'Opplastingen var vellykket';
 $lang['uploadfail']            = 'Opplastingen var mislykket. Kanskje feil rettigheter?';
 $lang['uploadwrong']           = 'Opplastingen ble nektet. Denne filendelsen er ikke tillatt!';
@@ -188,7 +188,7 @@ $lang['accessdenied']          = 'Du har ikke tilgang til å se denne siden';
 $lang['mediausage']            = 'Bruk følgende syntaks til å referere til denne filen:';
 $lang['mediaview']             = 'Vis original fil';
 $lang['mediaroot']             = 'rot';
-$lang['mediaupload']           = 'Last opp en fil til gjeldende navnerom her. For å opprette undernavnerom, før dem opp før filnavn i "Last opp som" adskilt med kolon.';
+$lang['mediaupload']           = 'Last opp en fil til gjeldende navnerom her. For å opprette undernavnerom, før dem opp før filnavnet adskilt med kolon.';
 $lang['mediaextchange']        = 'Filendelse endret fra .%s til .%s!';
 $lang['reference']             = 'Referanser for';
 $lang['ref_inuse']             = 'Denne filen kan ikke slettes fordi den er fortsatt i bruk på følgende sider:';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index d9c90cdf3d2945ab440b651d4a2130c7d5f4cbe5..6d96b1dc0a33f91c4465896a268d6068cab88ac8 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -18,6 +18,7 @@
  * @author Paweł Jan Czochański <czochanski@gmail.com>
  * @author Mati <mackosa@wp.pl>
  * @author Maciej Helt <geraldziu@gmail.com>
+ * @author Kris Charatonik <krishary@gmail.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -83,6 +84,7 @@ $lang['regmissing']            = 'Wypełnij wszystkie pola.';
 $lang['reguexists']            = 'Użytkownik o tej nazwie już istnieje.';
 $lang['regsuccess']            = 'Utworzono użytkownika. Hasło zostało przesłane pocztą.';
 $lang['regsuccess2']           = 'Utworzono użytkownika.';
+$lang['regfail']               = 'Użytkownik nie mógł zostać utworzony.';
 $lang['regmailfail']           = 'Wystąpił błąd przy wysyłaniu hasła pocztą!';
 $lang['regbadmail']            = 'Adres e-mail jest nieprawidłowy!';
 $lang['regbadpass']            = 'Hasła nie są identyczne, spróbuj ponownie.';
@@ -97,6 +99,7 @@ $lang['profdeleteuser']        = 'Usuń konto';
 $lang['profdeleted']           = 'Twoje konto zostało usunięte z tej wiki';
 $lang['profconfdelete']        = 'Chcę usunąć moje konto z tej wiki. <br/> Decyzja nie może być cofnięta.';
 $lang['profconfdeletemissing'] = 'Pole potwierdzenia nie zostało zaznaczone';
+$lang['proffail']              = 'Profil użytkownika nie został uaktualniony.';
 $lang['pwdforget']             = 'Nie pamiętasz hasła? Zdobądź nowe!';
 $lang['resendna']              = 'To wiki nie pozwala na powtórne przesyłanie hasła.';
 $lang['resendpwd']             = 'Podaj nowe hasło dla';
@@ -341,9 +344,10 @@ $lang['media_perm_read']       = 'Przepraszamy, nie masz wystarczajÄ…cych uprawn
 $lang['media_perm_upload']     = 'Przepraszamy, nie masz wystarczających uprawnień do przesyłania plików.';
 $lang['media_update']          = 'Prześlij nową wersję';
 $lang['media_restore']         = 'Odtwórz tą wersję';
+$lang['media_acl_warning']     = 'Ta lista może nie być kompletna ze względu na ograniczenia ACL oraz ukryte strony.';
 $lang['currentns']             = 'Obecny katalog';
 $lang['searchresult']          = 'Wyniki wyszukiwania';
 $lang['plainhtml']             = 'Czysty HTML';
 $lang['wikimarkup']            = 'Znaczniki';
-$lang['email_signature_text'] = 'List został wygenerowany przez DokuWiki pod adresem
+$lang['email_signature_text']  = 'List został wygenerowany przez DokuWiki pod adresem
 @DOKUWIKIURL@';
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index 332fa2f06a36021d2fa0c8f2e38b4e9ac8e1c8ec..fec19c859ff1de9aa3652f0ed42441da959ec0ee 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -35,6 +35,7 @@
  * @author RainbowSpike <1@2.ru>
  * @author dimsharav <dimsharav@gmail.com>
  * @author Radimir <radimir.shevchenko@gmail.com>
+ * @author alexey <xeenych@gmail.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index 96c6fd4d9b3a672008943ae0cdb94dfa157e370b..ca29231b52cce199d9013a2dc7ddebb535b70da5 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -30,6 +30,8 @@
  * @author tai <tai_tang@126.com>
  * @author 高博 <bobnemo1983@gmail.com>
  * @author hznupeter <qiujiongtao@163.com>
+ * @author kuma <kuma000@qq.com>
+ * @author phy25 <git@phy25.com>
  */
 $lang['encoding']              = 'utf-8';
 $lang['direction']             = 'ltr';
@@ -303,12 +305,12 @@ $lang['i_wikiname']            = '维基名称';
 $lang['i_enableacl']           = '启用 ACL(推荐)';
 $lang['i_superuser']           = '超级用户';
 $lang['i_problems']            = '安装工具发现一些问题,已在下面列出。您必须先修复这些问题,才能继续安装。';
-$lang['i_modified']            = '由于安全上的考虑,该脚本只能用于全新且做任何改动的 Dokuwiki 安装包。
+$lang['i_modified']            = '由于安全上的考虑,该脚本只能用于全新且做任何改动的 DokuWiki 安装包。
                          您可以重新解压下载的程序包,或查阅完整的
                          <a href="http://dokuwiki.org/install">Dokuwiki 安装指南</a>';
 $lang['i_funcna']              = 'PHP 功能 <code>%s</code> 无法使用。也许您的服务器提供商因为某些原因禁用了它。';
 $lang['i_phpver']              = '您的 PHP 版本 <code>%s</code> 低于最低要求的 <code>%s</code>。您需要升级您的 PHP 版本。';
-$lang['i_mbfuncoverload']      = '为了运行DocuWiki,您必须在php.ini中禁用mbstring.func_overload。';
+$lang['i_mbfuncoverload']      = '为了运行DokuWiki,您必须在php.ini中禁用mbstring.func_overload。';
 $lang['i_permfail']            = 'DokuWiki 无法写入 <code>%s</code>。您需要修改该路径的权限设定!';
 $lang['i_confexists']          = '<code>%s</code> 已经存在';
 $lang['i_writeerr']            = '无法创建 <code>%s</code>。您需要检查该路径/文件的权限设定并手动创建该文件。';
@@ -326,8 +328,8 @@ $lang['i_allowreg']            = '允许用户自行注册';
 $lang['i_retry']               = '重试';
 $lang['i_license']             = '请选择您希望的内容发布许可协议:';
 $lang['i_license_none']        = '不要显示任何许可协议信息';
-$lang['i_pop_field']           = '请帮助我们改进 Dokuwiki 的体验:';
-$lang['i_pop_label']           = '每个月向 Dokuwiki 开发者发送匿名的使用数据';
+$lang['i_pop_field']           = '请帮助我们改进 DokuWiki 的体验:';
+$lang['i_pop_label']           = '每个月向 DokuWiki 开发者发送匿名的使用数据';
 $lang['recent_global']         = '您当前看到的是<b>%s</b> 名称空间的变动。你还可以在<a href="%s">查看整个维基的近期变动</a>。';
 $lang['years']                 = '%d年前';
 $lang['months']                = '%d月前';
diff --git a/inc/lang/zh/stopwords.txt b/inc/lang/zh/stopwords.txt
index bc6eb48aea08f241e220bc59d6d6851acfb8e381..0a18e46a258e0a4fa3a03a20672726668dc637a8 100644
--- a/inc/lang/zh/stopwords.txt
+++ b/inc/lang/zh/stopwords.txt
@@ -1,7 +1,7 @@
-# This is a list of words the indexer ignores, one word per line
-# When you edit this file be sure to use UNIX line endings (single newline)
-# No need to include words shorter than 3 chars - these are ignored anyway
-# This list is based upon the ones found at http://www.ranks.nl/stopwords/
+# 这是一个索引器忽略的单词列表,每行一个单词
+# 这个文件需要使用UNIX行结尾(单换行符)
+# 不需要包括短于3字符的词,这些都会被忽略
+# 这个列表是基于此改进的 http://www.ranks.nl/stopwords/
 about
 are
 and
diff --git a/inc/lang/zh/subscr_digest.txt b/inc/lang/zh/subscr_digest.txt
index 0428bc9e2be0010c5dc6fc45e5a6000da6734544..53326ae0d33c5af56e7c0da4dece4946d8f29be5 100644
--- a/inc/lang/zh/subscr_digest.txt
+++ b/inc/lang/zh/subscr_digest.txt
@@ -1,6 +1,6 @@
 您好!
 
-@TITLE@ 维基中的页面 @PAGE@ 已经更改。
+@TITLE@ 中的页面 @PAGE@ 已经更改。
 这里是更改的内容:
 
 --------------------------------------------------------
diff --git a/inc/lang/zh/subscr_list.txt b/inc/lang/zh/subscr_list.txt
index eb2db6b965c0a2f472f0c5ff9b7a297102ca9f2a..79846f6629131ff30c61a9bfe201f4632aa40d53 100644
--- a/inc/lang/zh/subscr_list.txt
+++ b/inc/lang/zh/subscr_list.txt
@@ -1,6 +1,6 @@
 您好!
 
-@TITLE@ 维基中的命名空间 @PAGE@ 的页面已经更改。
+@TITLE@ 中的命名空间 @PAGE@ 的页面已经更改。
 这里是更改的页面:
 
 --------------------------------------------------------
diff --git a/inc/lang/zh/subscr_single.txt b/inc/lang/zh/subscr_single.txt
index 4ea4198cdda233e2f4c19a4d59f4c33dfdd364be..9c1adc8b171b9db26336910bf46b98615723a0f2 100644
--- a/inc/lang/zh/subscr_single.txt
+++ b/inc/lang/zh/subscr_single.txt
@@ -1,6 +1,6 @@
 您好!
 
-@TITLE@ 维基中的页面 @PAGE@ 已经更改。
+@TITLE@ 中的页面 @PAGE@ 已经更改。
 这里是更改的内容:
 
 --------------------------------------------------------
diff --git a/inc/lessc.inc.php b/inc/lessc.inc.php
index ada166d77d343208be53673bbc933299b0a1c448..53b390c089511186b1b827e9db1268f4f1d0f700 100644
--- a/inc/lessc.inc.php
+++ b/inc/lessc.inc.php
@@ -167,27 +167,28 @@ class lessc {
 		$this->sourceParser = $oldSourceParser;
 	}
 
-	/**
-	 * Recursively compiles a block.
-	 *
-	 * A block is analogous to a CSS block in most cases. A single LESS document
-	 * is encapsulated in a block when parsed, but it does not have parent tags
-	 * so all of it's children appear on the root level when compiled.
-	 *
-	 * Blocks are made up of props and children.
-	 *
-	 * Props are property instructions, array tuples which describe an action
-	 * to be taken, eg. write a property, set a variable, mixin a block.
-	 *
-	 * The children of a block are just all the blocks that are defined within.
-	 * This is used to look up mixins when performing a mixin.
-	 *
-	 * Compiling the block involves pushing a fresh environment on the stack,
-	 * and iterating through the props, compiling each one.
-	 *
-	 * See lessc::compileProp()
-	 *
-	 */
+    /**
+     * Recursively compiles a block.
+     *
+     * A block is analogous to a CSS block in most cases. A single LESS document
+     * is encapsulated in a block when parsed, but it does not have parent tags
+     * so all of it's children appear on the root level when compiled.
+     *
+     * Blocks are made up of props and children.
+     *
+     * Props are property instructions, array tuples which describe an action
+     * to be taken, eg. write a property, set a variable, mixin a block.
+     *
+     * The children of a block are just all the blocks that are defined within.
+     * This is used to look up mixins when performing a mixin.
+     *
+     * Compiling the block involves pushing a fresh environment on the stack,
+     * and iterating through the props, compiling each one.
+     *
+     * See lessc::compileProp()
+     *
+     * @param stdClass $block
+     */
 	protected function compileBlock($block) {
 		switch ($block->type) {
 		case "root":
@@ -777,17 +778,21 @@ class lessc {
 	}
 
 
-	/**
-	 * Compiles a primitive value into a CSS property value.
-	 *
-	 * Values in lessphp are typed by being wrapped in arrays, their format is
-	 * typically:
-	 *
-	 *     array(type, contents [, additional_contents]*)
-	 *
-	 * The input is expected to be reduced. This function will not work on
-	 * things like expressions and variables.
-	 */
+    /**
+     * Compiles a primitive value into a CSS property value.
+     *
+     * Values in lessphp are typed by being wrapped in arrays, their format is
+     * typically:
+     *
+     *     array(type, contents [, additional_contents]*)
+     *
+     * The input is expected to be reduced. This function will not work on
+     * things like expressions and variables.
+     *
+     * @param array $value
+     *
+     * @return string
+     */
 	protected function compileValue($value) {
 		switch ($value[0]) {
 		case 'list':
@@ -1024,10 +1029,14 @@ class lessc {
 		}
 	}
 
-	/**
-	 * Helper function to get arguments for color manipulation functions.
-	 * takes a list that contains a color like thing and a percentage
-	 */
+    /**
+     * Helper function to get arguments for color manipulation functions.
+     * takes a list that contains a color like thing and a percentage
+     *
+     * @param array $args
+     *
+     * @return array
+     */
 	protected function colorArgs($args) {
 		if ($args[0] != 'list' || count($args[2]) < 2) {
 			return array(array('color', 0, 0, 0), 0);
@@ -1263,10 +1272,14 @@ class lessc {
 		return $temp1;
 	}
 
-	/**
-	 * Converts a hsl array into a color value in rgb.
-	 * Expects H to be in range of 0 to 360, S and L in 0 to 100
-	 */
+    /**
+     * Converts a hsl array into a color value in rgb.
+     * Expects H to be in range of 0 to 360, S and L in 0 to 100
+     *
+     * @param array $color
+     *
+     * @return array
+     */
 	protected function toRGB($color) {
 		if ($color[0] == 'color') return $color;
 
@@ -1298,10 +1311,14 @@ class lessc {
 		return min($max, max($min, $v));
 	}
 
-	/**
-	 * Convert the rgb, rgba, hsl color literals of function type
-	 * as returned by the parser into values of color type.
-	 */
+    /**
+     * Convert the rgb, rgba, hsl color literals of function type
+     * as returned by the parser into values of color type.
+     *
+     * @param array $func
+     *
+     * @return bool|mixed
+     */
 	protected function funcToColor($func) {
 		$fname = $func[1];
 		if ($func[2][0] != 'list') return false; // need a list of arguments
@@ -1777,10 +1794,12 @@ class lessc {
 		}
 	}
 
-	/**
-	 * Initialize any static state, can initialize parser for a file
-	 * $opts isn't used yet
-	 */
+    /**
+     * Initialize any static state, can initialize parser for a file
+     * $opts isn't used yet
+     *
+     * @param null|string $fname
+     */
 	public function __construct($fname = null) {
 		if ($fname !== null) {
 			// used for deprecated parse method
@@ -1998,9 +2017,13 @@ class lessc {
 		$this->allParsedFiles[realpath($file)] = filemtime($file);
 	}
 
-	/**
-	 * Uses the current value of $this->count to show line and line number
-	 */
+    /**
+     * Uses the current value of $this->count to show line and line number
+     *
+     * @param null|string $msg
+     *
+     * @throws exception
+     */
 	protected function throwError($msg = null) {
 		if ($this->sourceLoc >= 0) {
 			$this->sourceParser->throwError($msg, $this->sourceLoc);
@@ -2496,10 +2519,15 @@ class lessc_parser {
 		return true;
 	}
 
-	/**
-	 * Attempt to consume an expression.
-	 * @link http://en.wikipedia.org/wiki/Operator-precedence_parser#Pseudo-code
-	 */
+    /**
+     * Attempt to consume an expression.
+     *
+     * @link http://en.wikipedia.org/wiki/Operator-precedence_parser#Pseudo-code
+     *
+     * @param array $out
+     *
+     * @return bool
+     */
 	protected function expression(&$out) {
 		if ($this->value($lhs)) {
 			$out = $this->expHelper($lhs, 0);
@@ -2521,9 +2549,14 @@ class lessc_parser {
 		return false;
 	}
 
-	/**
-	 * recursively parse infix equation with $lhs at precedence $minP
-	 */
+    /**
+     * recursively parse infix equation with $lhs at precedence $minP
+     *
+     * @param array $lhs
+     * @param mixed $minP
+     *
+     * @return array
+     */
 	protected function expHelper($lhs, $minP) {
 		$this->inExp = true;
 		$ss = $this->seek();
@@ -3243,10 +3276,14 @@ class lessc_parser {
 		return false;
 	}
 
-	/**
-	 * Consume an assignment operator
-	 * Can optionally take a name that will be set to the current property name
-	 */
+    /**
+     * Consume an assignment operator
+     * Can optionally take a name that will be set to the current property name
+     *
+     * @param null|string $name
+     *
+     * @return bool
+     */
 	protected function assign($name = null) {
 		if ($name) $this->currentProperty = $name;
 		return $this->literal(':') || $this->literal('=');
diff --git a/inc/load.php b/inc/load.php
index 68bf69cf311184150db78c43f874c3a9ccf58ef8..d2a0e34427cde39a3079472e2f9cc10756d56921 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -10,7 +10,6 @@ spl_autoload_register('load_autoload');
 
 // require all the common libraries
 // for a few of these order does matter
-require_once(DOKU_INC.'inc/blowfish.php');
 require_once(DOKU_INC.'inc/actions.php');
 require_once(DOKU_INC.'inc/changelog.php');
 require_once(DOKU_INC.'inc/common.php');
@@ -45,6 +44,10 @@ require_once(DOKU_INC.'inc/compatibility.php');
  *
  * @author Andreas Gohr <andi@splitbrain.org>
  * @todo   add generic loading of renderers and auth backends
+ *
+ * @param string $name
+ *
+ * @return bool
  */
 function load_autoload($name){
     static $classes = null;
@@ -73,7 +76,6 @@ function load_autoload($name){
         'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php',
         'Tar'                   => DOKU_INC.'inc/Tar.class.php',
         'ZipLib'                => DOKU_INC.'inc/ZipLib.class.php',
-        'DokuWikiFeedCreator'   => DOKU_INC.'inc/feedcreator.class.php',
         'Doku_Parser_Mode'      => DOKU_INC.'inc/parser/parser.php',
         'Doku_Parser_Mode_Plugin' => DOKU_INC.'inc/parser/parser.php',
         'SafeFN'                => DOKU_INC.'inc/SafeFN.class.php',
diff --git a/inc/mail.php b/inc/mail.php
index e2afd08893e6bd6437e796b3faf6c76ff3b4fdbc..1d02fd6891000ddc9089dc013b1293a9c0cbe5de 100644
--- a/inc/mail.php
+++ b/inc/mail.php
@@ -278,6 +278,12 @@ function mail_isvalid($email){
  *
  * @author umu <umuAThrz.tu-chemnitz.de>
  * @link   http://php.net/manual/en/function.imap-8bit.php#61216
+ *
+ * @param string $sText
+ * @param int $maxlen
+ * @param bool $bEmulate_imap_8bit
+ *
+ * @return string
  */
 function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true) {
     // split text into lines
diff --git a/inc/media.php b/inc/media.php
index 4f543f4f7c8d71fbd364df9bcf3390fa0b9350da..45565db083b7577b159c0f43f71e8a98111c045a 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -304,7 +304,7 @@ function media_upload_xhr($ns,$auth){
             'mime' => $mime,
             'ext'  => $ext),
         $ns.':'.$id,
-        (($INPUT->get->str('ow') == 'checked') ? true : false),
+        (($INPUT->get->str('ow') == 'true') ? true : false),
         $auth,
         'copy'
     );
@@ -427,7 +427,12 @@ function media_save($file, $id, $ow, $auth, $move) {
 
     // get filetype regexp
     $types = array_keys(getMimeTypes());
-    $types = array_map(create_function('$q','return preg_quote($q,"/");'),$types);
+    $types = array_map(
+        function ($q) {
+            return preg_quote($q, "/");
+        },
+        $types
+    );
     $regex = join('|',$types);
 
     // because a temp file was created already
diff --git a/inc/pageutils.php b/inc/pageutils.php
index 68b7dab45ac6e6564c8790d4d689b5da519553cd..55eda5514049cfd87044616d770bac2346a822b9 100644
--- a/inc/pageutils.php
+++ b/inc/pageutils.php
@@ -396,6 +396,8 @@ function metaFiles($id){
  *
  * @param string     $id  media id
  * @param string|int $rev empty string or revision timestamp
+ * @param bool $clean
+ *
  * @return string full path
  */
 function mediaFN($id, $rev='', $clean=true){
diff --git a/inc/parser/code.php b/inc/parser/code.php
index 2353e0dfaf1eff91150cb6b7a420d726eafa9470..fe93273e53968ae85d5950796a74c76460484735 100644
--- a/inc/parser/code.php
+++ b/inc/parser/code.php
@@ -13,6 +13,10 @@ class Doku_Renderer_code extends Doku_Renderer {
      * Send the wanted code block to the browser
      *
      * When the correct block was found it exits the script.
+     *
+     * @param string $text
+     * @param string $language
+     * @param string $filename
      */
     function code($text, $language = null, $filename = '') {
         global $INPUT;
@@ -39,6 +43,10 @@ class Doku_Renderer_code extends Doku_Renderer {
 
     /**
      * Wraps around code()
+     *
+     * @param string $text
+     * @param string $language
+     * @param string $filename
      */
     function file($text, $language = null, $filename = '') {
         $this->code($text, $language, $filename);
diff --git a/inc/parser/handler.php b/inc/parser/handler.php
index a5e7f39cd0fec923b984141b0ed7e12c511579fb..e31bf05cdd3e2ff6730fe9fd4c283d1c209fa86b 100644
--- a/inc/parser/handler.php
+++ b/inc/parser/handler.php
@@ -23,6 +23,8 @@ class Doku_Handler {
 
     /**
      * @param string $handler
+     * @param mixed $args
+     * @param integer|string $pos
      */
     function _addCall($handler, $args, $pos) {
         $call = array($handler,$args, $pos);
@@ -55,10 +57,16 @@ class Doku_Handler {
         array_push($this->calls,array('document_end',array(),$last_call[2]));
     }
 
+    /**
+     * fetch the current call and advance the pointer to the next one
+     *
+     * @return bool|mixed
+     */
     function fetch() {
-        $call = each($this->calls);
-        if ( $call ) {
-            return $call['value'];
+        $call = current($this->calls);
+        if($call !== false) {
+            next($this->calls); //advance the pointer
+            return $call;
         }
         return false;
     }
@@ -71,6 +79,13 @@ class Doku_Handler {
      * An additional parameter with the plugin name is passed
      *
      * @author Andreas Gohr <andi@splitbrain.org>
+     *
+     * @param string|integer $match
+     * @param string|integer $state
+     * @param integer $pos
+     * @param $pluginname
+     *
+     * @return bool
      */
     function plugin($match, $state, $pos, $pluginname){
         $data = array($match);
@@ -137,6 +152,9 @@ class Doku_Handler {
     }
 
     /**
+     * @param string|integer $match
+     * @param string|integer $state
+     * @param integer $pos
      * @param string $name
      */
     function _nestingTag($match, $state, $pos, $name) {
@@ -1590,6 +1608,8 @@ class Doku_Handler_Block {
      * This function makes sure there are no empty paragraphs on the stack
      *
      * @author Andreas Gohr <andi@splitbrain.org>
+     *
+     * @param string|integer $pos
      */
     function closeParagraph($pos){
         if (!$this->inParagraph) return;
@@ -1641,6 +1661,10 @@ class Doku_Handler_Block {
      *
      * @author Harry Fuecks <hfuecks@gmail.com>
      * @author Andreas Gohr <andi@splitbrain.org>
+     *
+     * @param array $calls
+     *
+     * @return array
      */
     function process($calls) {
         // open first paragraph
diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php
index 993db2b98ed370706690442d040b23be9503503b..ba6a653973e1e93e56470310b5658d8eb0ca8ddf 100644
--- a/inc/parser/lexer.php
+++ b/inc/parser/lexer.php
@@ -560,7 +560,12 @@ class Doku_Lexer {
 
 /**
  * Escapes regex characters other than (, ) and /
+ *
  * @TODO
+ *
+ * @param string $str
+ *
+ * @return mixed
  */
 function Doku_Lexer_Escape($str) {
     //$str = addslashes($str);
diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php
index ac8fd21304303bc5b9841bf25cc944eb71cc0ccd..9b1b5c98b6d5b510735d09e66816b54c5de1d002 100644
--- a/inc/parser/metadata.php
+++ b/inc/parser/metadata.php
@@ -591,6 +591,10 @@ class Doku_Renderer_metadata extends Doku_Renderer {
      * casing and special chars
      *
      * @author Andreas Gohr <andi@splitbrain.org>
+     *
+     * @param string $name
+     *
+     * @return mixed|string
      */
     function _simpleTitle($name) {
         global $conf;
diff --git a/inc/parser/parser.php b/inc/parser/parser.php
index 7814e94f6104b11647e9016fd9cc573d28e11a23..6f25dc9e1856da1ceaed67ee7408ba7684d48d47 100644
--- a/inc/parser/parser.php
+++ b/inc/parser/parser.php
@@ -75,6 +75,9 @@ class Doku_Parser {
     /**
      * PHP preserves order of associative elements
      * Mode sequence is important
+     *
+     * @param string $name
+     * @param Doku_Parser_Mode_Interface $Mode
      */
     function addMode($name, Doku_Parser_Mode_Interface $Mode) {
         if ( !isset($this->modes['base']) ) {
@@ -709,6 +712,11 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode {
 
     /**
      * sort callback to order by string length descending
+     *
+     * @param string $a
+     * @param string $b
+     *
+     * @return int
      */
     function _compare($a,$b) {
         $a_len = strlen($a);
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 5b96d39feba76a558d2189d6323319516aa4d92a..92a5047730f31784be497484bf8b6df6e1ff9503 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -59,6 +59,8 @@ define('METADATA_RENDER_UNLIMITED', 4);
  * @param string $id page id
  * @param string|int $rev revision timestamp or empty string
  * @param bool $excuse
+ * @param string $date_at
+ *
  * @return null|string
  */
 function p_wiki_xhtml($id, $rev='', $excuse=true,$date_at=''){
diff --git a/inc/plugin.php b/inc/plugin.php
index a3314d4c74c3b346f651b069a2f0329ffb0d22f9..8a90c0a6efedf06c7c3dad3ef8aa0edaa57fa897 100644
--- a/inc/plugin.php
+++ b/inc/plugin.php
@@ -12,10 +12,10 @@
  */
 class DokuWiki_Plugin {
 
-    var $localised = false;        // set to true by setupLocale() after loading language dependent strings
-    var $lang = array();           // array to hold language dependent strings, best accessed via ->getLang()
-    var $configloaded = false;     // set to true by loadConfig() after loading plugin configuration variables
-    var $conf = array();           // array to hold plugin settings, best accessed via ->getConf()
+    protected $localised = false;        // set to true by setupLocale() after loading language dependent strings
+    protected $lang = array();           // array to hold language dependent strings, best accessed via ->getLang()
+    protected $configloaded = false;     // set to true by loadConfig() after loading plugin configuration variables
+    protected $conf = array();           // array to hold plugin settings, best accessed via ->getConf()
 
     /**
      * General Info
@@ -106,17 +106,18 @@ class DokuWiki_Plugin {
      * plugin equivalent of localFN()
      *
      * @param string $id id of localization file
+     * @param  string $ext The file extension (usually txt)
      * @return string wiki text
      */
-    public function localFN($id) {
+    public function localFN($id,$ext='txt') {
         global $conf;
         $plugin = $this->getPluginName();
-        $file = DOKU_CONF.'plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt';
+        $file = DOKU_CONF.'plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.'.$ext;
         if (!file_exists($file)){
-            $file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.txt';
+            $file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.'.$ext;
             if(!file_exists($file)){
                 //fall back to english
-                $file = DOKU_PLUGIN.$plugin.'/lang/en/'.$id.'.txt';
+                $file = DOKU_PLUGIN.$plugin.'/lang/en/'.$id.'.'.$ext;
             }
         }
         return $file;
diff --git a/inc/search.php b/inc/search.php
index cc3579c3c787d554b82cbd580d1d0bc1f46604ca..3c1d435f5e4903b30a96f3e0f64fbdd163fbae1b 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -94,6 +94,15 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){
  * Searches for pages beginning with the given query
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_qsearch(&$data,$base,$file,$type,$lvl,$opts){
     $opts = array(
@@ -110,6 +119,15 @@ function search_qsearch(&$data,$base,$file,$type,$lvl,$opts){
  * $opts['ns'] is the currently viewed namespace
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_index(&$data,$base,$file,$type,$lvl,$opts){
     global $conf;
@@ -129,6 +147,15 @@ function search_index(&$data,$base,$file,$type,$lvl,$opts){
  * List all namespaces
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_namespaces(&$data,$base,$file,$type,$lvl,$opts){
     $opts = array(
@@ -146,6 +173,15 @@ function search_namespaces(&$data,$base,$file,$type,$lvl,$opts){
  *   $opts['hash']      add hashes to result list
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_media(&$data,$base,$file,$type,$lvl,$opts){
 
@@ -199,6 +235,15 @@ function search_media(&$data,$base,$file,$type,$lvl,$opts){
  * This function just lists documents (for RSS namespace export)
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_list(&$data,$base,$file,$type,$lvl,$opts){
     //we do nothing with directories
@@ -221,6 +266,15 @@ function search_list(&$data,$base,$file,$type,$lvl,$opts){
  * $opts['query'] is the search query
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_pagename(&$data,$base,$file,$type,$lvl,$opts){
     //we do nothing with directories
@@ -250,6 +304,15 @@ function search_pagename(&$data,$base,$file,$type,$lvl,$opts){
  * $opts['skipacl'] list everything regardless of ACL
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
  */
 function search_allpages(&$data,$base,$file,$type,$lvl,$opts){
     if(isset($opts['depth']) && $opts['depth']){
@@ -294,6 +357,11 @@ function search_allpages(&$data,$base,$file,$type,$lvl,$opts){
  * structure created by search_fulltext. Sorts descending by count
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
+ *
+ * @param array $a
+ * @param array $b
+ *
+ * @return int
  */
 function sort_search_fulltext($a,$b){
     if($a['count'] > $b['count']){
@@ -310,6 +378,11 @@ function sort_search_fulltext($a,$b){
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
  * @todo    move to pageutils
+ *
+ * @param string $path
+ * @param bool $keeptxt
+ *
+ * @return mixed|string
  */
 function pathID($path,$keeptxt=false){
     $id = utf8_decodeFN($path);
diff --git a/inc/template.php b/inc/template.php
index 3c0f1f45fe20c7afd126525c9eb241d25d5d8d44..19c36abedfcc6ebe154ed6f9327708cbb8c6189d 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -449,6 +449,7 @@ function _tpl_metaheaders_action($data) {
             echo "<!--[if gte IE 9]><!-->\n"; // no scripts for old IE
         }
         foreach($inst as $attr) {
+            if ( empty($attr) ) { continue; }
             echo '<', $tag, ' ', buildAttributes($attr);
             if(isset($attr['_data']) || $tag == 'script') {
                 if($tag == 'script' && $attr['_data'])
@@ -1560,6 +1561,9 @@ function tpl_mediaFileList() {
  * list of file revisions
  *
  * @author Kate Arzamastseva <pshns@ukr.net>
+ *
+ * @param string $image
+ * @param boolean $rev
  */
 function tpl_mediaFileDetails($image, $rev) {
     global $conf, $DEL, $lang;
diff --git a/inc/utf8.php b/inc/utf8.php
index 794db2bb5c0f034f9f682ad96828db3a49451e18..f82a663e46af0904184776ac9d29a17e4dad0c32 100644
--- a/inc/utf8.php
+++ b/inc/utf8.php
@@ -357,7 +357,7 @@ if(!function_exists('utf8_strtolower')){
      */
     function utf8_strtolower($string){
         if(UTF8_MBSTRING) {
-            if (class_exists("Normalizer", $autoload = false)) 
+            if (class_exists("Normalizer", $autoload = false))
                 return normalizer::normalize(mb_strtolower($string,'utf-8'));
             else
                 return (mb_strtolower($string,'utf-8'));
@@ -636,7 +636,7 @@ if(!class_exists('utf8_entity_decoder')){
      * Encapsulate HTML entity decoding tables
      */
     class utf8_entity_decoder {
-        var $table;
+        protected $table;
 
         /**
          * Initializes the decoding tables
diff --git a/install.php b/install.php
index ad4384c09ba1e781831e83e7f2c851a759e76ad4..6398b199f986580dc4766496eae9f7f2f01d6ad0 100644
--- a/install.php
+++ b/install.php
@@ -9,24 +9,13 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/');
 if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/');
 if(!defined('DOKU_LOCAL')) define('DOKU_LOCAL',DOKU_INC.'conf/');
 
-require_once(DOKU_INC.'inc/PassHash.class.php');
+// load and initialize the core system
+require_once(DOKU_INC.'inc/init.php');
 
 // check for error reporting override or set error reporting to sane values
 if (!defined('DOKU_E_LEVEL')) { error_reporting(E_ALL ^ E_NOTICE); }
 else { error_reporting(DOKU_E_LEVEL); }
 
-// kill magic quotes
-if (get_magic_quotes_gpc() && !defined('MAGIC_QUOTES_STRIPPED')) {
-    if (!empty($_GET))    remove_magic_quotes($_GET);
-    if (!empty($_POST))   remove_magic_quotes($_POST);
-    if (!empty($_COOKIE)) remove_magic_quotes($_COOKIE);
-    if (!empty($_REQUEST)) remove_magic_quotes($_REQUEST);
-    @ini_set('magic_quotes_gpc', 0);
-    define('MAGIC_QUOTES_STRIPPED',1);
-}
-if (function_exists('set_magic_quotes_runtime')) @set_magic_quotes_runtime(0);
-@ini_set('magic_quotes_sybase',0);
-
 // language strings
 require_once(DOKU_INC.'inc/lang/en/lang.php');
 if(isset($_REQUEST['l']) && !is_array($_REQUEST['l'])) {
@@ -59,7 +48,8 @@ $dokuwiki_hash = array(
     '2013-12-08'   => '263c76af309fbf083867c18a34ff5214',
     '2014-05-05'   => '263c76af309fbf083867c18a34ff5214',
     '2015-08-10'   => '263c76af309fbf083867c18a34ff5214',
-    '2016-06-26'   => 'fd3abb6d89853dacb032907e619fbd73'
+    '2016-06-26'   => 'fd3abb6d89853dacb032907e619fbd73',
+    '2017-02-19'   => 'e4f2f5a34c9dbcd96a5ecc8f2df25bd9'
 );
 
 
@@ -558,8 +548,8 @@ function check_functions(){
     global $lang;
     $ok = true;
 
-    if(version_compare(phpversion(),'5.3.3','<')){
-        $error[] = sprintf($lang['i_phpver'],phpversion(),'5.3.3');
+    if(version_compare(phpversion(),'5.6.0','<')){
+        $error[] = sprintf($lang['i_phpver'],phpversion(),'5.6.0');
         $ok = false;
     }
 
@@ -640,21 +630,3 @@ function print_errors(){
         echo '</ul>';
     }
 }
-
-/**
- * remove magic quotes recursivly
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $array
- */
-function remove_magic_quotes(&$array) {
-    foreach (array_keys($array) as $key) {
-        if (is_array($array[$key])) {
-            remove_magic_quotes($array[$key]);
-        }else {
-            $array[$key] = stripslashes($array[$key]);
-        }
-    }
-}
-
diff --git a/lib/exe/jquery.php b/lib/exe/jquery.php
index 899a40c9d4c08914ded53bdc9ef8b07279a6ac84..f32aef7d3a622f941e81171af978789ca51374a0 100644
--- a/lib/exe/jquery.php
+++ b/lib/exe/jquery.php
@@ -7,6 +7,7 @@ if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT', 1);
 require_once(DOKU_INC . 'inc/init.php');
 
 // MAIN
+header('Content-Type: application/javascript; charset=utf-8');
 jquery_out();
 
 /**
diff --git a/lib/exe/js.php b/lib/exe/js.php
index a94d6da60461659ab51fda7654c37c0afef7df81..ee017a41ee63d83c73791c262ee339b57012ee14 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -36,10 +36,6 @@ function js_out(){
     $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t')));
     if(!$tpl) $tpl = $conf['template'];
 
-    // The generated script depends on some dynamic options
-    $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tpl,'.js');
-    $cache->_event = 'JS_CACHE_USE';
-
     // array of core files
     $files = array(
                 DOKU_INC.'lib/scripts/jquery/jquery.cookie.js',
@@ -75,6 +71,13 @@ function js_out(){
         }
     }
 
+    // Let plugins decide to either put more scripts here or to remove some
+    trigger_event('JS_SCRIPT_LIST', $files);
+
+    // The generated script depends on some dynamic options
+    $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].md5(serialize($files)),'.js');
+    $cache->_event = 'JS_CACHE_USE';
+
     $cache_files = array_merge($files, getConfigFiles('main'));
     $cache_files[] = __FILE__;
 
diff --git a/lib/plugins/acl/admin.svg b/lib/plugins/acl/admin.svg
index a1a84bfa5e85a3e2fc55db9cd3cae77b92f0928c..b5cf00167279b4ebcca10e20315ff1d8efbea977 100644
--- a/lib/plugins/acl/admin.svg
+++ b/lib/plugins/acl/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M22,18V22H18V19H15V16H12L9.74,13.74C9.19,13.91 8.61,14 8,14A6,6 0 0,1 2,8A6,6 0 0,1 8,2A6,6 0 0,1 14,8C14,8.61 13.91,9.19 13.74,9.74L22,18M7,5A2,2 0 0,0 5,7A2,2 0 0,0 7,9A2,2 0 0,0 9,7A2,2 0 0,0 7,5Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74L22 18M7 5a2 2 0 0 0-2 2 2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/acl/lang/cs/lang.php b/lib/plugins/acl/lang/cs/lang.php
index c003a6557af702125b31d787445eabb74af0ba06..a819cb4bc13b1728ccba19c58756c498244f828c 100644
--- a/lib/plugins/acl/lang/cs/lang.php
+++ b/lib/plugins/acl/lang/cs/lang.php
@@ -13,6 +13,7 @@
  * @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com>
  * @author Jakub A. Těšínský (j@kub.cz)
  * @author mkucera66@seznam.cz
+ * @author Martin Růžička <martinr@post.cz>
  */
 $lang['admin_acl']             = 'Správa přístupových práv';
 $lang['acl_group']             = 'Skupina:';
@@ -25,8 +26,8 @@ $lang['p_user_id']             = 'Uživatel <b class="acluser">%s</b> má nyní
 $lang['p_user_ns']             = 'Uživatel <b class="acluser">%s</b> má nyní na jmenný prostor <b class="aclns">%s</b> následující oprávnění: <i>%s</i>.';
 $lang['p_group_id']            = 'Členové skupiny <b class="aclgroup">%s</b> mají nyní na stránku <b class="aclpage">%s</b> následující oprávnění: <i>%s</i>.';
 $lang['p_group_ns']            = 'Členové skupiny <b class="aclgroup">%s</b> mají nyní na jmenný prostor <b class="aclns">%s</b> následující oprávnění: <i>%s</i>.';
-$lang['p_choose_id']           = 'Prosím, <b>vložte uživatele nebo skupinu</b> ve formě uvedené výše, abyste mohli prohlížet a editovat množinu oprávnění pro stránku <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Prosím, <b>vložte uživatele nebo skupinu</b> ve formě uvedené výše, abyste mohli prohlížet a editovat množinu oprávnění pro jmenný prostor <b class="aclns">%s</b>.';
+$lang['p_choose_id']           = 'Prosím, <b>zadejte uživatele nebo skupinu</b> ve formě uvedené výše, abyste mohli prohlížet a editovat množinu oprávnění pro stránku <b class="aclpage">%s</b>.';
+$lang['p_choose_ns']           = 'Prosím, <b>zadejte uživatele nebo skupinu</b> ve formě uvedené výše, abyste mohli prohlížet a editovat množinu oprávnění pro jmenný prostor <b class="aclns">%s</b>.';
 $lang['p_inherited']           = 'Poznámka: Tato oprávnění nebyla nastavena explicitně, ale jsou zděděna z jiné skupiny nebo z nadřazeného jmenného prostoru.';
 $lang['p_isadmin']             = 'Poznámka: Vybraná skupina nebo uživatel má vždy plná oprávnění, protože je nastaven jako správce (superuser).';
 $lang['p_include']             = 'Vyšší oprávnění zahrnují nižší oprávnění. Vytvořit, Nahrát a Smazat se vztahují jen k jmenným prostorů, nikoliv ke stránkám.';
diff --git a/lib/plugins/acl/lang/de-informal/lang.php b/lib/plugins/acl/lang/de-informal/lang.php
index 6a04cc520fe27bd04cbf346ca35c944a8ad5b474..9efdecb0d48cf4483a1bd13267ee2908f9b22026 100644
--- a/lib/plugins/acl/lang/de-informal/lang.php
+++ b/lib/plugins/acl/lang/de-informal/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Alexander Fischer <tbanus@os-forge.net>
  * @author Juergen Schwarzer <jschwarzer@freenet.de>
  * @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/acl/lang/de/lang.php b/lib/plugins/acl/lang/de/lang.php
index f4d7cc9e26b494d645ba50849a7d7bce7cc4bdb2..688d4418ae1a0c3a7210f699f89f90e63db003cf 100644
--- a/lib/plugins/acl/lang/de/lang.php
+++ b/lib/plugins/acl/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Andreas Gohr <andi@splitbrain.org>
  * @author Christof <gagi@fin.de>
  * @author Anika Henke <anika@selfthinker.org>
@@ -16,7 +16,6 @@
  * @author Dirk Einecke <dirk@dirkeinecke.de>
  * @author Blitzi94@gmx.de
  * @author Robert Bogenschneider <robog@GMX.de>
- * @author Robert Bogenschneider <robog@gmx.de>
  * @author Niels Lange <niels@boldencursief.nl>
  * @author Christian Wichmann <nospam@zone0.de>
  * @author Paul Lachewsky <kaeptn.haddock@gmail.com>
diff --git a/lib/plugins/acl/lang/el/lang.php b/lib/plugins/acl/lang/el/lang.php
index 09c8691e76fc5b68480b6fc4587f8188534d5c95..75cc41501717aa061fa3d9f23ac4f5023fc87d5e 100644
--- a/lib/plugins/acl/lang/el/lang.php
+++ b/lib/plugins/acl/lang/el/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Andreas Gohr <andi@splitbrain.org>
  * @author Anika Henke <anika@selfthinker.org>
  * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
diff --git a/lib/plugins/acl/lang/pl/lang.php b/lib/plugins/acl/lang/pl/lang.php
index 4fa4e8b9d83edc42d9ddbc5b4389803e2b17901d..c840f449b64af4008b25b238f3bd964568e96f11 100644
--- a/lib/plugins/acl/lang/pl/lang.php
+++ b/lib/plugins/acl/lang/pl/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Grzegorz Żur <grzegorz.zur@gmail.com>
  * @author Mariusz Kujawski <marinespl@gmail.com>
  * @author Maciej Kurczewski <pipijajko@gmail.com>
diff --git a/lib/plugins/acl/remote.php b/lib/plugins/acl/remote.php
index 3771d475d44fab17deeeef43cc34e58907df2467..27c5c162aced526f0b47fd8cb89a93f0ffa18f11 100644
--- a/lib/plugins/acl/remote.php
+++ b/lib/plugins/acl/remote.php
@@ -15,7 +15,7 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin {
             'listAcls' => array(
                 'args' => array(),
                 'return' => 'Array of ACLs {scope, user, permission}',
-                'name' => 'listAcl',
+                'name' => 'listAcls',
                 'doc' => 'Get the list of all ACLs',
             ),'addAcl' => array(
                 'args' => array('string','string','int'),
diff --git a/lib/plugins/authad/lang/ca/lang.php b/lib/plugins/authad/lang/ca/lang.php
index 9990e3b6d7922ac25feaeaefce988a4f2e93c3ba..56692053cecdd0cda88ae0178862e81526d71763 100644
--- a/lib/plugins/authad/lang/ca/lang.php
+++ b/lib/plugins/authad/lang/ca/lang.php
@@ -5,6 +5,10 @@
  *
  * @author Daniel López Prat <daniel@6temes.cat>
  * @author Pauet <pauet@gmx.com>
+ * @author controlonline.net <controlonline.net@gmail.com>
  */
+$lang['domain']                = 'Logo Domini';
 $lang['authpwdexpire']         = 'La vostra contrasenya caducarà en %d dies, l\'hauríeu de canviar aviat.';
 $lang['passchangefail']        = 'Ha fallat el canviar el password. Es possible que no s\'hagi complert la política de passwords';
+$lang['userchangefail']        = 'Ha fallat el canvi d\'atributs. Pot ser no tinguis compte amb permisos per fer canvis.';
+$lang['connectfail']           = 'Ha fallat la connexió amb servidor l\'Active Directory.';
diff --git a/lib/plugins/authad/lang/ca/settings.php b/lib/plugins/authad/lang/ca/settings.php
new file mode 100644
index 0000000000000000000000000000000000000000..161f55264b2268be6104405a0938f4a999e9f518
--- /dev/null
+++ b/lib/plugins/authad/lang/ca/settings.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author controlonline.net <controlonline.net@gmail.com>
+ * @author Àngel Pérez Beroy <aperezberoy@gmail.com>
+ * @author David Surroca <david.tb303@gmail.com>
+ */
+$lang['account_suffix']        = 'El teu nom de compte. Ej.<code>@my.domain.org</code>';
+$lang['base_dn']               = 'Nom base DN. Ej. <code>DC=my,DC=domain,DC=org</code>';
+$lang['domain_controllers']    = 'Llista separada per coma dels controladors de domini. Ej.<code>DC=my,DC=domain,DC=org</code>';
+$lang['admin_username']        = 'Un usuari de Directori Actiu autoritzat a accedir a les dades de tots els usuaris. Opcional, però necessari per a certes accions, com enviar correus per subscripció.';
+$lang['admin_password']        = 'La contrasenya de l\'usuari referit abans.
+';
+$lang['sso']                   = 'S\'hauria de fer servir Kerberos o NTLM per inici de sessió únic?';
+$lang['debug']                 = 'Mostrar informació addicional de depuració en cas d\'error?';
+$lang['expirywarn']            = 'Dies per endavant en avisar l\'usuari sobre la caducitat de la contrasenya. 0 per desactivar.';
+$lang['update_mail']           = 'Permetre els usuaris actualitzar la seva adreça de correu electrònic?';
diff --git a/lib/plugins/authad/lang/cs/settings.php b/lib/plugins/authad/lang/cs/settings.php
index 845c5abdbc1945d94bd74947ef3828d7831103d8..e7bd8c32a834dff9666ff6a8330d164edd79e300 100644
--- a/lib/plugins/authad/lang/cs/settings.php
+++ b/lib/plugins/authad/lang/cs/settings.php
@@ -6,10 +6,11 @@
  * @author mkucera66@seznam.cz
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
  * @author Daniel Slováček <danslo@danslo.cz>
+ * @author Martin Růžička <martinr@post.cz>
  */
 $lang['account_suffix']        = 'Přípona vašeho účtu, tj. <code>@moje.domena.org</code>';
 $lang['base_dn']               = 'Vaše doménové jméno DN. tj. <code>DC=moje,DC=domena,DC=org</code>';
-$lang['domain_controllers']    = 'Čárkou oddělenových kontrol=rů, tj. <code>srv1.domena.org,srv2.domena.org</code>';
+$lang['domain_controllers']    = 'Seznam čárkou oddělených kontrolérů, tj. <code>srv1.domena.org,srv2.domena.org</code>';
 $lang['admin_username']        = 'Privilegovaný uživatel Active Directory s přístupem ke všem datům. Volitelně, ale nutné pro určité akce typu zasílání mailů.';
 $lang['admin_password']        = 'Heslo uživatele výše';
 $lang['sso']                   = 'Chcete přihlašování Single-Sign-On pomocí jádra Kerberos nebo NTLM ( autentizační protokol obvyklý ve Windows)?';
@@ -18,7 +19,7 @@ $lang['real_primarygroup']     = 'Má být zjištěna primární skupina namíst
 $lang['use_ssl']               = 'Použít spojení SSL? Pokud ano, nevyužívejte TLS níže.';
 $lang['use_tls']               = 'Použít spojení TLS? Pokud ano, nevyužívejte SSL výše.';
 $lang['debug']                 = 'Zobrazit dodatečné debugovací výstupy při chybách?';
-$lang['expirywarn']            = 'Dny mezi varováním o vyprčšení hesla uživatele a jeho vypršením. 0 znaší vypnuto.';
+$lang['expirywarn']            = 'Dny mezi varováním o vypršení hesla uživatele a jeho vypršením. 0 značí vypnuto.';
 $lang['additional']            = 'Čárkou oddělený seznam dodatečných atributů získávaných z uživatelských dat. Využito některými pluginy.';
 $lang['update_name']           = 'Povolit uživatelům upravit jejich AD zobrazované jméno?';
 $lang['update_mail']           = 'Povolit uživatelům upravit svou emailovou adresu?';
diff --git a/lib/plugins/authad/lang/de-informal/lang.php b/lib/plugins/authad/lang/de-informal/lang.php
index 973c992d2bb914f897988ae4d1ef2faaf3f045ff..3166798ecf54e1c3bda457becff6323fd148d3f4 100644
--- a/lib/plugins/authad/lang/de-informal/lang.php
+++ b/lib/plugins/authad/lang/de-informal/lang.php
@@ -2,10 +2,12 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Andreas Gohr <gohr@cosmocode.de>
  * @author rnck <dokuwiki@rnck.de>
  */
+$lang['domain']                = 'Login Domäne';
 $lang['authpwdexpire']         = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.';
 $lang['passchangefail']        = 'Das Passwort konnte nicht geändert werden. Eventuell wurde die Passwort-Richtlinie nicht eingehalten.';
+$lang['userchangefail']        = 'Nutzerattribute konnten nicht geändert werden. Möglicherweise hat Dein Account nicht die erforderlichen Berechtigungen.';
 $lang['connectfail']           = 'Verbindung zum Active Directory Server fehlgeschlagen.';
diff --git a/lib/plugins/authad/lang/de-informal/settings.php b/lib/plugins/authad/lang/de-informal/settings.php
index 782cf7c0f814dadd313ea82bd0a34fb381cdeb24..4daa81d6f011849a0059550f1282e7b5b14199cd 100644
--- a/lib/plugins/authad/lang/de-informal/settings.php
+++ b/lib/plugins/authad/lang/de-informal/settings.php
@@ -2,10 +2,12 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Frank Loizzi <contact@software.bacal.de>
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author Volker Bödker <volker@boedker.de>
+ * @author rnck <dokuwiki@rnck.de>
+ * @author Felix <j.felix@mueller-donath.de>
  */
 $lang['account_suffix']        = 'Dein Account-Suffix. Z.B. <code>@my.domain.org</code>';
 $lang['base_dn']               = 'Dein Base-DN. Z.B. <code>DC=my,DC=domain,DC=org</code>';
@@ -13,9 +15,12 @@ $lang['domain_controllers']    = 'Eine Komma-separierte Liste von Domänen-Contr
 $lang['admin_username']        = 'Ein privilegierter Active Directory-Benutzer mit Zugriff zu allen anderen Benutzerdaten. Optional, aber wird benötigt für Aktionen wie z. B. dass Senden von Benachrichtigungs-Mails.';
 $lang['admin_password']        = 'Das Passwort des obigen Benutzers.';
 $lang['sso']                   = 'Soll Single-Sign-On via Kerberos oder NTLM benutzt werden?';
+$lang['sso_charset']           = 'Der Zeichensatz in dem Kerberos oder NTLM den Usernamen übergibt. Leer lassen für UTF-8 oder latin-1. Erfordert die Erweiterung iconv.';
 $lang['real_primarygroup']     = 'Soll die echte primäre Gruppe aufgelöst werden anstelle der Annahme "Domain Users" (langsamer)';
 $lang['use_ssl']               = 'SSL-Verbindung benutzen? Falls ja, TLS unterhalb nicht aktivieren.';
 $lang['use_tls']               = 'TLS-Verbindung benutzen? Falls ja, SSL oberhalb nicht aktivieren.';
 $lang['debug']                 = 'Zusätzliche Debug-Informationen bei Fehlern anzeigen?';
 $lang['expirywarn']            = 'Tage im Voraus um Benutzer über ablaufende Passwörter zu informieren. 0 zum Ausschalten.';
 $lang['additional']            = 'Eine Komma-separierte Liste von zusätzlichen AD-Attributen, die von den Benutzerobjekten abgefragt werden. Wird von einigen Plugins benutzt.';
+$lang['update_name']           = 'Nutzern erlauben ihren AD Anzeigenamen zu aktualisieren?';
+$lang['update_mail']           = 'Nutzern erlauben ihre E-Mail-Adresse zu aktualisieren?';
diff --git a/lib/plugins/authad/lang/de/lang.php b/lib/plugins/authad/lang/de/lang.php
index ec73ac7d7c7b847476308d1931dda181c32a64de..335cd61f58cff3e6c42c2bac636e37f615a4e634 100644
--- a/lib/plugins/authad/lang/de/lang.php
+++ b/lib/plugins/authad/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Andreas Gohr <gohr@cosmocode.de>
  * @author Philip Knack <p.knack@stollfuss.de>
  * @author Uwe Benzelrath <uwebenzelrath@gmail.com>
diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php
index 69b7fe2a93db91392440edb7c29611128cfedf5a..5708411d2ac91819f3a68ef22ea16056ea9d258a 100644
--- a/lib/plugins/authad/lang/de/settings.php
+++ b/lib/plugins/authad/lang/de/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Frank Loizzi <contact@software.bacal.de>
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author Ben Fey <benedikt.fey@beck-heun.de>
diff --git a/lib/plugins/authad/lang/el/lang.php b/lib/plugins/authad/lang/el/lang.php
index 39e3283ccfbdbb9cb380e5aa716532edf4d767a0..c6064f05c5cbf2efc6d15228338dd8768d9c3d26 100644
--- a/lib/plugins/authad/lang/el/lang.php
+++ b/lib/plugins/authad/lang/el/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
  */
 $lang['authpwdexpire']         = 'Ο κωδικός πρόσβασης θα λήξει σε %d ημέρες. Προτείνουμε να τον αλλάξετε σύντομα.';
diff --git a/lib/plugins/authad/lang/el/settings.php b/lib/plugins/authad/lang/el/settings.php
index 9bf23ea1c90712601da9a0b01d7104d4d9a49fcf..b7608dff04f0b6315d7a5bc47455dd1aebee4177 100644
--- a/lib/plugins/authad/lang/el/settings.php
+++ b/lib/plugins/authad/lang/el/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author chris taklis <ctaklis@gmail.com>
  */
 $lang['admin_password']        = 'Ο κωδικός του παραπάνω χρήστη.';
diff --git a/lib/plugins/authad/lang/pl/lang.php b/lib/plugins/authad/lang/pl/lang.php
index 645b46afa4fa3ae4b34ccdd7bdb247286a1df905..a83bac295908a67e2560286e4d91b89b82f546ee 100644
--- a/lib/plugins/authad/lang/pl/lang.php
+++ b/lib/plugins/authad/lang/pl/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Aoi Karasu <aoikarasu@gmail.com>
  */
 $lang['authpwdexpire']         = 'Twoje hasło wygaśnie za %d dni. Należy je zmienić w krótkim czasie.';
diff --git a/lib/plugins/authad/lang/pl/settings.php b/lib/plugins/authad/lang/pl/settings.php
index 537bae7ea648266f5f3c74da9ed2bb36576f318b..da0d3af00019b978f8f91860fe6c785ac1c41521 100644
--- a/lib/plugins/authad/lang/pl/settings.php
+++ b/lib/plugins/authad/lang/pl/settings.php
@@ -2,11 +2,12 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Tomasz Bosak <bosak.tomasz@gmail.com>
  * @author Paweł Jan Czochański <czochanski@gmail.com>
  * @author Mati <mackosa@wp.pl>
  * @author Maciej Helt <geraldziu@gmail.com>
+ * @author Kris Charatonik <krishary@gmail.com>
  */
 $lang['account_suffix']        = 'Przyrostek twojej nazwy konta np. <code>@my.domain.org</code>';
 $lang['base_dn']               = 'Twoje bazowe DN. Na przykład: <code>DC=my,DC=domain,DC=org</code>';
@@ -20,3 +21,5 @@ $lang['use_ssl']               = 'Użyć połączenie SSL? Jeśli tak to nie akt
 $lang['use_tls']               = 'Użyć połączenie TLS? Jeśli tak to nie aktywuj SSL powyżej.';
 $lang['debug']                 = 'Wyświetlać dodatkowe informacje do debugowania w przypadku błędów?';
 $lang['expirywarn']            = 'Dni poprzedzających powiadomienie użytkownika o wygasającym haśle. 0 aby wyłączyć.';
+$lang['update_name']           = 'Zezwól użytkownikom na uaktualnianie nazwy wyświetlanej w AD?';
+$lang['update_mail']           = 'Zezwól użytkownikom na uaktualnianie ich adresu email?';
diff --git a/lib/plugins/authad/lang/zh/lang.php b/lib/plugins/authad/lang/zh/lang.php
index 31024c4e23af1b5015d81f4507e1c203db260f3d..4b2c885215652ad78d0c54dd1fd48cdb712a3c3e 100644
--- a/lib/plugins/authad/lang/zh/lang.php
+++ b/lib/plugins/authad/lang/zh/lang.php
@@ -5,9 +5,10 @@
  *
  * @author lainme <lainme993@gmail.com>
  * @author Errol <errol@hotmail.com>
+ * @author phy25 <git@phy25.com>
  */
 $lang['domain']                = '登录域';
-$lang['authpwdexpire']         = '您的密码将在 %d 天内过期,请尽快更改';
+$lang['authpwdexpire']         = '您的密码将在 %d 天内过期,请尽快更改。';
 $lang['passchangefail']        = '密码更改失败。是不是密码规则不符合?';
 $lang['userchangefail']        = '更改用户属性失败。或许您的帐号没有做此更改的权限?';
 $lang['connectfail']           = '无法连接到Active Directory服务器。';
diff --git a/lib/plugins/authldap/lang/ca/lang.php b/lib/plugins/authldap/lang/ca/lang.php
new file mode 100644
index 0000000000000000000000000000000000000000..f4431a389d2043fc0bd59cdd70624b22d13fa34c
--- /dev/null
+++ b/lib/plugins/authldap/lang/ca/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author David Surroca <david.tb303@gmail.com>
+ */
+$lang['connectfail']           = 'L\'LDAP no s\'ha pogut connectar: %s';
+$lang['domainfail']            = 'L\'LDAP no ha trobat el teu nom distingit d\'usuari';
diff --git a/lib/plugins/authldap/lang/ca/settings.php b/lib/plugins/authldap/lang/ca/settings.php
new file mode 100644
index 0000000000000000000000000000000000000000..2f73833adcb99de5ac8696260aa01d96d055ae34
--- /dev/null
+++ b/lib/plugins/authldap/lang/ca/settings.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Àngel Pérez Beroy <aperezberoy@gmail.com>
+ * @author David Surroca <david.tb303@gmail.com>
+ */
+$lang['starttls']              = 'Utilitzar connexions TLS?';
+$lang['bindpw']                = 'Contrasenya de l\'usuari referit abans.';
diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php
index 21de11f3a11136d9e310eebe07bc689d7887ebe7..5cfec991a2b427799bb325d43bd2d94c645823ac 100644
--- a/lib/plugins/authldap/lang/cs/settings.php
+++ b/lib/plugins/authldap/lang/cs/settings.php
@@ -5,13 +5,14 @@
  *
  * @author mkucera66@seznam.cz
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
+ * @author Martin Růžička <martinr@post.cz>
  */
 $lang['server']                = 'Váš server LDAP. Buď jméno hosta (<code>localhost</code>) nebo plně kvalifikovaný popis URL (<code>ldap://server.tld:389</code>)';
 $lang['port']                  = 'Port serveru LDAP. Pokud není, bude využito URL výše';
 $lang['usertree']              = 'Kde najít uživatelské účty, tj. <code>ou=Lide, dc=server, dc=tld</code>';
 $lang['grouptree']             = 'Kde najít uživatelské skupiny, tj. <code>ou=Skupina, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'Filter LDAPu pro vyhledávání uživatelských účtů, tj. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filter LDAPu pro vyhledávání uživatelských skupin, tj. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['userfilter']            = 'Filtr LDAPu pro vyhledávání uživatelských účtů, tj. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter']           = 'Filtr LDAPu pro vyhledávání uživatelských skupin, tj. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
 $lang['version']               = 'Verze použitého protokolu. Můžete potřebovat jej nastavit na <code>3</code>';
 $lang['starttls']              = 'Využít spojení TLS?';
 $lang['referrals']             = 'Přeposílat odkazy?';
@@ -21,7 +22,7 @@ $lang['bindpw']                = 'Heslo uživatele výše';
 $lang['userscope']             = 'Omezení rozsahu vyhledávání uživatele';
 $lang['groupscope']            = 'Omezení rozsahu vyhledávání skupiny';
 $lang['userkey']               = 'Atribut označující uživatelské jméno; musí být konzistetní s uživatelským filtrem.';
-$lang['groupkey']              = 'Atribut šlenství uživatele ve skupinách (namísto standardních AD skupin), tj. skupina z oddělení nebo telefonní číslo';
+$lang['groupkey']              = 'Atribut členství uživatele ve skupinách (namísto standardních AD skupin), tj. skupina z oddělení nebo telefonní číslo';
 $lang['modPass']               = 'Může být LDAP heslo změněno přes dokuwiki?';
 $lang['debug']                 = 'Zobrazit dodatečné debugovací informace';
 $lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
diff --git a/lib/plugins/authldap/lang/de-informal/lang.php b/lib/plugins/authldap/lang/de-informal/lang.php
new file mode 100644
index 0000000000000000000000000000000000000000..79016fed0e45a9d59c794fe694c0b29bf370422b
--- /dev/null
+++ b/lib/plugins/authldap/lang/de-informal/lang.php
@@ -0,0 +1,9 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author rnck <dokuwiki@rnck.de>
+ */
+$lang['connectfail']           = 'LDAP kann sich nicht verbinden: %s';
+$lang['domainfail']            = 'LDAP kann Deinen user dn nicht finden';
diff --git a/lib/plugins/authldap/lang/de-informal/settings.php b/lib/plugins/authldap/lang/de-informal/settings.php
index bdac7dd68e0aad58e48286b505103d5ef3c3e03a..a17cf356d238eee9cf6e8aece96af764fd128d47 100644
--- a/lib/plugins/authldap/lang/de-informal/settings.php
+++ b/lib/plugins/authldap/lang/de-informal/settings.php
@@ -2,9 +2,10 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author Volker Bödker <volker@boedker.de>
+ * @author rnck <dokuwiki@rnck.de>
  */
 $lang['server']                = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).';
 $lang['port']                  = 'Port des LDAP-Servers, falls kein Port angegeben wurde.';
@@ -21,8 +22,12 @@ $lang['bindpw']                = 'Passwort des angegebenen Benutzers.';
 $lang['userscope']             = 'Die Suchweite nach Benutzeraccounts.';
 $lang['groupscope']            = 'Die Suchweite nach Benutzergruppen.';
 $lang['groupkey']              = 'Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes z. B. Telefonnummer oder Abteilung, anstelle der Standard-Gruppen).';
+$lang['modPass']               = 'Kann das LDAP Passwort via dokuwiki geändert werden?';
 $lang['debug']                 = 'Debug-Informationen beim Auftreten von Fehlern anzeigen?';
 $lang['deref_o_0']             = 'LDAP_DEREF_NIEMALS';
 $lang['deref_o_1']             = 'LDAP_DEREF_SUCHEN';
 $lang['deref_o_2']             = 'LDAP_DEREF_FINDEN';
 $lang['deref_o_3']             = 'LDAP_DEREF_IMMER';
+$lang['referrals_o_-1']        = 'benutze die Vorgabe';
+$lang['referrals_o_0']         = 'keine Verweise erlauben';
+$lang['referrals_o_1']         = 'folge Verweisen';
diff --git a/lib/plugins/authldap/lang/de/lang.php b/lib/plugins/authldap/lang/de/lang.php
index 74197f918a6500692d5ce4252043e85295016b2d..db6b89153c4806e5f268a9a7c4be76d32b363b83 100644
--- a/lib/plugins/authldap/lang/de/lang.php
+++ b/lib/plugins/authldap/lang/de/lang.php
@@ -2,8 +2,9 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Philip Knack <p.knack@stollfuss.de>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['connectfail']           = 'LDAP-Verbindung scheitert: %s';
-$lang['domainfail']            = 'LDAP kann nicht dein Benutzer finden dn';
+$lang['domainfail']            = 'LDAP kann Ihren Benutzer (DN) nicht finden';
diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php
index e986d0f80513c9d701720210778afcbdbbb51252..f1bfc00fd18b7ba7f044e1179c0cd6183d9de4c9 100644
--- a/lib/plugins/authldap/lang/de/settings.php
+++ b/lib/plugins/authldap/lang/de/settings.php
@@ -2,11 +2,12 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author christian studer <cstuder@existenz.ch>
  * @author Philip Knack <p.knack@stollfuss.de>
  * @author Anika Henke <anika@selfthinker.org>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['server']                = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).';
 $lang['port']                  = 'Port des LDAP-Servers, falls kein Port angegeben wurde.';
@@ -31,5 +32,5 @@ $lang['deref_o_1']             = 'LDAP_DEREF_SEARCHING';
 $lang['deref_o_2']             = 'LDAP_DEREF_FINDING';
 $lang['deref_o_3']             = 'LDAP_DEREF_ALWAYS';
 $lang['referrals_o_-1']        = 'Standard verwenden';
-$lang['referrals_o_0']         = 'Nicht Referrals folgen';
+$lang['referrals_o_0']         = 'Referrals nicht folgen';
 $lang['referrals_o_1']         = 'Referrals folgen';
diff --git a/lib/plugins/authldap/lang/pl/settings.php b/lib/plugins/authldap/lang/pl/settings.php
index 0f5281b13be60aa58ff3eddc96b9a62811c51704..cc7174f6f508d4f48f4124ff81bd2dd5961ec758 100644
--- a/lib/plugins/authldap/lang/pl/settings.php
+++ b/lib/plugins/authldap/lang/pl/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Paweł Jan Czochański <czochanski@gmail.com>
  * @author Maciej Helt <geraldziu@gmail.com>
  */
diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php
index 04388bf1a54c3e7b0b291d9a584e56fd8e919b45..f3c21032412c79b39eb0ff8df5b5ba1c5a79ec59 100644
--- a/lib/plugins/authldap/lang/zh/settings.php
+++ b/lib/plugins/authldap/lang/zh/settings.php
@@ -6,11 +6,12 @@
  * @author lainme <lainme993@gmail.com>
  * @author oott123 <ip.192.168.1.1@qq.com>
  * @author Errol <errol@hotmail.com>
+ * @author phy25 <git@phy25.com>
  */
 $lang['server']                = '您的 LDAP 服务器。填写主机名 (<code>localhost</code>) 或者完整的 URL (<code>ldap://server.tld:389</code>)';
 $lang['port']                  = 'LDAP 服务器端口 (如果上面没有给出完整的 URL)';
-$lang['usertree']              = '何处查找用户账户。例如 <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = '何处查找用户组。例如 <code>ou=Group, dc=server, dc=tld</code>';
+$lang['usertree']              = '在何处查找用户账户。例如 <code>ou=People, dc=server, dc=tld</code>';
+$lang['grouptree']             = '在何处查找用户组。例如 <code>ou=Group, dc=server, dc=tld</code>';
 $lang['userfilter']            = '用于搜索用户账户的 LDAP 筛选器。例如 <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
 $lang['groupfilter']           = '用于搜索组的 LDAP 筛选器。例如 <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
 $lang['version']               = '使用的协议版本。您或许需要设置为 <code>3</code>';
@@ -23,7 +24,7 @@ $lang['userscope']             = '限制用户搜索的范围';
 $lang['groupscope']            = '限制组搜索的范围';
 $lang['userkey']               = '表示用户名的属性;必须和用户过滤器保持一致。';
 $lang['groupkey']              = '根据任何用户属性得来的组成员(而不是标准的 AD 组),例如根据部门或者电话号码得到的组。';
-$lang['modPass']               = ' LDAP密码可以由dokuwiki修改吗?';
+$lang['modPass']               = ' LDAP密码可以通过 DokuWiki 修改吗?';
 $lang['debug']                 = '有错误时显示额外的调试信息';
 $lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
 $lang['deref_o_1']             = 'LDAP_DEREF_SEARCHING';
diff --git a/lib/plugins/authmysql/lang/de-informal/lang.php b/lib/plugins/authmysql/lang/de-informal/lang.php
new file mode 100644
index 0000000000000000000000000000000000000000..11b130f9006fdb335a46ccaf2e7db2761b5bc32b
--- /dev/null
+++ b/lib/plugins/authmysql/lang/de-informal/lang.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author rnck <dokuwiki@rnck.de>
+ */
+$lang['connectfail']           = 'Konnte nicht zur Datenbank verbinden.';
+$lang['userexists']            = 'Entschuldigung, es existiert bereits ein Nutzer mit diesem Login.';
+$lang['usernotexists']         = 'Entschuldigung, dieser Nutzer existiert nicht.';
+$lang['writefail']             = 'Konnte Nutzer-Daten nicht modifizieren. Bitte informiere einen Admin.';
diff --git a/lib/plugins/authmysql/lang/de-informal/settings.php b/lib/plugins/authmysql/lang/de-informal/settings.php
index d8d2778b9822f7d2ea9c2cf9e9aa3c49a327f8dd..f6033d38b98223661a29efa491cb02332e9c2593 100644
--- a/lib/plugins/authmysql/lang/de-informal/settings.php
+++ b/lib/plugins/authmysql/lang/de-informal/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author Volker Bödker <volker@boedker.de>
  */
diff --git a/lib/plugins/authmysql/lang/de/lang.php b/lib/plugins/authmysql/lang/de/lang.php
index c5c3c657a3dae22529c1b3c18df55a9b9f8de80a..b5528230a12f28116abe96dea05dd6803e9880b2 100644
--- a/lib/plugins/authmysql/lang/de/lang.php
+++ b/lib/plugins/authmysql/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Noel Tilliot <noeltilliot@byom.de>
  * @author Hendrik Diel <diel.hendrik@gmail.com>
  * @author Philip Knack <p.knack@stollfuss.de>
diff --git a/lib/plugins/authmysql/lang/de/settings.php b/lib/plugins/authmysql/lang/de/settings.php
index 90e0ee5a8a0886be73440d6f91b6fda8d33a762d..5b603e2c8abdbcd7db05d31e6be5d3b650e35fa5 100644
--- a/lib/plugins/authmysql/lang/de/settings.php
+++ b/lib/plugins/authmysql/lang/de/settings.php
@@ -2,14 +2,15 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['server']                = 'MySQL-Server';
 $lang['user']                  = 'Benutzername für den Zugriff auf den MySQL-Server.';
 $lang['password']              = 'Passwort des angegebenen Benutzers.';
-$lang['database']              = 'Zu verwendende Datenbank.';
-$lang['charset']               = 'Verwendetes Character-Set in der Datenbank.';
+$lang['database']              = 'Zu verwendende Datenbank';
+$lang['charset']               = 'Zeichensatz der Datenbank';
 $lang['debug']                 = 'Debug-Informationen anzeigen?';
 $lang['forwardClearPass']      = 'Passwort der DokuWiki-Benutzer im Klartext an die Datenbank übergeben? (Im Normalfall wird die passcrypt-Option angewendet.)';
 $lang['TablesToLock']          = 'Eine Komma-separierte Liste von Tabellen, die vor Schreiboperationen gesperrt werden müssen.';
diff --git a/lib/plugins/authmysql/lang/pl/settings.php b/lib/plugins/authmysql/lang/pl/settings.php
index 68b5c6c22f7c8ba5a357015bc97ba7c5b1cfd41a..075a5e8803cb4b74f9a146d81b536ba22250b217 100644
--- a/lib/plugins/authmysql/lang/pl/settings.php
+++ b/lib/plugins/authmysql/lang/pl/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Paweł Jan Czochański <czochanski@gmail.com>
  * @author Mati <mackosa@wp.pl>
  * @author Maciej Helt <geraldziu@gmail.com>
diff --git a/lib/plugins/authpdo/_test/mysql.test.php b/lib/plugins/authpdo/_test/mysql.test.php
index ed86c81f672fae04bf823379f91e280d417c14fd..8cd14189b1736bd53baa8c3a651743c37f1ff552 100644
--- a/lib/plugins/authpdo/_test/mysql.test.php
+++ b/lib/plugins/authpdo/_test/mysql.test.php
@@ -52,6 +52,7 @@ class mysql_plugin_authpdo_test extends DokuWikiTest {
         if(!in_array($this->driver, pdo_drivers())) {
             $this->markTestSkipped("Skipped {$this->driver} tests. Missing pdo_{$this->driver} extension");
         }
+        $this->assertTrue(true); // avoid being marked as risky for having no assertion
     }
 
     /**
diff --git a/lib/plugins/authpdo/_test/sqlite.test.php b/lib/plugins/authpdo/_test/sqlite.test.php
index e532567c1de997d3d348ab469ea23ce328aefb24..35b612604f56d84b5d9c5d9369cb89d41975b2d7 100644
--- a/lib/plugins/authpdo/_test/sqlite.test.php
+++ b/lib/plugins/authpdo/_test/sqlite.test.php
@@ -33,6 +33,7 @@ class sqlite_plugin_authpdo_test extends DokuWikiTest {
         if(!class_exists('PDO') || !in_array('sqlite',PDO::getAvailableDrivers())) {
             $this->markTestSkipped('skipping all authpdo tests for sqlite.  Need PDO_sqlite extension');
         }
+        $this->assertTrue(true); // avoid being marked as risky for having no assertion
     }
 
     public function setUp() {
diff --git a/lib/plugins/authpgsql/lang/de-informal/settings.php b/lib/plugins/authpgsql/lang/de-informal/settings.php
index 3e3a0dc4edb0f141fa36e3fc729debddb7abce3b..2547e2c2fd2763f07e07d94ce35cbfd1bf6c1bd6 100644
--- a/lib/plugins/authpgsql/lang/de-informal/settings.php
+++ b/lib/plugins/authpgsql/lang/de-informal/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author Volker Bödker <volker@boedker.de>
  */
diff --git a/lib/plugins/authpgsql/lang/de/settings.php b/lib/plugins/authpgsql/lang/de/settings.php
index 061f56e459b1c5d269d86fae102313185d15d8e3..6a18811b3b74f91b49b57251f1c0cb0706ddd552 100644
--- a/lib/plugins/authpgsql/lang/de/settings.php
+++ b/lib/plugins/authpgsql/lang/de/settings.php
@@ -2,8 +2,9 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['server']                = 'PostgreSQL-Server';
 $lang['port']                  = 'Port des PostgreSQL-Servers.';
@@ -30,9 +31,9 @@ $lang['delUser']               = 'SQL-Kommando um einen Benutzer zu löschen.';
 $lang['delUserRefs']           = 'SQL-Kommando um einen Benutzer aus allen Gruppen zu entfernen.';
 $lang['updateUser']            = 'SQL-Kommando um das Profil eines Benutzers zu aktualisieren.';
 $lang['UpdateLogin']           = 'SQL-Bedingung um den Anmeldenamen eines Benutzers zu ändern.';
-$lang['UpdatePass']            = 'SQL-Bedingung um das Passwort eines Benutzers zu ändern.';
-$lang['UpdateEmail']           = 'SQL-Bedingung um die E-Mail-Adresse eines Benutzers zu ändern.';
-$lang['UpdateName']            = 'SQL-Bedingung um den Namen eines Benutzers zu ändern.';
-$lang['UpdateTarget']          = 'SQL-Bedingung zur eindeutigen Identifikation des Benutzers.';
+$lang['UpdatePass']            = 'SQL-Befehl um das Passwort eines Benutzers zu ändern.';
+$lang['UpdateEmail']           = 'SQL-Befehl um die E-Mail-Adresse eines Benutzers zu ändern.';
+$lang['UpdateName']            = 'SQL-Befehl um den Namen eines Benutzers zu ändern.';
+$lang['UpdateTarget']          = 'SQL-Filter zur eindeutigen Identifikation des Benutzers.';
 $lang['delUserGroup']          = 'SQL-Kommando um einen Benutzer aus einer angegeben Gruppe zu entfernen.';
 $lang['getGroupID']            = 'SQL-Kommando um den Primärschlüssel einer Gruppe auszulesen.';
diff --git a/lib/plugins/authpgsql/lang/pl/settings.php b/lib/plugins/authpgsql/lang/pl/settings.php
index 25a2afd4f199635a5140f6d3282ed6acd55d3a76..69422c0cfd95b6e32a6919e4ac1e3c54a62dce3b 100644
--- a/lib/plugins/authpgsql/lang/pl/settings.php
+++ b/lib/plugins/authpgsql/lang/pl/settings.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Mati <mackosa@wp.pl>
  */
 $lang['server']                = 'Twój serwer PostgreSQL';
diff --git a/lib/plugins/authplain/lang/az/lang.php b/lib/plugins/authplain/lang/az/lang.php
index f98eccde17c5136f3117c2edfcdcb33f1ee291d0..8d29d4cd6085109f60c1f708561294d77e81b637 100644
--- a/lib/plugins/authplain/lang/az/lang.php
+++ b/lib/plugins/authplain/lang/az/lang.php
@@ -1,6 +1,7 @@
 <?php
+
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  *
  */
-$lang['userexists']     = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.';
+$lang['userexists']            = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.';
diff --git a/lib/plugins/authplain/lang/de-informal/lang.php b/lib/plugins/authplain/lang/de-informal/lang.php
index f1d484947f1ab0244c6252b2ecf68cbf4d7a612c..c0870732a3bd226b05e14ef46641abe7a3ed31ce 100644
--- a/lib/plugins/authplain/lang/de-informal/lang.php
+++ b/lib/plugins/authplain/lang/de-informal/lang.php
@@ -1,6 +1,11 @@
 <?php
+
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  *
+ * @author rnck <dokuwiki@rnck.de>
  */
-$lang['userexists']     = 'Der Benutzername existiert leider schon.';
+$lang['userexists']            = 'Der Benutzername existiert leider schon.';
+$lang['usernotexists']         = 'Entschuldigung, dieser Nutzer existiert nicht.';
+$lang['writefail']             = 'Konnte Nutzer-Daten nicht modifizieren. Bitte informiere einen Admin.';
+$lang['protected']             = 'Die Daten für den Nutzer %s sind geschützt und können nicht verändert oder gelöscht werden.';
diff --git a/lib/plugins/authplain/lang/de/lang.php b/lib/plugins/authplain/lang/de/lang.php
index 6940ad027f4825714acf481212ca80d58c4dc2fd..e5243726547dda2eee8c3f6b9422c57c9ac36388 100644
--- a/lib/plugins/authplain/lang/de/lang.php
+++ b/lib/plugins/authplain/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Anika Henke <anika@selfthinker.org>
  * @author Carsten Perthel <carsten@cpesoft.com>
  */
diff --git a/lib/plugins/authplain/lang/el/lang.php b/lib/plugins/authplain/lang/el/lang.php
index 7f7e4e76dc617a654a18a61c7ae159df000f616f..1d83eb1701f426dbe352cacfb2af167f33aeaef7 100644
--- a/lib/plugins/authplain/lang/el/lang.php
+++ b/lib/plugins/authplain/lang/el/lang.php
@@ -1,6 +1,7 @@
 <?php
+
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  *
  */
-$lang['userexists']     = 'Αυτός ο λογαριασμός υπάρχει ήδη.';
+$lang['userexists']            = 'Αυτός ο λογαριασμός υπάρχει ήδη.';
diff --git a/lib/plugins/authplain/lang/pl/lang.php b/lib/plugins/authplain/lang/pl/lang.php
index 9a61b004764ff7030cd900587206b284a9b1bcb8..c4fb1a1ab55e303a6b44703c7a1eadec9ca97fa2 100644
--- a/lib/plugins/authplain/lang/pl/lang.php
+++ b/lib/plugins/authplain/lang/pl/lang.php
@@ -1,6 +1,7 @@
 <?php
+
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  *
  */
-$lang['userexists']     = 'Użytkownik o tej nazwie już istnieje.';
+$lang['userexists']            = 'Użytkownik o tej nazwie już istnieje.';
diff --git a/lib/plugins/config/_test/configuration.test.php b/lib/plugins/config/_test/configuration.test.php
index 0185fff9aac71ed9d42a80abd7665f458f6d6f97..7455461a4816cde1e7e844e7345c3207ca473e16 100644
--- a/lib/plugins/config/_test/configuration.test.php
+++ b/lib/plugins/config/_test/configuration.test.php
@@ -15,6 +15,8 @@ class plugin_config_configuration_test extends DokuWikiTest {
      * Load config files
      */
     function __construct() {
+        parent::__construct();
+
         $this->config = dirname(__FILE__).'/data/config.php';
         $this->meta   = dirname(__FILE__).'/data/metadata.php';
         require_once(dirname(__FILE__).'/../settings/config.class.php');
diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php
index e760a41c1fcf87b49707e5b5811e5dbc385e00eb..262ff46d9b76201690f791275512481cd70b545d 100644
--- a/lib/plugins/config/admin.php
+++ b/lib/plugins/config/admin.php
@@ -24,23 +24,23 @@ require_once(PLUGIN_SELF.'settings/extra.class.php');   // settings classes spec
  */
 class admin_plugin_config extends DokuWiki_Admin_Plugin {
 
-    var $_file = PLUGIN_METADATA;
-    var $_config = null;
-    var $_input = null;
-    var $_changed = false;          // set to true if configuration has altered
-    var $_error = false;
-    var $_session_started = false;
-    var $_localised_prompts = false;
+    protected $_file = PLUGIN_METADATA;
+    protected $_config = null;
+    protected $_input = null;
+    protected $_changed = false;          // set to true if configuration has altered
+    protected $_error = false;
+    protected $_session_started = false;
+    protected $_localised_prompts = false;
 
     /**
      * @return int
      */
-    function getMenuSort() { return 100; }
+    public function getMenuSort() { return 100; }
 
     /**
      * handle user request
      */
-    function handle() {
+    public function handle() {
         global $ID, $INPUT;
 
         if(!$this->_restore_session() || $INPUT->int('save') != 1 || !checkSecurityToken()) {
@@ -86,7 +86,7 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
     /**
      * output appropriate html
      */
-    function html() {
+    public function html() {
         $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here.
         global $lang;
         global $ID;
@@ -225,7 +225,7 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
     /**
      * @return boolean   true - proceed with handle, false - don't proceed
      */
-    function _restore_session() {
+    protected function _restore_session() {
 
         // dokuwiki closes the session before act_dispatch. $_SESSION variables are all set,
         // however they can't be changed without starting the session again
@@ -251,14 +251,14 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
         return true;
     }
 
-    function _close_session() {
+    protected function _close_session() {
       if ($this->_session_started) session_write_close();
     }
 
     /**
      * @param bool $prompts
      */
-    function setupLocale($prompts=false) {
+    public function setupLocale($prompts=false) {
 
         parent::setupLocale();
         if (!$prompts || $this->_localised_prompts) return;
@@ -271,7 +271,7 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
     /**
      * @return bool
      */
-    function _setup_localised_plugin_prompts() {
+    protected function _setup_localised_plugin_prompts() {
         global $conf;
 
         $langfile   = '/lang/'.$conf['lang'].'/settings.php';
@@ -328,7 +328,7 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
      *
      * @return array
      */
-    function getTOC() {
+    public function getTOC() {
         if (is_null($this->_config)) { $this->_config = new configuration($this->_file); }
         $this->setupLocale(true);
 
@@ -387,9 +387,18 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin {
      * @param string $id
      * @param string $text
      */
-    function _print_h1($id, $text) {
+    protected function _print_h1($id, $text) {
         ptln('<h1 id="'.$id.'">'.$text.'</h1>');
     }
 
-
+    /**
+     * Adds a translation to this plugin's language array
+     *
+     * @param string $key
+     * @param string $value
+     */
+    public function addLang($key, $value) {
+        if (!$this->localised) $this->setupLocale();
+        $this->lang[$key] = $value;
+    }
 }
diff --git a/lib/plugins/config/admin.svg b/lib/plugins/config/admin.svg
index 731a5a76acd9551487338284b7cd0bf23db196b9..ced98713eb51a961d37fa3fb76769e716aa5aacc 100644
--- a/lib/plugins/config/admin.svg
+++ b/lib/plugins/config/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 15.5A3.5 3.5 0 0 1 8.5 12 3.5 3.5 0 0 1 12 8.5a3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1-3.5 3.5m7.43-2.53c.04-.32.07-.64.07-.97 0-.33-.03-.66-.07-1l2.11-1.63c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.31-.61-.22l-2.49 1c-.52-.39-1.06-.73-1.69-.98l-.37-2.65A.506.506 0 0 0 14 2h-4c-.25 0-.46.18-.5.42l-.37 2.65c-.63.25-1.17.59-1.69.98l-2.49-1c-.22-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64L4.57 11c-.04.34-.07.67-.07 1 0 .33.03.65.07.97l-2.11 1.66c-.19.15-.25.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1.01c.52.4 1.06.74 1.69.99l.37 2.65c.04.24.25.42.5.42h4c.25 0 .46-.18.5-.42l.37-2.65c.63-.26 1.17-.59 1.69-.99l2.49 1.01c.22.08.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.66z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/config/lang/ca/lang.php b/lib/plugins/config/lang/ca/lang.php
index fcf4d27e15720b8db79f1a7a00eff16fbf079229..7ef19e74c4f12098daf81975bd98c25a7b35798e 100644
--- a/lib/plugins/config/lang/ca/lang.php
+++ b/lib/plugins/config/lang/ca/lang.php
@@ -10,6 +10,8 @@
  * @author daniel@6temes.cat
  * @author controlonline.net <controlonline.net@gmail.com>
  * @author Pauet <pauet@gmx.com>
+ * @author Àngel Pérez Beroy <aperezberoy@gmail.com>
+ * @author David Surroca <david.tb303@gmail.com>
  */
 $lang['menu']                  = 'Paràmetres de configuració';
 $lang['error']                 = 'Els paràmetres no s\'han pogut actualitzar per causa d\'un valor incorrecte Reviseu els canvis i torneu a enviar-los.<br />Els valors incorrectes es ressaltaran amb un marc vermell.';
diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php
index 11242de9481a56810dac578820eb2e8255d7b149..b3c9d3cf712fd261d9606b27942b94200aa8171a 100644
--- a/lib/plugins/config/lang/cs/lang.php
+++ b/lib/plugins/config/lang/cs/lang.php
@@ -16,6 +16,8 @@
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
  * @author Turkislav <turkislav@blabla.com>
  * @author Daniel Slováček <danslo@danslo.cz>
+ * @author Martin Růžička <martinr@post.cz>
+ * @author Pavel Krupička <pajdacz@gmail.com>
  */
 $lang['menu']                  = 'Správa nastavení';
 $lang['error']                 = 'Nastavení nebyla změněna kvůli alespoň jedné neplatné položce,
@@ -158,6 +160,11 @@ $lang['renderer_xhtml']        = 'Vykreslovací jádro pro hlavní (xhtml) výst
 $lang['renderer__core']        = '%s (jádro DokuWiki)';
 $lang['renderer__plugin']      = '%s (plugin)';
 $lang['dnslookups']            = 'DokuWiki zjišťuje DNS jména pro vzdálené IP adresy uživatelů, kteří editují stránky. Pokud máte pomalý, nebo nefunkční DNS server, nebo nepotřebujete tuto funkci, tak tuto volbu zrušte.';
+$lang['jquerycdn']             = 'Mají být skripty jQuery a jQuery UI načítány z CDN?
+Vzniknou tím další HTTP dotazy, ale soubory se mohou načíst rychleji a uživatelé je už mohou mít ve vyrovnávací paměti.';
+$lang['jquerycdn_o_0']         = 'Bez CDN, pouze lokální doručení';
+$lang['jquerycdn_o_jquery']    = 'CDN na code.jquery.com';
+$lang['jquerycdn_o_cdnjs']     = 'CDN na cdnjs.com';
 $lang['proxy____host']         = 'Název proxy serveru';
 $lang['proxy____port']         = 'Proxy port';
 $lang['proxy____user']         = 'Proxy uživatelské jméno';
diff --git a/lib/plugins/config/lang/de-informal/lang.php b/lib/plugins/config/lang/de-informal/lang.php
index b419c7b6289137b6eb9d35e592f3351e5413574a..2b07e02d84e8bbd5490e07ad05f9b8e9aa950c96 100644
--- a/lib/plugins/config/lang/de-informal/lang.php
+++ b/lib/plugins/config/lang/de-informal/lang.php
@@ -1,6 +1,7 @@
 <?php
+
 /**
- * German (informal) language file
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  *
  * @author Alexander Fischer <tbanus@os-forge.net>
  * @author Juergen Schwarzer <jschwarzer@freenet.de>
@@ -11,7 +12,7 @@
  * @author Frank Loizzi <contact@software.bacal.de>
  * @author Mateng Schimmerlos <mateng@firemail.de>
  * @author Volker Bödker <volker@boedker.de>
- * @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author rnck <dokuwiki@rnck.de>
  */
 $lang['menu']                  = 'Konfiguration';
 $lang['error']                 = 'Konfiguration wurde nicht aktualisiert auf Grund eines ungültigen Wertes. Bitte überprüfe deine Änderungen und versuche es erneut.<br />Die/der ungültige(n) Wert(e) werden durch eine rote Umrandung hervorgehoben.';
@@ -87,6 +88,7 @@ $lang['disableactions_subscription'] = 'Bestellen/Abbestellen';
 $lang['disableactions_wikicode'] = 'Zeige Quelle/Exportiere Rohdaten';
 $lang['disableactions_profile_delete'] = 'Eigenes Benutzerprofil löschen';
 $lang['disableactions_other']  = 'Weitere Aktionen (durch Komma getrennt)';
+$lang['disableactions_rss']    = 'XML Syndication (RSS)';
 $lang['auth_security_timeout'] = 'Zeitüberschreitung bei der Authentifizierung (Sekunden)';
 $lang['securecookie']          = 'Sollen Cookies, die via HTTPS gesetzt wurden nur per HTTPS versendet werden? Deaktiviere diese Option, wenn nur der Login deines Wikis mit SSL gesichert ist, aber das Betrachten des Wikis ungesichert geschieht.';
 $lang['remote']                = 'Aktiviert den externen API-Zugang. Diese Option erlaubt es externen Anwendungen von außen auf die XML-RPC-Schnittstelle oder anderweitigen Schnittstellen zuzugreifen.';
@@ -144,6 +146,10 @@ $lang['renderer_xhtml']        = 'Standard-Renderer für die normale (XHTML) Wik
 $lang['renderer__core']        = '%s (DokuWiki Kern)';
 $lang['renderer__plugin']      = '%s (Erweiterung)';
 $lang['dnslookups']            = 'DokuWiki löst die IP-Adressen von Benutzern zu deren Hostnamen auf. Wenn du einen langsamen, unbrauchbaren DNS-Server verwendest oder die Funktion nicht benötigst, dann sollte diese Option deaktivert sein.';
+$lang['jquerycdn']             = 'Sollen die jQuery und jQuery UI Skriptdateien von einem CDN geladen werden? Das verursacht zusätzliche HTTP Anfragen, aber die Dateien werden möglicherweise schneller geladen und Nutzer haben sie vielleicht bereits im Cache.';
+$lang['jquerycdn_o_0']         = 'Kein CDN, nur lokale Auslieferung';
+$lang['jquerycdn_o_jquery']    = 'CDN bei code.jquery.com';
+$lang['jquerycdn_o_cdnjs']     = 'CDN bei cdnjs.com';
 $lang['proxy____host']         = 'Proxyadresse';
 $lang['proxy____port']         = 'Proxyport';
 $lang['proxy____user']         = 'Benutzername für den Proxy';
@@ -191,6 +197,7 @@ $lang['xsendfile_o_2']         = 'Standard X-Sendfile-Header';
 $lang['xsendfile_o_3']         = 'Proprietärer Nginx X-Accel-Redirect-Header';
 $lang['showuseras_o_loginname'] = 'Login-Name';
 $lang['showuseras_o_username'] = 'Voller Name des Benutzers';
+$lang['showuseras_o_username_link'] = 'Kompletter Name des Benutzers als Interwiki-Link';
 $lang['showuseras_o_email']    = 'E-Mail-Adresse des Benutzers (je nach Mailguard-Einstellung verschleiert)';
 $lang['showuseras_o_email_link'] = 'E-Mail-Adresse des Benutzers als mailto:-Link';
 $lang['useheading_o_0']        = 'Niemals';
diff --git a/lib/plugins/config/lang/de/lang.php b/lib/plugins/config/lang/de/lang.php
index 7a8ecefa1d22f8bbb7cf600ab5a4f707980b89d0..e21d1dab45e3613708efef71da04272663e7fa16 100644
--- a/lib/plugins/config/lang/de/lang.php
+++ b/lib/plugins/config/lang/de/lang.php
@@ -19,6 +19,8 @@
  * @author Matthias Schulte <dokuwiki@lupo49.de>
  * @author Mateng Schimmerlos <mateng@firemail.de>
  * @author Anika Henke <anika@selfthinker.org>
+ * @author Marco Hofmann <xenadmin@meinekleinefarm.net>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['menu']                  = 'Konfiguration';
 $lang['error']                 = 'Die Einstellungen wurden wegen einer fehlerhaften Eingabe nicht gespeichert.<br /> Bitte überprüfen sie die rot umrandeten Eingaben und speichern Sie erneut.';
@@ -32,7 +34,7 @@ $lang['_configuration_manager'] = 'Konfigurations-Manager';
 $lang['_header_dokuwiki']      = 'DokuWiki';
 $lang['_header_plugin']        = 'Plugin';
 $lang['_header_template']      = 'Template';
-$lang['_header_undefined']     = 'Unbekannte Werte';
+$lang['_header_undefined']     = 'Nicht gesetzte Einstellungen';
 $lang['_basic']                = 'Basis';
 $lang['_display']              = 'Darstellung';
 $lang['_authentication']       = 'Authentifizierung';
@@ -69,7 +71,7 @@ $lang['fullpath']              = 'Den kompletten Dateipfad im Footer anzeigen';
 $lang['typography']            = 'Typographische Ersetzungen';
 $lang['dformat']               = 'Datumsformat (Siehe PHP <a href="http://php.net/strftime">strftime</a> Funktion)';
 $lang['signature']             = 'Signatur';
-$lang['showuseras']            = 'Was angezeigt werden soll, wenn der Benutzer, der zuletzt eine Seite bearbeitet hat, angezeigt wird';
+$lang['showuseras']            = 'Welche Informationen über einen Benutzer anzeigen, der zuletzt eine Seite bearbeitet hat';
 $lang['toptoclevel']           = 'Inhaltsverzeichnis bei dieser Überschriftengröße beginnen';
 $lang['tocminheads']           = 'Mindestanzahl der Überschriften die entscheidet, ob ein Inhaltsverzeichnis erscheinen soll';
 $lang['maxtoclevel']           = 'Maximale Überschriftengröße für Inhaltsverzeichnis';
@@ -99,9 +101,9 @@ $lang['auth_security_timeout'] = 'Authentifikations-Timeout (Sekunden)';
 $lang['securecookie']          = 'Sollen Cookies, die via HTTPS gesetzt wurden nur per HTTPS versendet werden? Deaktivieren Sie diese Option, wenn nur der Login Ihres Wikis mit SSL gesichert ist, aber das Betrachten des Wikis ungesichert geschieht.';
 $lang['remote']                = 'Aktiviert den externen API-Zugang. Diese Option erlaubt es externen Anwendungen von außen auf die XML-RPC-Schnittstelle oder anderweitigen Schnittstellen zu zugreifen.';
 $lang['remoteuser']            = 'Zugriff auf die externen Schnittstellen durch kommaseparierte Angabe von Benutzern oder Gruppen einschränken. Ein leeres Feld erlaubt Zugriff für jeden.';
-$lang['usewordblock']          = 'Spam-Blocking benutzen';
+$lang['usewordblock']          = 'Spam-Blocking (nach Wörterliste) benutzen';
 $lang['relnofollow']           = 'rel="nofollow" verwenden';
-$lang['indexdelay']            = 'Zeit bevor Suchmaschinenindexierung erlaubt ist';
+$lang['indexdelay']            = 'Zeit bevor Suchmaschinenindexierung erlaubt ist (in Sekunden)';
 $lang['mailguard']             = 'E-Mail-Adressen schützen';
 $lang['iexssprotect']          = 'Hochgeladene Dateien auf bösartigen JavaScript- und HTML-Code untersuchen';
 $lang['usedraft']              = 'Während des Bearbeitens automatisch Zwischenentwürfe speichern';
@@ -121,13 +123,13 @@ $lang['im_convert']            = 'Pfad zum ImageMagicks-Konvertierwerkzeug';
 $lang['jpg_quality']           = 'JPEG Kompressionsqualität (0-100)';
 $lang['fetchsize']             = 'Maximale Größe (in Bytes), die fetch.php von extern herunterladen darf';
 $lang['subscribers']           = 'E-Mail-Abos zulassen';
-$lang['subscribe_time']        = 'Zeit nach der Zusammenfassungs- und Änderungslisten-E-Mails verschickt werden; Dieser Wert sollte kleiner als die in recent_days konfigurierte Zeit sein.';
+$lang['subscribe_time']        = 'Zeit nach der Zusammenfassungs- und Änderungslisten-E-Mails verschickt werden (Sekunden); Dieser Wert sollte kleiner als die in recent_days konfigurierte Zeit sein.';
 $lang['notify']                = 'Änderungsmitteilungen an diese E-Mail-Adresse versenden';
 $lang['registernotify']        = 'Information über neu registrierte Benutzer an diese E-Mail-Adresse senden';
 $lang['mailfrom']              = 'Absender-E-Mail-Adresse für automatische Mails';
-$lang['mailprefix']            = 'Präfix für E-Mail-Betreff beim automatischen Versand von Benachrichtigungen';
+$lang['mailprefix']            = 'Präfix für E-Mail-Betreff beim automatischen Versand von Benachrichtigungen (Leer lassen um den Wiki-Titel zu verwenden)';
 $lang['htmlmail']              = 'Versendet optisch angenehmere, aber größere E-Mails im HTML-Format (multipart). Deaktivieren, um Text-Mails zu versenden.';
-$lang['sitemap']               = 'Google Sitemap erzeugen (Tage)';
+$lang['sitemap']               = 'Google Sitemap erzeugen (Tage). Mit 0 deaktivieren.';
 $lang['rss_type']              = 'XML-Feed-Format';
 $lang['rss_linkto']            = 'XML-Feed verlinken auf';
 $lang['rss_content']           = 'Welche Inhalte sollen im XML-Feed dargestellt werden?';
@@ -135,7 +137,7 @@ $lang['rss_update']            = 'XML-Feed Aktualisierungsintervall (Sekunden)';
 $lang['rss_show_summary']      = 'Bearbeitungs-Zusammenfassung im XML-Feed anzeigen';
 $lang['rss_media']             = 'Welche Änderungen sollen im XML-Feed angezeigt werden?';
 $lang['updatecheck']           = 'Automatisch auf Updates und Sicherheitswarnungen prüfen? DokuWiki muss sich dafür mit update.dokuwiki.org verbinden.';
-$lang['userewrite']            = 'URL rewriting';
+$lang['userewrite']            = 'Schöne Seitenadressen (URL rewriting)';
 $lang['useslash']              = 'Schrägstrich (/) als Namensraumtrenner in URLs verwenden';
 $lang['sepchar']               = 'Worttrenner für Seitennamen in URLs';
 $lang['canonical']             = 'Immer Links mit vollständigen URLs erzeugen';
@@ -151,13 +153,17 @@ $lang['xsendfile']             = 'Den X-Sendfile-Header nutzen, um Dateien direk
 $lang['renderer_xhtml']        = 'Standard-Renderer für die normale (XHTML) Wiki-Ausgabe.';
 $lang['renderer__core']        = '%s (DokuWiki Kern)';
 $lang['renderer__plugin']      = '%s (Plugin)';
-$lang['dnslookups']            = 'DokuWiki löst die IP-Adressen von Benutzern zu deren Hostnamen auf. Wenn du einen langsamen, unbrauchbaren DNS-Server verwendest oder die Funktion nicht benötigst, dann sollte diese Option deaktiviert sein.';
+$lang['dnslookups']            = 'DokuWiki löst die IP-Adressen von Benutzern zu deren Hostnamen auf. Wenn Sie einen langsamen oder unzuverlässigen DNS-Server verwenden oder die Funktion nicht benötigen, dann sollte diese Option deaktiviert sein.';
+$lang['jquerycdn']             = 'Sollen jQuery und jQuery UI Skriptdateien von einem CDN (Contend Delivery Network) geladen werden? Dadurch entstehen zusätzliche HTTP-Anfragen, aber die Daten werden voraussichtlich schneller geladen und eventuell sind sie auch schon beim Benutzer im Cache.';
+$lang['jquerycdn_o_0']         = 'Kein CDN, ausschließlich lokale Auslieferung';
+$lang['jquerycdn_o_jquery']    = 'CDN von code.jquery.com';
+$lang['jquerycdn_o_cdnjs']     = 'CDN von cdnjs.com';
 $lang['proxy____host']         = 'Proxy-Server';
 $lang['proxy____port']         = 'Proxy-Port';
 $lang['proxy____user']         = 'Proxy Benutzername';
 $lang['proxy____pass']         = 'Proxy Passwort';
 $lang['proxy____ssl']          = 'SSL bei Verbindung zum Proxy verwenden';
-$lang['proxy____except']       = 'Regulärer Ausdruck um Adressen zu beschreiben, für die kein Proxy verwendet werden soll';
+$lang['proxy____except']       = 'Regulärer Ausdruck für URLs, bei denen kein Proxy verwendet werden soll';
 $lang['safemodehack']          = 'Safemodehack verwenden';
 $lang['ftp____host']           = 'FTP-Host für Safemodehack';
 $lang['ftp____port']           = 'FTP-Port für Safemodehack';
@@ -170,7 +176,7 @@ $lang['typography_o_1']        = 'ohne einfache Anführungszeichen';
 $lang['typography_o_2']        = 'mit einfachen Anführungszeichen (funktioniert nicht immer)';
 $lang['userewrite_o_0']        = 'keines';
 $lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki';
+$lang['userewrite_o_2']        = 'DokuWiki intern';
 $lang['deaccent_o_0']          = 'aus';
 $lang['deaccent_o_1']          = 'Akzente und Umlaute umwandeln';
 $lang['deaccent_o_2']          = 'Umschrift';
diff --git a/lib/plugins/config/lang/el/lang.php b/lib/plugins/config/lang/el/lang.php
index a94bcc479a2a06be70d4997bbb9557f4d55f3c01..7904c63bd4586ed5c9bd062e23261c3e8a1cd0a8 100644
--- a/lib/plugins/config/lang/el/lang.php
+++ b/lib/plugins/config/lang/el/lang.php
@@ -1,11 +1,8 @@
 <?php
+
 /**
- * Greek language file
- *
- * Based on DokuWiki Version rc2007-05-24 english language file
- * Original english language file contents included for reference
- *
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
  * @author Christopher Smith <chris@jalakai.co.uk>
  * @author Thanos Massias <tm@thriasio.gr>
  * @author Αθανάσιος Νταής <homunculus@wana.gr>
@@ -13,6 +10,7 @@
  * @author George Petsagourakis <petsagouris@gmail.com>
  * @author Petros Vidalis <pvidalis@gmail.com>
  * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
+ * @author Zacharias Sdregas <zsdregas@sch.gr>
  */
 $lang['menu']                  = 'Ρυθμίσεις';
 $lang['error']                 = 'Οι ρυθμίσεις σας δεν έγιναν δεκτές λόγω λανθασμένης τιμής κάποιας ρύθμισης. Διορθώστε την λάθος τιμή και προσπαθήστε ξανά.
diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php
index fc8d02ef4f2f1d1d3faf4aadd0fc1a10b67f240f..68488fa7b0af90403711588ea14ac8a298358b11 100644
--- a/lib/plugins/config/lang/fr/lang.php
+++ b/lib/plugins/config/lang/fr/lang.php
@@ -26,6 +26,7 @@
  * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
  * @author Simon DELAGE <simon.geekitude@gmail.com>
  * @author Eric <ericstevenart@netc.fr>
+ * @author Olivier Humbert <trebmuh@tuxfamily.org>
  */
 $lang['menu']                  = 'Paramètres de configuration';
 $lang['error']                 = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.';
@@ -160,6 +161,10 @@ $lang['renderer_xhtml']        = 'Moteur de rendu du format de sortie principal
 $lang['renderer__core']        = '%s (cœur de DokuWiki)';
 $lang['renderer__plugin']      = '%s (extension)';
 $lang['dnslookups']            = 'DokuWiki effectuera une résolution du nom d\'hôte sur les adresses IP des utilisateurs modifiant des pages. Si vous ne possédez pas de serveur DNS, que ce dernier est lent ou que vous ne souhaitez pas utiliser cette fonctionnalité : désactivez-la.';
+$lang['jquerycdn']             = 'Faut-il distribuer les scripts JQuery et JQuery UI depuis un CDN ? Cela ajoute une requête HTTP, mais les fichiers peuvent se charger plus vite et les internautes les ont peut-être déjà en cache.';
+$lang['jquerycdn_o_0']         = 'Non : utilisation de votre serveur.';
+$lang['jquerycdn_o_jquery']    = 'Oui : CDN code.jquery.com.';
+$lang['jquerycdn_o_cdnjs']     = 'Oui : CDN cdnjs.com.';
 $lang['proxy____host']         = 'Mandataire (proxy) - Hôte';
 $lang['proxy____port']         = 'Mandataire - Port';
 $lang['proxy____user']         = 'Mandataire - Identifiant';
diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php
index 5cf8b7b9459db62814c4d0c766bf0760ac6a0958..3bb4afc5142064ce63378fa7941b6b227f0cb6e3 100644
--- a/lib/plugins/config/lang/it/lang.php
+++ b/lib/plugins/config/lang/it/lang.php
@@ -17,6 +17,7 @@
  * @author snarchio@gmail.com
  * @author Torpedo <dgtorpedo@gmail.com>
  * @author Riccardo <riccardofila@gmail.com>
+ * @author Paolo <paolopoz12@gmail.com>
  */
 $lang['menu']                  = 'Configurazione Wiki';
 $lang['error']                 = 'Impostazioni non aggiornate a causa di un valore non corretto, controlla le modifiche apportate e salva di nuovo.
@@ -152,6 +153,10 @@ $lang['renderer_xhtml']        = 'Renderer da usare per la visualizzazione del w
 $lang['renderer__core']        = '%s (dokuwiki)';
 $lang['renderer__plugin']      = '%s (plugin)';
 $lang['dnslookups']            = 'Dokuwiki farà il lookup dei nomi host per ricavare l\'indirizzo IP remoto degli utenti che modificano le pagine. Se hai un DNS lento o non funzionante o se non vuoi questa funzione, disabilita l\'opzione';
+$lang['jquerycdn']             = 'Vuoi che gli script jQuery e jQuery UI siano caricati da una CDN? Questo richiederà richieste HTTP aggiuntive ma i file potrebbero caricarsi più velocemente e gli utenti potrebbero averli già in cache.';
+$lang['jquerycdn_o_0']         = 'Nessuna CDN, solo consegna locale';
+$lang['jquerycdn_o_jquery']    = 'CDN presso code.jquery.com';
+$lang['jquerycdn_o_cdnjs']     = 'CDN presso cdnjs.com';
 $lang['proxy____host']         = 'Nome server proxy';
 $lang['proxy____port']         = 'Porta proxy';
 $lang['proxy____user']         = 'Nome utente proxy';
diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php
index bdb670f11d5ccbaff0600aea783d4cfe0adb4b6a..5695ce1375484b07dd07ae519cd41bd1b8f3c46f 100644
--- a/lib/plugins/config/lang/nl/lang.php
+++ b/lib/plugins/config/lang/nl/lang.php
@@ -17,6 +17,7 @@
  * @author Ricardo Guijt <ricardoguijt@gmail.com>
  * @author Gerrit <klapinklapin@gmail.com>
  * @author Hugo Smet <hugo.smet@scarlet.be>
+ * @author mark prins <mprins@users.sf.net>
  */
 $lang['menu']                  = 'Configuratie-instellingen';
 $lang['error']                 = 'De instellingen zijn niet gewijzigd wegens een incorrecte waarde, kijk je wijzigingen na en sla dan opnieuw op.<br />Je kunt de incorrecte waarde(s) herkennen aan de rode rand.';
@@ -150,6 +151,10 @@ $lang['renderer_xhtml']        = 'Weergavesysteem voor de standaard (xhtml) wiki
 $lang['renderer__core']        = '%s (dokuwiki core)';
 $lang['renderer__plugin']      = '%s (plugin)';
 $lang['dnslookups']            = 'DokuWiki zoekt de hostnamen van IP-adressen van gebruikers die pagina wijzigen op. Schakel deze optie uit als je geen of een langzame DNS server hebt.';
+$lang['jquerycdn']             = 'Moet er een CDN gebruikt worden om de jQuery en jQuery UI bestanden te laden. Dit zorgt voor extra HTTP verzoeken, maar bestanden laden mogelijk sneller en zitten misschien al in de cache van de gebruiker.';
+$lang['jquerycdn_o_0']         = 'Geen CDN gebruiken';
+$lang['jquerycdn_o_jquery']    = 'Gebruik code.jquery.com CDN';
+$lang['jquerycdn_o_cdnjs']     = 'Gebruik cdnjs.com CDN';
 $lang['proxy____host']         = 'Proxy server';
 $lang['proxy____port']         = 'Proxy port';
 $lang['proxy____user']         = 'Proxy gebruikersnaam';
diff --git a/lib/plugins/config/lang/pl/lang.php b/lib/plugins/config/lang/pl/lang.php
index 48514812c5a09fef848b95742923e0397c5cc472..55db6eba4328718bd1d245139aafef8c4f9d8e1e 100644
--- a/lib/plugins/config/lang/pl/lang.php
+++ b/lib/plugins/config/lang/pl/lang.php
@@ -1,8 +1,8 @@
 <?php
+
 /**
- * polish language file
- *
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
  * @author Grzegorz Żur <grzegorz.zur@gmail.com>
  * @author Mariusz Kujawski <marinespl@gmail.com>
  * @author Maciej Kurczewski <pipijajko@gmail.com>
diff --git a/lib/plugins/config/lang/ru/lang.php b/lib/plugins/config/lang/ru/lang.php
index 1b86f4d3bbf55b21583def0e05d9dc272d09055f..a3fd3bfda6964277b9906b628776f45d24448728 100644
--- a/lib/plugins/config/lang/ru/lang.php
+++ b/lib/plugins/config/lang/ru/lang.php
@@ -20,6 +20,7 @@
  * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
  * @author RainbowSpike <1@2.ru>
  * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
+ * @author alexey <xeenych@gmail.com>
  */
 $lang['menu']                  = 'Настройки вики';
 $lang['error']                 = 'Настройки не были сохранены из-за ошибки в одном из значений. Пожалуйста, проверьте свои изменения и попробуйте ещё раз.<br />Неправильные значения будут обведены красной рамкой.';
@@ -153,6 +154,9 @@ $lang['renderer_xhtml']        = 'Обработчик основного (xhtml
 $lang['renderer__core']        = '%s (ядро «Докувики»)';
 $lang['renderer__plugin']      = '%s (плагин)';
 $lang['dnslookups']            = '«Докувики» ищет DNS-имена пользователей, редактирующих страницы. Если у вас нет DNS-сервера или он работает медленно, рекомендуем отключить эту опцию.';
+$lang['jquerycdn_o_0']         = 'Не использовать CDN. Использовать только локальную доставку';
+$lang['jquerycdn_o_jquery']    = 'Использовать CDN с code.jquery.com';
+$lang['jquerycdn_o_cdnjs']     = 'Использовать CDN с cdnjs.com';
 $lang['proxy____host']         = 'proxy-адрес';
 $lang['proxy____port']         = 'proxy-порт';
 $lang['proxy____user']         = 'proxy-имя пользователя';
diff --git a/lib/plugins/config/lang/zh/intro.txt b/lib/plugins/config/lang/zh/intro.txt
index 30cb650042c8bceb046eb0bd019cfdcc49a64e49..43aa0a9337cea00c487df0533e9c32de0bc8de0c 100644
--- a/lib/plugins/config/lang/zh/intro.txt
+++ b/lib/plugins/config/lang/zh/intro.txt
@@ -1,6 +1,6 @@
 ====== 配置管理器 ======
 
-使用本页中的内容来控制您的 Dokuwiki 设置。  每个单独设置的相关信息请参阅 [[doku>config]]。 配置管理器的更多信息请参阅 [[doku>plugin:config]]。
+使用本页中的内容来控制您的 DokuWiki 设置。  每个单独设置的相关信息请参阅 [[doku>config]]。 配置管理器的更多信息请参阅 [[doku>plugin:config]]。
 
 淡红色背景的项目被保护,不能通过这个管理器更改。 蓝色背景的项目是系统的默认值,白色背景的项目是您作出更改的项目。蓝色和白色的设置项目都可以更改。
 
diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php
index 60662c0603ed80669fc3b33a9e7110cdd629310c..4a4eba44b05807df26555ec1b8f63e0112c0f609 100644
--- a/lib/plugins/config/lang/zh/lang.php
+++ b/lib/plugins/config/lang/zh/lang.php
@@ -20,6 +20,8 @@
  * @author tai <tai_tang@126.com>
  * @author 高博 <bobnemo1983@gmail.com>
  * @author hznupeter <qiujiongtao@163.com>
+ * @author kuma <kuma000@qq.com>
+ * @author phy25 <git@phy25.com>
  */
 $lang['menu']                  = '配置设置';
 $lang['error']                 = '由于非法参数,设置没有更新。请检查您做的改动并重新提交。
@@ -155,8 +157,10 @@ $lang['xsendfile']             = '使用 X-Sendfile 头让服务器发送状态
 $lang['renderer_xhtml']        = '主维基页面 (xhtml) 输出使用的渲染';
 $lang['renderer__core']        = '%s(DokuWiki 内核)';
 $lang['renderer__plugin']      = '%s(插件)';
-$lang['dnslookups']            = 'Dokuwiki 将会查询用户编辑页面的远程 IP 地址的主机名。如果您的 DNS 服务器比较缓慢或者不工作,或者您不想要这个功能,请禁用此选项。';
-$lang['jquerycdn_o_0']         = '没有CDN,只有本地库。';
+$lang['dnslookups']            = 'DokuWiki 将会查询用户编辑页面的远程 IP 地址的主机名。如果您的 DNS 服务器比较缓慢或者不工作,或者您不想要这个功能,请禁用此选项。';
+$lang['jquerycdn']             = 'jQuery和jQuery UI脚本文件应该从CDN加载吗?
+这会增加额外的HTTP请求,但文件加载可能会更快,且用户可能已经缓存过。';
+$lang['jquerycdn_o_0']         = '不使用CDN,只使用本地库';
 $lang['jquerycdn_o_jquery']    = '在code.jquery.com上的CDN';
 $lang['jquerycdn_o_cdnjs']     = '在cdnjs.com上的CDN';
 $lang['proxy____host']         = '代理服务器的名称';
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index 102fc85469ae25e41d643a79a3c0da22adc7d943..965c2a38c6a2bcc58aa99d34babe705882421cd6 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -513,11 +513,11 @@ if (!class_exists('setting')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
-         * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
+         * @param admin_plugin_config $plugin object of config plugin
+         * @param bool $echo true: show inputted value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        public function html(&$plugin, $echo=false) {
+        public function html(admin_plugin_config $plugin, $echo=false) {
             $disable = '';
 
             if ($this->is_protected()) {
@@ -565,10 +565,10 @@ if (!class_exists('setting')) {
         /**
          * Returns the localized prompt
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @return string text
          */
-        public function prompt(&$plugin) {
+        public function prompt(admin_plugin_config $plugin) {
             $prompt = $plugin->getLang($this->_key);
             if (!$prompt) $prompt = htmlspecialchars(str_replace(array('____','_'),' ',$this->_key));
             return $prompt;
@@ -738,11 +738,11 @@ if (!class_exists('setting_array')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo=false) {
+        function html(admin_plugin_config $plugin, $echo=false) {
             $disable = '';
 
             if ($this->is_protected()) {
@@ -774,11 +774,11 @@ if (!class_exists('setting_string')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo=false) {
+        function html(admin_plugin_config $plugin, $echo=false) {
             $disable = '';
 
             if ($this->is_protected()) {
@@ -835,11 +835,11 @@ if (!class_exists('setting_password')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo=false) {
+        function html(admin_plugin_config $plugin, $echo=false) {
 
             $disable = $this->is_protected() ? 'disabled="disabled"' : '';
 
@@ -993,11 +993,11 @@ if (!class_exists('setting_onoff')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo = false) {
+        function html(admin_plugin_config $plugin, $echo = false) {
             $disable = '';
 
             if ($this->is_protected()) {
@@ -1047,11 +1047,11 @@ if (!class_exists('setting_multichoice')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo = false) {
+        function html(admin_plugin_config $plugin, $echo = false) {
             $disable = '';
             $nochoice = '';
 
@@ -1247,11 +1247,11 @@ if (!class_exists('setting_multicheckbox')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show input value, when error occurred, otherwise the stored setting
          * @return string[] with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo=false) {
+        function html(admin_plugin_config $plugin, $echo=false) {
 
             $disable = '';
 
diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php
index 2445577d1288ae91e933c571b5b56edb7a2c6e10..41af42247dd664e4782552912436f2670d2ee8ab 100644
--- a/lib/plugins/config/settings/extra.class.php
+++ b/lib/plugins/config/settings/extra.class.php
@@ -172,20 +172,19 @@ if (!class_exists('setting_disableactions')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return array with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo=false) {
+        function html(admin_plugin_config $plugin, $echo=false) {
             global $lang;
 
             // make some language adjustments (there must be a better way)
             // transfer some DokuWiki language strings to the plugin
-            if (!$plugin->localised) $plugin->setupLocale();
-            $plugin->lang[$this->_key.'_revisions'] = $lang['btn_revs'];
-
-            foreach ($this->_choices as $choice)
-              if (isset($lang['btn_'.$choice])) $plugin->lang[$this->_key.'_'.$choice] = $lang['btn_'.$choice];
+            $plugin->addLang($this->_key.'_revisions', $lang['btn_revs']);
+            foreach ($this->_choices as $choice) {
+              if (isset($lang['btn_'.$choice])) $plugin->addLang($this->_key.'_'.$choice, $lang['btn_'.$choice]);
+            }
 
             return parent::html($plugin, $echo);
         }
@@ -281,22 +280,26 @@ if (!class_exists('setting_renderer')) {
         /**
          * Build html for label and input of setting
          *
-         * @param DokuWiki_Plugin $plugin object of config plugin
+         * @param admin_plugin_config $plugin object of config plugin
          * @param bool            $echo   true: show inputted value, when error occurred, otherwise the stored setting
          * @return array with content array(string $label_html, string $input_html)
          */
-        function html(&$plugin, $echo=false) {
+        function html(admin_plugin_config $plugin, $echo=false) {
 
             // make some language adjustments (there must be a better way)
             // transfer some plugin names to the config plugin
-            if (!$plugin->localised) $plugin->setupLocale();
-
-            foreach ($this->_choices as $choice) {
-                if (!isset($plugin->lang[$this->_key.'_o_'.$choice])) {
-                    if (!isset($this->_prompts[$choice])) {
-                        $plugin->lang[$this->_key.'_o_'.$choice] = sprintf($plugin->lang['renderer__core'],$choice);
+            foreach($this->_choices as $choice) {
+                if(!$plugin->getLang($this->_key . '_o_' . $choice)) {
+                    if(!isset($this->_prompts[$choice])) {
+                        $plugin->addLang(
+                            $this->_key . '_o_' . $choice,
+                            sprintf($plugin->getLang('renderer__core'), $choice)
+                        );
                     } else {
-                        $plugin->lang[$this->_key.'_o_'.$choice] = sprintf($plugin->lang['renderer__plugin'],$this->_prompts[$choice]);
+                        $plugin->addLang(
+                            $this->_key . '_o_' . $choice,
+                            sprintf($plugin->getLang('renderer__plugin'), $this->_prompts[$choice])
+                        );
                     }
                 }
             }
diff --git a/lib/plugins/extension/admin.svg b/lib/plugins/extension/admin.svg
index 1ed0d45f4d5d9ef9b5480b7724e243bc7f1beb9b..6bd7c0ddd0c9cfc109aecd4660a1a555710996d0 100644
--- a/lib/plugins/extension/admin.svg
+++ b/lib/plugins/extension/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 11H19V7a2 2 0 0 0-2-2h-4V3.5A2.5 2.5 0 0 0 10.5 1 2.5 2.5 0 0 0 8 3.5V5H4a2 2 0 0 0-2 2v3.8h1.5c1.5 0 2.7 1.2 2.7 2.7 0 1.5-1.2 2.7-2.7 2.7H2V20a2 2 0 0 0 2 2h3.8v-1.5c0-1.5 1.2-2.7 2.7-2.7 1.5 0 2.7 1.2 2.7 2.7V22H17a2 2 0 0 0 2-2v-4h1.5a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-2.5-2.5z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/cs/lang.php b/lib/plugins/extension/lang/cs/lang.php
index a9abaec93deeda6afba12bf8341c30c802401340..4438376dd4e22a363e891569dde0da2749d2c7e7 100644
--- a/lib/plugins/extension/lang/cs/lang.php
+++ b/lib/plugins/extension/lang/cs/lang.php
@@ -6,12 +6,13 @@
  * @author Viktor Zavadil <vzavadil@newps.cz>
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
  * @author Turkislav <turkislav@blabla.com>
+ * @author Martin Růžička <martinr@post.cz>
  */
-$lang['menu']                  = 'Správce rozšíření';
+$lang['menu']                  = 'Správa rozšíření';
 $lang['tab_plugins']           = 'Instalované moduly';
 $lang['tab_templates']         = 'Instalované šablony';
 $lang['tab_search']            = 'Vyhledej a instaluj';
-$lang['tab_install']           = 'Ruční instalování';
+$lang['tab_install']           = 'Ruční instalace';
 $lang['notimplemented']        = 'Tato vychytávka není dosud implementována';
 $lang['notinstalled']          = 'Toto rozšíření není instalováno';
 $lang['alreadyenabled']        = 'Toto rozšíření je již povoleno';
diff --git a/lib/plugins/extension/lang/de-informal/intro_install.txt b/lib/plugins/extension/lang/de-informal/intro_install.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2aa2e0617ba927e45dec5c85bad6d23d85d000c0
--- /dev/null
+++ b/lib/plugins/extension/lang/de-informal/intro_install.txt
@@ -0,0 +1 @@
+Hier kannst Du Plugins und Templates von Hand installieren indem Du sie hochlädst oder eine Download-URL angibst. 
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/de-informal/intro_plugins.txt b/lib/plugins/extension/lang/de-informal/intro_plugins.txt
new file mode 100644
index 0000000000000000000000000000000000000000..13ba705197b11741ab16dea655daf9c0059d3afb
--- /dev/null
+++ b/lib/plugins/extension/lang/de-informal/intro_plugins.txt
@@ -0,0 +1 @@
+Dies sind die Plugins, die bereits installiert sind. Du kannst sie hier an- oder abschalten oder sie komplett deinstallieren. Außerdem werden hier Updates zu den installiereten Plugins angezeigt. Bitte lies vor einem Update die zugehörige Dokumentation.
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/de-informal/intro_search.txt b/lib/plugins/extension/lang/de-informal/intro_search.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9300f9edf3ce1f2aeb48e664e12b9e76833ac936
--- /dev/null
+++ b/lib/plugins/extension/lang/de-informal/intro_search.txt
@@ -0,0 +1 @@
+Dieser Tab gibt Dir Zugriff auf alle vorhandenen Plugins und Templates für DokuWiki. Bitte bedenke, dass jede installierte Erweiterung ein Sicherheitsrisiko darstellen kann. Du solltest vor einer Installation die [[doku>security#plugin_security|Plugin Security]] Informationen lesen.
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/de-informal/intro_templates.txt b/lib/plugins/extension/lang/de-informal/intro_templates.txt
new file mode 100644
index 0000000000000000000000000000000000000000..aac264388910e16627e9f57102b56d21d5e53ed4
--- /dev/null
+++ b/lib/plugins/extension/lang/de-informal/intro_templates.txt
@@ -0,0 +1 @@
+Die folgenden Templates sind momentan in deinem DokuWiki installiert. Du kannst das zu verwendende Template im [[?do=admin&page=config|Konfigurations-Manager]] auswählen.
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/de-informal/lang.php b/lib/plugins/extension/lang/de-informal/lang.php
new file mode 100644
index 0000000000000000000000000000000000000000..f0cee18858e8ccc395e397f50ece73d4532fc9d2
--- /dev/null
+++ b/lib/plugins/extension/lang/de-informal/lang.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Felix <j.felix@mueller-donath.de>
+ */
+$lang['menu']                  = 'Erweiterungen verwalten';
+$lang['tab_plugins']           = 'Installierte Plugins';
+$lang['tab_templates']         = 'Installierte Templates';
+$lang['tab_search']            = 'Suchen und installieren';
+$lang['tab_install']           = 'Manuelle Installation';
+$lang['notimplemented']        = 'Dieses Feature wurde leider noch nicht eingebaut';
+$lang['notinstalled']          = 'Diese Erweiterung ist nicht installiert';
+$lang['alreadyenabled']        = 'Diese Erweiterung wurde bereits aktiviert';
+$lang['alreadydisabled']       = 'Diese Erweiterung wurde bereits deaktiviert';
+$lang['pluginlistsaveerror']   = 'Fehler beim Speichern der Plugin-Liste';
+$lang['unknownauthor']         = 'Unbekannter Autor';
+$lang['unknownversion']        = 'Unbekannte Version';
+$lang['btn_info']              = 'Zeige mehr Infos';
+$lang['btn_update']            = 'Update';
+$lang['btn_uninstall']         = 'Deinstallation';
+$lang['btn_enable']            = 'Aktivieren';
+$lang['btn_disable']           = 'Deaktivieren';
+$lang['btn_install']           = 'Installation';
+$lang['btn_reinstall']         = 'Neuinstallation';
+$lang['js']['reallydel']       = 'Möchtest du diese Erweiterung wirklich deinstallieren';
+$lang['js']['display_viewoptions'] = 'Einstellungen anzeigen:';
+$lang['js']['display_enabled'] = 'aktiviert';
+$lang['js']['display_disabled'] = 'deaktiviert';
+$lang['js']['display_updatable'] = 'Update verfügbar';
+$lang['search_for']            = 'Suche Erweiterung:';
diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php
index a47c9360f65d1e02d7b238d403048cb3c0b0bcfe..68ce0adb558f644a64994dfcf733b562a30e9b22 100644
--- a/lib/plugins/extension/lang/de/lang.php
+++ b/lib/plugins/extension/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author H. Richard <wanderer379@t-online.de>
  * @author Joerg <scooter22@gmx.de>
  * @author Simon <st103267@stud.uni-stuttgart.de>
@@ -10,12 +10,13 @@
  * @author Dominik Mahr <drache.mahr@gmx.de>
  * @author Noel Tilliot <noeltilliot@byom.de>
  * @author Philip Knack <p.knack@stollfuss.de>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['menu']                  = 'Erweiterungen verwalten';
 $lang['tab_plugins']           = 'Installierte Plugins';
 $lang['tab_templates']         = 'Installierte Templates';
 $lang['tab_search']            = 'Suchen und Installieren';
-$lang['tab_install']           = 'Händisch installieren';
+$lang['tab_install']           = 'Manuell installieren';
 $lang['notimplemented']        = 'Dieses Fähigkeit/Eigenschaft wurde noch nicht implementiert';
 $lang['notinstalled']          = 'Diese Erweiterung ist nicht installiert';
 $lang['alreadyenabled']        = 'Diese Erweiterung ist bereits aktiviert';
@@ -45,10 +46,10 @@ $lang['bugs_features']         = 'Bugs';
 $lang['tags']                  = 'Schlagworte';
 $lang['author_hint']           = 'Suche weitere Erweiterungen dieses Autors';
 $lang['installed']             = 'Installiert:';
-$lang['downloadurl']           = 'URL zum Herunterladen';
+$lang['downloadurl']           = 'URL zum Herunterladen:';
 $lang['repository']            = 'Quelle:';
 $lang['unknown']               = '<em>unbekannt</em>';
-$lang['installed_version']     = 'Installierte Version';
+$lang['installed_version']     = 'Installierte Version:';
 $lang['install_date']          = 'Ihr letztes Update:';
 $lang['available_version']     = 'Verfügbare Version: ';
 $lang['compatible']            = 'Kompatibel mit:';
@@ -85,10 +86,10 @@ $lang['update_available']      = '<strong>Update:</strong> Version %s steht zum
 $lang['wrong_folder']          = '<strong>Plugin wurde nicht korrekt installiert:</strong> Benennen Sie das Plugin-Verzeichnis "%s" in "%s" um.';
 $lang['url_change']            = '<strong>URL geändert:</strong> Die Download URL wurde seit dem letzten Download geändert. Internetadresse vor Aktualisierung der Erweiterung auf Gültigkeit prüfen.<br />Neu: %s<br />Alt: %s';
 $lang['error_badurl']          = 'URLs sollten mit http oder https beginnen';
-$lang['error_dircreate']       = 'Temporären Ordner konnte nicht erstellt werden, um Download zu empfangen';
+$lang['error_dircreate']       = 'Temporärer Ordner konnte nicht erstellt werden, um Download zu abzuspeichern';
 $lang['error_download']        = 'Download der Datei: %s nicht möglich.';
 $lang['error_decompress']      = 'Die heruntergeladene Datei konnte nicht entpackt werden. Dies kann die Folge eines fehlerhaften Downloads sein. In diesem Fall sollten Sie versuchen den Vorgang zu wiederholen. Es kann auch die Folge eines unbekannten Kompressionsformates sein, in diesem ​​Fall müssen Sie die Datei selber herunterladen und manuell installieren.';
-$lang['error_findfolder']      = 'Das Erweiterungs-Verzeichnis konnte nicht identifiziert werden, laden und installieren sie die Datei manuell.';
+$lang['error_findfolder']      = 'Das Erweiterungs-Verzeichnis konnte nicht identifiziert werden, laden und installieren Sie die Datei manuell.';
 $lang['error_copy']            = 'Beim Versuch Dateien in den Ordner <em>%s</em>: zu installieren trat ein Kopierfehler auf. Die Dateizugriffsberechtigungen könnten falsch sein. Dies kann an einem unvollständig installierten Plugin liegen und beeinträchtigt somit die Stabilität Ihre Wiki-Installation.';
 $lang['noperms']               = 'Das Erweiterungs-Verzeichnis ist schreibgeschützt';
 $lang['notplperms']            = 'Das Template-Verzeichnis ist schreibgeschützt';
diff --git a/lib/plugins/extension/lang/zh/intro_search.txt b/lib/plugins/extension/lang/zh/intro_search.txt
index 0059075c01a1d8b2e3a482d46389a9a0e62fe282..ebc7e99ad04f11a3f2733959dabd23f43d46b25a 100644
--- a/lib/plugins/extension/lang/zh/intro_search.txt
+++ b/lib/plugins/extension/lang/zh/intro_search.txt
@@ -1 +1 @@
-这个标签会为你展示所有DokuWiki的第三方插件和模板。但你需要知道这些由第三方提供的代码可能会给你带来**安全方面的风险**,你最好先读一下[[doku>security#plugin_security|插件安全性]]。
\ No newline at end of file
+这个标签会为你展示所有 DokuWiki 的第三方插件和模板。但你需要知道这些由第三方提供的代码可能会给你带来**安全方面的风险**,你最好先读一下[[doku>security#plugin_security|插件安全性]]。
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/zh/intro_templates.txt b/lib/plugins/extension/lang/zh/intro_templates.txt
index 20575d38179c1007362cc371cec37c21862c4d76..10c1bedff402c89b6b169685eaf159bb720a86a3 100644
--- a/lib/plugins/extension/lang/zh/intro_templates.txt
+++ b/lib/plugins/extension/lang/zh/intro_templates.txt
@@ -1 +1 @@
-DokuWiki当前所使用的模板已经安装了,你可以在[[?do=admin&page=config|配置管理器]]里选择你要的模板。
\ No newline at end of file
+DokuWiki 当前所使用的模板已经安装了,你可以在[[?do=admin&page=config|配置管理器]]里选择你要的模板。
\ No newline at end of file
diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php
index f07bee0ac699ac8acb1976173bd2bae98edd1d62..0e27e89a3cfc195d855c586b60d2f10084d9c5f1 100644
--- a/lib/plugins/extension/lang/zh/lang.php
+++ b/lib/plugins/extension/lang/zh/lang.php
@@ -8,6 +8,7 @@
  * @author qinghao <qingxianhao@gmail.com>
  * @author lainme <lainme993@gmail.com>
  * @author Errol <errol@hotmail.com>
+ * @author phy25 <git@phy25.com>
  */
 $lang['menu']                  = '扩展管理器';
 $lang['tab_plugins']           = '安装插件';
@@ -91,9 +92,9 @@ $lang['error_copy']            = '在尝试安装文件到目录 <em>%s</em> 时
 $lang['noperms']               = '扩展目录不可写';
 $lang['notplperms']            = '模板目录不可写';
 $lang['nopluginperms']         = '插件目录不可写';
-$lang['git']                   = '这个扩展是通过 git 安装的,您可能不想在这里升级它';
+$lang['git']                   = '这个扩展是通过 Git 安装的,您可能不想在这里升级它';
 $lang['auth']                  = '这个认证插件没有在配置中启用,请考虑禁用它。';
 $lang['install_url']           = '从 URL 安装:';
 $lang['install_upload']        = '上传扩展:';
 $lang['repo_error']            = '无法连接到插件仓库。请确定您的服务器可以连接 www.dokuwiki.org 并检查您的代理设置。';
-$lang['nossl']                 = '您的 PHP 似乎没有 SSL 支持。很多 Dokuwiki 扩展将无法下载。';
+$lang['nossl']                 = '您的 PHP 似乎不支持 SSL。很多 DokuWiki 扩展将无法下载。';
diff --git a/lib/plugins/popularity/admin.svg b/lib/plugins/popularity/admin.svg
index eefce2fb64bbd81ccdb741cafdcf84ff93d0b6e2..820fc8cdda19f8c0e1733f7b111415bd963c5472 100644
--- a/lib/plugins/popularity/admin.svg
+++ b/lib/plugins/popularity/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M2,21L23,12L2,3V10L17,12L2,14V21Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 21l21-9L2 3v7l15 2-15 2v7z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/popularity/lang/de-informal/lang.php b/lib/plugins/popularity/lang/de-informal/lang.php
index 69efa7470e520cdf6e02a76092a495ee56cc192b..ad533ab69f565b9946450d8f954154cd795ee31f 100644
--- a/lib/plugins/popularity/lang/de-informal/lang.php
+++ b/lib/plugins/popularity/lang/de-informal/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Alexander Fischer <tbanus@os-forge.net>
  * @author Juergen Schwarzer <jschwarzer@freenet.de>
  * @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/popularity/lang/de/lang.php b/lib/plugins/popularity/lang/de/lang.php
index a86fce50d37fc4b92dc0a92409ecf21b1c6042aa..0bf692aac1682bca10776c9cfe53769255cc574b 100644
--- a/lib/plugins/popularity/lang/de/lang.php
+++ b/lib/plugins/popularity/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Leo Moll <leo@yeasoft.com>
  * @author Florian Anderiasch <fa@art-core.org>
  * @author Robin Kluth <commi1993@gmail.com>
@@ -11,13 +11,13 @@
  * @author Dirk Einecke <dirk@dirkeinecke.de>
  * @author Blitzi94@gmx.de
  * @author Robert Bogenschneider <robog@GMX.de>
- * @author Robert Bogenschneider <robog@gmx.de>
  * @author Niels Lange <niels@boldencursief.nl>
  * @author Christian Wichmann <nospam@zone0.de>
  * @author Paul Lachewsky <kaeptn.haddock@gmail.com>
  * @author Pierre Corell <info@joomla-praxis.de>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
-$lang['name']                  = 'Popularitäts-Feedback (Eventuell längere Ladezeit)';
+$lang['name']                  = 'Popularitäts-Feedback (längere Ladezeit möglich)';
 $lang['submit']                = 'Daten senden';
 $lang['autosubmit']            = 'Daten einmal im Monat automatisch senden';
 $lang['submissionFailed']      = 'Die Daten konnten aufgrund des folgenden Fehlers nicht gesendet werden: ';
diff --git a/lib/plugins/popularity/lang/el/lang.php b/lib/plugins/popularity/lang/el/lang.php
index 37a0369304a8dcc334c33a1967a021e94ba6d8b9..fe38a98f7ad159a8257360a8c5ca5ec26fcd98e2 100644
--- a/lib/plugins/popularity/lang/el/lang.php
+++ b/lib/plugins/popularity/lang/el/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Konstantinos Koryllos <koryllos@gmail.com>
  * @author George Petsagourakis <petsagouris@gmail.com>
  * @author Petros Vidalis <pvidalis@gmail.com>
diff --git a/lib/plugins/popularity/lang/pl/lang.php b/lib/plugins/popularity/lang/pl/lang.php
index 045574a69c6700a12c8caeba767bbe48d969a9cd..224c0eb7fa3256940c69598a135d116a23556cb6 100644
--- a/lib/plugins/popularity/lang/pl/lang.php
+++ b/lib/plugins/popularity/lang/pl/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Grzegorz Żur <grzegorz.zur@gmail.com>
  * @author Mariusz Kujawski <marinespl@gmail.com>
  * @author Maciej Kurczewski <pipijajko@gmail.com>
diff --git a/lib/plugins/popularity/lang/zh/lang.php b/lib/plugins/popularity/lang/zh/lang.php
index e1fa8fe44be309250576ffc42fa00fc5a125ee2f..79abe1605874b9404f98c954e7315af8e602a854 100644
--- a/lib/plugins/popularity/lang/zh/lang.php
+++ b/lib/plugins/popularity/lang/zh/lang.php
@@ -15,11 +15,12 @@
  * @author caii, patent agent in China <zhoucaiqi@gmail.com>
  * @author lainme993@gmail.com
  * @author Shuo-Ting Jian <shoting@gmail.com>
+ * @author phy25 <git@phy25.com>
  */
 $lang['name']                  = '人气反馈(载入可能需要一些时间)';
 $lang['submit']                = '发送数据';
 $lang['autosubmit']            = '每月自动发送';
 $lang['submissionFailed']      = '数据由于以下原因不恩你给发送:';
 $lang['submitDirectly']        = '你可以手动提交下面的表单来发送数据。';
-$lang['autosubmitError']       = '印以下原因,上一次自动提交失败:';
+$lang['autosubmitError']       = '因以下原因,上一次自动提交失败:';
 $lang['lastSent']              = '数据已发送';
diff --git a/lib/plugins/revert/admin.svg b/lib/plugins/revert/admin.svg
index 5b3ec9cc119b51f49e44612f04ba690022f63753..2129d2d0eccec1f8111575e4b41888391c3feb62 100644
--- a/lib/plugins/revert/admin.svg
+++ b/lib/plugins/revert/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5,7A6.5,6.5 0 0,1 20,13.5A6.5,6.5 0 0,1 13.5,20H10V18H13.5C16,18 18,16 18,13.5C18,11 16,9 13.5,9H7.83L10.91,12.09L9.5,13.5L4,8L9.5,2.5L10.92,3.91L7.83,7H13.5M6,18H8V20H6V18Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 7a6.5 6.5 0 0 1 6.5 6.5 6.5 6.5 0 0 1-6.5 6.5H10v-2h3.5c2.5 0 4.5-2 4.5-4.5S16 9 13.5 9H7.83l3.08 3.09L9.5 13.5 4 8l5.5-5.5 1.42 1.41L7.83 7h5.67M6 18h2v2H6v-2z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php
index 9c6aee8a1736eead83179b57772353b6d990786c..1371f98f3015536b9963fe71634eb9d48f463f15 100644
--- a/lib/plugins/revert/lang/cs/lang.php
+++ b/lib/plugins/revert/lang/cs/lang.php
@@ -21,6 +21,8 @@
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
  * @author Turkislav <turkislav@blabla.com>
  * @author Daniel Slováček <danslo@danslo.cz>
+ * @author Martin Růžička <martinr@post.cz>
+ * @author Pavel Krupička <pajdacz@gmail.com>
  */
 $lang['menu']                  = 'Obnova zaspamovaných stránek';
 $lang['filter']                = 'Hledat zaspamované stránky';
diff --git a/lib/plugins/revert/lang/de-informal/lang.php b/lib/plugins/revert/lang/de-informal/lang.php
index 93a932945982b17513d658a284f9bb29c270163c..7affe54f1fbb29e9a1713bb3e97e0c82986954dc 100644
--- a/lib/plugins/revert/lang/de-informal/lang.php
+++ b/lib/plugins/revert/lang/de-informal/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Alexander Fischer <tbanus@os-forge.net>
  * @author Juergen Schwarzer <jschwarzer@freenet.de>
  * @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/revert/lang/de/lang.php b/lib/plugins/revert/lang/de/lang.php
index 7d0b243bb5349fc58b382e11b162cec321ab906e..aa0e47e4a36678697d6c9a750ed7674ac80ef7e4 100644
--- a/lib/plugins/revert/lang/de/lang.php
+++ b/lib/plugins/revert/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Michael Klier <chi@chimeric.de>
  * @author Leo Moll <leo@yeasoft.com>
  * @author Florian Anderiasch <fa@art-core.org>
@@ -12,7 +12,6 @@
  * @author Dirk Einecke <dirk@dirkeinecke.de>
  * @author Blitzi94@gmx.de
  * @author Robert Bogenschneider <robog@GMX.de>
- * @author Robert Bogenschneider <robog@gmx.de>
  * @author Niels Lange <niels@boldencursief.nl>
  * @author Christian Wichmann <nospam@zone0.de>
  * @author Paul Lachewsky <kaeptn.haddock@gmail.com>
diff --git a/lib/plugins/revert/lang/el/lang.php b/lib/plugins/revert/lang/el/lang.php
index 4c93ee5a85bc3b93a9ef03f1802746c2eec40e24..48bbb22d048f296d6bf84b37a4c1192aa23c8c6c 100644
--- a/lib/plugins/revert/lang/el/lang.php
+++ b/lib/plugins/revert/lang/el/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Thanos Massias <tm@thriasio.gr>
  * @author Αθανάσιος Νταής <homunculus@wana.gr>
  * @author Konstantinos Koryllos <koryllos@gmail.com>
diff --git a/lib/plugins/revert/lang/pl/lang.php b/lib/plugins/revert/lang/pl/lang.php
index d2d53b87e72c09c15581f16f1dd7308886e3d345..d9b917e46c5ff6fa9bfbb08765af36d5de152cce 100644
--- a/lib/plugins/revert/lang/pl/lang.php
+++ b/lib/plugins/revert/lang/pl/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Grzegorz Żur <grzegorz.zur@gmail.com>
  * @author Mariusz Kujawski <marinespl@gmail.com>
  * @author Maciej Kurczewski <pipijajko@gmail.com>
diff --git a/lib/plugins/styling/admin.svg b/lib/plugins/styling/admin.svg
index ebf6936bf805405effac32abdbb4d75a219b6a43..5d7387098657e78ad535c7d99d3ee0e067848fb3 100644
--- a/lib/plugins/styling/admin.svg
+++ b/lib/plugins/styling/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 17.5 9a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5m-3-4A1.5 1.5 0 0 1 13 6.5 1.5 1.5 0 0 1 14.5 5 1.5 1.5 0 0 1 16 6.5 1.5 1.5 0 0 1 14.5 8m-5 0A1.5 1.5 0 0 1 8 6.5 1.5 1.5 0 0 1 9.5 5 1.5 1.5 0 0 1 11 6.5 1.5 1.5 0 0 1 9.5 8m-3 4A1.5 1.5 0 0 1 5 10.5 1.5 1.5 0 0 1 6.5 9 1.5 1.5 0 0 1 8 10.5 1.5 1.5 0 0 1 6.5 12M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 1.5 1.5 0 0 0 1.5-1.5c0-.39-.15-.74-.39-1-.23-.27-.38-.62-.38-1a1.5 1.5 0 0 1 1.5-1.5H16a5 5 0 0 0 5-5c0-4.42-4.03-8-9-8z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/styling/lang/cs/lang.php b/lib/plugins/styling/lang/cs/lang.php
index d23de29205ebd049c84d91e186ac790759f2b87f..bbb27897385e62838abc3e311d395c557433d2fe 100644
--- a/lib/plugins/styling/lang/cs/lang.php
+++ b/lib/plugins/styling/lang/cs/lang.php
@@ -4,10 +4,11 @@
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
  *
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
+ * @author Martin Růžička <martinr@post.cz>
  */
 $lang['menu']                  = 'Nastavení stylů vzhledu';
 $lang['js']['loader']          = 'Náhled se načítá...<br />pokud tento text nezmizí, pravděpodobně jsou nastaveny nesprávné hodnoty';
-$lang['js']['popup']           = 'Otevřit ve vlastním okně';
+$lang['js']['popup']           = 'Otevřít ve vlastním okně';
 $lang['error']                 = 'Omlouváme se, tento ';
 $lang['btn_preview']           = 'Náhled změn';
 $lang['btn_save']              = 'Uložit změny';
diff --git a/lib/plugins/styling/lang/de/lang.php b/lib/plugins/styling/lang/de/lang.php
index 8a46f818e29fbe5810596ef014d07fe9adb51ae8..54adc567f0a924b64c75d5004baf1221ab402419 100644
--- a/lib/plugins/styling/lang/de/lang.php
+++ b/lib/plugins/styling/lang/de/lang.php
@@ -2,8 +2,9 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Anika Henke <anika@selfthinker.org>
+ * @author Hella Breitkopf <hella.breitkopf@gmail.com>
  */
 $lang['menu']                  = 'Einstellungen fürs Template-Design';
 $lang['js']['loader']          = 'Vorschau lädt...<br />Falls diese Nachricht nicht verschwindet, könnten Ihre Werte fehlerhaft sein';
@@ -12,7 +13,7 @@ $lang['error']                 = 'Dieses Template unterstützt diese Funktion ni
 $lang['btn_preview']           = 'Vorschau der Änderungen anzeigen';
 $lang['btn_save']              = 'Änderungen speichern';
 $lang['btn_reset']             = 'Jetzige Änderungen rückgängig machen';
-$lang['btn_revert']            = 'Auf Templates Voreinstellungen zurückfallen';
+$lang['btn_revert']            = 'Design auf die Voreinstellung des Templates zurücksetzen';
 $lang['__text__']              = 'Haupttextfarbe';
 $lang['__background__']        = 'Haupthintergrundfarbe';
 $lang['__text_alt__']          = 'Alternative Textfarbe';
diff --git a/lib/plugins/usermanager/_test/csv_import.test.php b/lib/plugins/usermanager/_test/csv_import.test.php
index 1f0ee74368d6f9e7134b70eb37d20a9495833481..299e0183db012f185d219a5b275f75c74dc49212 100644
--- a/lib/plugins/usermanager/_test/csv_import.test.php
+++ b/lib/plugins/usermanager/_test/csv_import.test.php
@@ -103,7 +103,7 @@ importuser,"Ford Prefect",ford@example.com,user
 ';
         $failures = array(
             '2' => array(
-                'error' => $this->usermanager->lang['import_error_create'],
+                'error' => $this->usermanager->getLang('import_error_create'),
                 'user'  => array(
                     'importuser',
                     'Ford Prefect',
diff --git a/lib/plugins/usermanager/_test/mocks.class.php b/lib/plugins/usermanager/_test/mocks.class.php
index f3cc72c2730740173d630ce5cdec8b929eebc202..e524e451bd4261b467838641ae2ae36b4ec3bef3 100644
--- a/lib/plugins/usermanager/_test/mocks.class.php
+++ b/lib/plugins/usermanager/_test/mocks.class.php
@@ -12,6 +12,9 @@ class admin_mock_usermanager extends admin_plugin_usermanager {
     public $mock_email_notifications = true;
     public $mock_email_notifications_sent = 0;
 
+    public $localised;
+    public $lang;
+
     public function getImportFailures() {
         return $this->_import_failures;
     }
diff --git a/lib/plugins/usermanager/admin.svg b/lib/plugins/usermanager/admin.svg
index 134818a55081ccd6d67ebedfedc0bccef800fd9b..74a72c0545b65a2f56e192d64b9c60328c135793 100644
--- a/lib/plugins/usermanager/admin.svg
+++ b/lib/plugins/usermanager/admin.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,13C15.71,13 15.38,13 15.03,13.05C16.19,13.89 17,15 17,16.5V19H23V16.5C23,14.17 18.33,13 16,13M8,13C5.67,13 1,14.17 1,16.5V19H15V16.5C15,14.17 10.33,13 8,13M8,11A3,3 0 0,0 11,8A3,3 0 0,0 8,5A3,3 0 0,0 5,8A3,3 0 0,0 8,11M16,11A3,3 0 0,0 19,8A3,3 0 0,0 16,5A3,3 0 0,0 13,8A3,3 0 0,0 16,11Z" /></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 13c-.29 0-.62 0-.97.05C16.19 13.89 17 15 17 16.5V19h6v-2.5c0-2.33-4.67-3.5-7-3.5m-8 0c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m0-2a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m8 0a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3z"/></svg>
\ No newline at end of file
diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php
index 2258b093cad288466a49208131ca5dc5c88ac9e9..dd1f214df4111a692ca794dbed0d8a4e71785779 100644
--- a/lib/plugins/usermanager/lang/cs/lang.php
+++ b/lib/plugins/usermanager/lang/cs/lang.php
@@ -17,6 +17,7 @@
  * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
  * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
  * @author Daniel Slováček <danslo@danslo.cz>
+ * @author Martin Růžička <martinr@post.cz>
  */
 $lang['menu']                  = 'Správa uživatelů';
 $lang['noauth']                = '(autentizace uživatelů není k dispozici)';
@@ -45,7 +46,7 @@ $lang['import']                = 'Importovat nové uživatele';
 $lang['line']                  = 'Řádek č.';
 $lang['error']                 = 'Chybová zpráva';
 $lang['summary']               = 'Zobrazuji uživatele %1$d-%2$d z %3$d nalezených. Celkem %4$d uživatelů.';
-$lang['nonefound']             = 'Žadný uživatel nenalezen. Celkem %d uživatelů.';
+$lang['nonefound']             = 'Žádný uživatel nebyl nalezen. Celkem %d uživatelů.';
 $lang['delete_ok']             = '%d uživatelů smazáno';
 $lang['delete_fail']           = '%d uživatelů nelze smazat.';
 $lang['update_ok']             = 'Uživatel upraven';
@@ -79,9 +80,9 @@ $lang['import_notify_fail']    = 'Importovanému uživateli %s s e-mailem %s nem
 $lang['import_downloadfailures'] = 'Stáhnout chyby pro nápravu jako CVS';
 $lang['addUser_error_missing_pass'] = 'Buď prosím nastavte heslo nebo aktivujte upozorňování uživatel aby fungovalo vytváření hesel.';
 $lang['addUser_error_pass_not_identical'] = 'Zadaná hesla nebyla shodná.';
-$lang['addUser_error_modPass_disabled'] = 'Změna hesel je momentálně zákázána.';
+$lang['addUser_error_modPass_disabled'] = 'Změna hesel je momentálně zakázána.';
 $lang['addUser_error_name_missing'] = 'Zadejte prosím jméno nového uživatele.';
 $lang['addUser_error_modName_disabled'] = 'Změna jmen je momentálně zakázána.';
 $lang['addUser_error_mail_missing'] = 'Zadejte prosím emailovou adresu nového uživatele.';
-$lang['addUser_error_modMail_disabled'] = 'Změna emailové adresy je momentálně zákázána.';
+$lang['addUser_error_modMail_disabled'] = 'Změna e-mailové adresy je momentálně zakázána.';
 $lang['addUser_error_create_event_failed'] = 'Zásuvný modul zabránil přidání nového uživatele. Pro více informací si prohlédněte další možné zprávy.';
diff --git a/lib/plugins/usermanager/lang/de-informal/lang.php b/lib/plugins/usermanager/lang/de-informal/lang.php
index bea4159d0fb886d69a0190b996435af8b90d5ac6..2523ce212a42b3fd3125a3cbc8f5a9f5fcb0cc2d 100644
--- a/lib/plugins/usermanager/lang/de-informal/lang.php
+++ b/lib/plugins/usermanager/lang/de-informal/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Alexander Fischer <tbanus@os-forge.net>
  * @author Juergen Schwarzer <jschwarzer@freenet.de>
  * @author Marcel Metz <marcel_metz@gmx.de>
diff --git a/lib/plugins/usermanager/lang/el/lang.php b/lib/plugins/usermanager/lang/el/lang.php
index e14aa615e8e5c7c43a2ee65365ccc9c8c4d1aa9d..a838f7346b541be4a9de66213ddcfdcc758062d8 100644
--- a/lib/plugins/usermanager/lang/el/lang.php
+++ b/lib/plugins/usermanager/lang/el/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Chris Smith <chris@jalakai.co.uk>
  * @author Thanos Massias <tm@thriasio.gr>
  * @author Αθανάσιος Νταής <homunculus@wana.gr>
diff --git a/lib/plugins/usermanager/lang/pl/lang.php b/lib/plugins/usermanager/lang/pl/lang.php
index 2e063d2bb5823a68915efd3b98ce3177da48711e..fb0ddd7d66db4a9240ecbe972bfb2be51b09f097 100644
--- a/lib/plugins/usermanager/lang/pl/lang.php
+++ b/lib/plugins/usermanager/lang/pl/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Grzegorz Żur <grzegorz.zur@gmail.com>
  * @author Mariusz Kujawski <marinespl@gmail.com>
  * @author Maciej Kurczewski <pipijajko@gmail.com>
diff --git a/lib/scripts/fileuploaderextended.js b/lib/scripts/fileuploaderextended.js
index d6a82397d7e5a6c2e705123775f95e1d689130f3..ba2aa3ea5b777f1b7cd10c0215d54cd789c4937b 100644
--- a/lib/scripts/fileuploaderextended.js
+++ b/lib/scripts/fileuploaderextended.js
@@ -242,7 +242,7 @@ qq.extend(qq.UploadHandlerForm.prototype, {
         var nameInput = qq.toElement('<input name="mediaid" value="' + fileName + '" type="text">');
         form.appendChild(nameInput);
 
-        var checked = jQuery('.dw__ow').attr('checked');
+        var checked = jQuery('.dw__ow').is(':checked');
         var owCheckbox = jQuery('.dw__ow').clone();
         owCheckbox.attr('checked', checked);
         jQuery(form).append(owCheckbox);
@@ -323,7 +323,7 @@ qq.extend(qq.UploadHandlerXhr.prototype, {
         // build query string
         params = params || {};
         params['qqfile'] = name;
-        params['ow'] = jQuery('.dw__ow').attr('checked');
+        params['ow'] = jQuery('.dw__ow').is(':checked');
         var queryString = qq.obj2url(params, this._options.action);
 
         xhr.open("POST", queryString, true);
diff --git a/lib/scripts/helpers.js b/lib/scripts/helpers.js
index 0b32e87811215f693094f8bac8f89df0eee3a171..99137c50441fe8ad2fb0c756fd91a6e38bdcc1af 100644
--- a/lib/scripts/helpers.js
+++ b/lib/scripts/helpers.js
@@ -62,5 +62,8 @@ function logError(e, file) {
             'If this is in a plugin try updating or disabling the plugin, ' +
             'if this is in a template try updating the template or switching to the "dokuwiki" template.',
             e.name, e.message, file);
+        if(e.stack) {
+            console.error(e.stack);
+        }
     }
 }
diff --git a/lib/tpl/dokuwiki/css/_admin.less b/lib/tpl/dokuwiki/css/_admin.less
index 2cf8e3798e4fcb99bc6b488f24614108d63a9ed4..263b34d037723e7dbfe086f7e9c5845f6df9096c 100644
--- a/lib/tpl/dokuwiki/css/_admin.less
+++ b/lib/tpl/dokuwiki/css/_admin.less
@@ -34,6 +34,9 @@
                         height: 1.5em;
                         fill: @ini_link;
                         display: inline-block;
+                        path {
+                            fill: @ini_link;
+                        }
                     }
                 }
 
diff --git a/lib/tpl/dokuwiki/lang/de/lang.php b/lib/tpl/dokuwiki/lang/de/lang.php
index a17c945d97018c2aaf6daa2b9f761829ad17652a..1e3115f24702c330d9ddf9c1f2506c8ebfb428d0 100644
--- a/lib/tpl/dokuwiki/lang/de/lang.php
+++ b/lib/tpl/dokuwiki/lang/de/lang.php
@@ -2,7 +2,7 @@
 
 /**
  * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
+ *
  * @author Anika Henke <anika@selfthinker.org>
  */
 $lang['__background_site__']   = 'Farbe für den Seitenhintergrund (hinter dem Inhaltsbereich)';
diff --git a/lib/tpl/dokuwiki/lang/de/style.txt b/lib/tpl/dokuwiki/lang/de/style.txt
index 1fd2f332bc2a16948f72a36e65ae5273b77a7773..968eec859fdb19d4028491d45555605fac7bdcce 100644
--- a/lib/tpl/dokuwiki/lang/de/style.txt
+++ b/lib/tpl/dokuwiki/lang/de/style.txt
@@ -1 +1 @@
-Wenn Sie das Logo anpassen wollen, benutzen Sie einfach den Medien-Manager, um ein ''logo.png'' in den ''wiki''- oder Wurzel-Namensraum hochzuladen. Es wird dann automatisch als Logo verwendet. Sie können dort auch ein 'favicon.ico'' hochladen. Falls Sie ein geschlossenes Wiki haben, ist es empfehlenswert, den ''wiki''- (oder Wurzel-)Namensraum für alle Nutzer in den ACL-Einstellungen zu öffnen. Ansonsten wird das Logo nur für eingeloggte Nutzer angezeigt.
\ No newline at end of file
+Wenn Sie das Logo anpassen wollen, benutzen Sie einfach den Medien-Manager, um ein ''logo.png'' in den ''wiki''- oder Wurzel-Namensraum hochzuladen. Es wird dann automatisch als Logo verwendet. Sie können dort auch ein 'favicon.ico'' hochladen. Falls Sie ein geschlossenes Wiki haben, ist es empfehlenswert, den ''wiki''- (oder Wurzel-)Namensraum für alle Nutzer in den ACL-Einstellungen als lesbar zu öffnen. Ansonsten wird das Logo nur für eingeloggte Nutzer angezeigt.
\ No newline at end of file
diff --git a/lib/tpl/dokuwiki/lang/zh/style.txt b/lib/tpl/dokuwiki/lang/zh/style.txt
index 3f69212010b79c8ba8f365244c40a2bda47d0ba7..79467c21740464a045cd14ab22838f67e6b03e6a 100644
--- a/lib/tpl/dokuwiki/lang/zh/style.txt
+++ b/lib/tpl/dokuwiki/lang/zh/style.txt
@@ -1 +1 @@
-如果您想调整logo,只需使用媒体管理器将“logo.png”上传到“wiki”或者根命名空间下。您也可以同样上传一个“favicon.ico”。如果您采用的是封闭维基,建议在ACL设置中将“wiki” (或者根) 命名空间设置为全局可读,否则未登录用户无法看到您的logo。
\ No newline at end of file
+如果您想调整 Logo,只需使用媒体管理器将“logo.png”上传到“wiki”或者根命名空间下。您也可以同样上传一个“favicon.ico”。如果您采用的是封闭维基,建议在ACL设置中将“wiki” (或者根) 命名空间设置为全局可读,否则未登录用户无法看到您的 Logo。
\ No newline at end of file
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index 126b5388274449346486015dd522222136b83c93..2c72175e7723ad0c73fd3154eb0fecc420810448 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -55,6 +55,7 @@ class ClassLoader
     private $classMap = array();
     private $classMapAuthoritative = false;
     private $missingClasses = array();
+    private $apcuPrefix;
 
     public function getPrefixes()
     {
@@ -271,6 +272,26 @@ class ClassLoader
         return $this->classMapAuthoritative;
     }
 
+    /**
+     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+     *
+     * @param string|null $apcuPrefix
+     */
+    public function setApcuPrefix($apcuPrefix)
+    {
+        $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
+    }
+
+    /**
+     * The APCu prefix in use, or null if APCu caching is not enabled.
+     *
+     * @return string|null
+     */
+    public function getApcuPrefix()
+    {
+        return $this->apcuPrefix;
+    }
+
     /**
      * Registers this instance as an autoloader.
      *
@@ -320,6 +341,12 @@ class ClassLoader
         if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
             return false;
         }
+        if (null !== $this->apcuPrefix) {
+            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+            if ($hit) {
+                return $file;
+            }
+        }
 
         $file = $this->findFileWithExtension($class, '.php');
 
@@ -328,6 +355,10 @@ class ClassLoader
             $file = $this->findFileWithExtension($class, '.hh');
         }
 
+        if (null !== $this->apcuPrefix) {
+            apcu_add($this->apcuPrefix.$class, $file);
+        }
+
         if (false === $file) {
             // Remember that this class does not exist.
             $this->missingClasses[$class] = true;
@@ -343,9 +374,13 @@ class ClassLoader
 
         $first = $class[0];
         if (isset($this->prefixLengthsPsr4[$first])) {
-            foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
+            $subPath = $class;
+            while (false !== $lastPos = strrpos($subPath, '\\')) {
+                $subPath = substr($subPath, 0, $lastPos);
+                $search = $subPath.'\\';
+                if (isset($this->prefixDirsPsr4[$search])) {
+                    foreach ($this->prefixDirsPsr4[$search] as $dir) {
+                        $length = $this->prefixLengthsPsr4[$first][$search];
                         if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
                             return $file;
                         }
diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE
index 1a28124886db89f1ca3e4fa674cb69a9a17585b3..f27399a042d95c4708af3a8c74d35d338763cf8f 100644
--- a/vendor/composer/LICENSE
+++ b/vendor/composer/LICENSE
@@ -1,5 +1,5 @@
 
-Copyright (c) 2016 Nils Adermann, Jordi Boggiano
+Copyright (c) Nils Adermann, Jordi Boggiano
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 63b550c324fd93a756ab232540213b8ad94777d3..2baad22d947444b741b34ac99ce74fe9566d3297 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -6,5 +6,25 @@ $vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    'GeSHi' => $vendorDir . '/easybook/geshi/geshi.php',
+    'AtomCreator03' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php',
+    'AtomCreator10' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php',
+    'FeedCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php',
+    'FeedDate' => $vendorDir . '/openpsa/universalfeedcreator/lib/Element/FeedDate.php',
+    'FeedHtmlField' => $vendorDir . '/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php',
+    'FeedImage' => $vendorDir . '/openpsa/universalfeedcreator/lib/Element/FeedImage.php',
+    'FeedItem' => $vendorDir . '/openpsa/universalfeedcreator/lib/Element/FeedItem.php',
+    'GPXCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php',
+    'GeSHi' => $vendorDir . '/geshi/geshi/src/geshi.php',
+    'HTMLCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php',
+    'HtmlDescribable' => $vendorDir . '/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php',
+    'JSCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/JSCreator.php',
+    'KMLCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php',
+    'MBOXCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php',
+    'OPMLCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php',
+    'PHPCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php',
+    'PIECreator01' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php',
+    'RSSCreator091' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php',
+    'RSSCreator10' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php',
+    'RSSCreator20' => $vendorDir . '/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php',
+    'UniversalFeedCreator' => $vendorDir . '/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php',
 );
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
index 55787b617c12cf4273b4fe261cdee98160ee976b..0f99dcf870f1f4510b0b60692dca0443d33fcd8c 100644
--- a/vendor/composer/autoload_files.php
+++ b/vendor/composer/autoload_files.php
@@ -6,6 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
     'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
+    '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
 );
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 7ee03588da3c59079d40ad9a38dd9ee1ec7df54f..2daff34319539c57b91b4655a7e6333493a51210 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -23,7 +23,7 @@ class ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
         spl_autoload_unregister(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader'));
 
-        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
+        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
         if ($useStaticLoader) {
             require_once __DIR__ . '/autoload_static.php';
 
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 4dd45d2067d202a3c7b8a67782079b80fa9c5ccf..46be7ebe188c393d99388940b88b7c3e4f94304e 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -7,8 +7,8 @@ namespace Composer\Autoload;
 class ComposerStaticInita19a915ee98347a0c787119619d2ff9b
 {
     public static $files = array (
-        '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
         'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
+        '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
     );
 
     public static $prefixLengthsPsr4 = array (
@@ -44,7 +44,27 @@ class ComposerStaticInita19a915ee98347a0c787119619d2ff9b
     );
 
     public static $classMap = array (
-        'GeSHi' => __DIR__ . '/..' . '/easybook/geshi/geshi.php',
+        'AtomCreator03' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php',
+        'AtomCreator10' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php',
+        'FeedCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php',
+        'FeedDate' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Element/FeedDate.php',
+        'FeedHtmlField' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php',
+        'FeedImage' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Element/FeedImage.php',
+        'FeedItem' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Element/FeedItem.php',
+        'GPXCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php',
+        'GeSHi' => __DIR__ . '/..' . '/geshi/geshi/src/geshi.php',
+        'HTMLCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php',
+        'HtmlDescribable' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php',
+        'JSCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/JSCreator.php',
+        'KMLCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php',
+        'MBOXCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php',
+        'OPMLCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php',
+        'PHPCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php',
+        'PIECreator01' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php',
+        'RSSCreator091' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php',
+        'RSSCreator10' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php',
+        'RSSCreator20' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php',
+        'UniversalFeedCreator' => __DIR__ . '/..' . '/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php',
     );
 
     public static function getInitializer(ClassLoader $loader)
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index ab8228dfca485d87e78b22158cee2e978dbcd38b..a9d312261e3c77b1a50550e1d8242edda95c5d43 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1,151 +1,4 @@
 [
-    {
-        "name": "splitbrain/php-archive",
-        "version": "1.0.7",
-        "version_normalized": "1.0.7.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/splitbrain/php-archive.git",
-            "reference": "c075304b44c4aadff0718af445e86bf730f331ff"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/c075304b44c4aadff0718af445e86bf730f331ff",
-            "reference": "c075304b44c4aadff0718af445e86bf730f331ff",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "4.5.*"
-        },
-        "time": "2015-08-12T13:24:34+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "splitbrain\\PHPArchive\\": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Andreas Gohr",
-                "email": "andi@splitbrain.org"
-            }
-        ],
-        "description": "Pure-PHP implementation to read and write TAR and ZIP archives",
-        "keywords": [
-            "archive",
-            "extract",
-            "tar",
-            "unpack",
-            "unzip",
-            "zip"
-        ]
-    },
-    {
-        "name": "paragonie/random_compat",
-        "version": "v2.0.4",
-        "version_normalized": "2.0.4.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/paragonie/random_compat.git",
-            "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
-            "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "4.*|5.*"
-        },
-        "suggest": {
-            "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
-        },
-        "time": "2016-11-07T23:38:38+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "files": [
-                "lib/random.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Paragon Initiative Enterprises",
-                "email": "security@paragonie.com",
-                "homepage": "https://paragonie.com"
-            }
-        ],
-        "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
-        "keywords": [
-            "csprng",
-            "pseudorandom",
-            "random"
-        ]
-    },
-    {
-        "name": "easybook/geshi",
-        "version": "v1.0.8.18",
-        "version_normalized": "1.0.8.18",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/easybook/geshi.git",
-            "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/easybook/geshi/zipball/4b06bfe8c6fbedd6aad0a0700d650f591386e287",
-            "reference": "4b06bfe8c6fbedd6aad0a0700d650f591386e287",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">4.3.0"
-        },
-        "time": "2016-10-05T07:15:42+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "./"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "GPL-2.0"
-        ],
-        "authors": [
-            {
-                "name": "Nigel McNie",
-                "email": "nigel@geshi.org"
-            },
-            {
-                "name": "Benny Baumann",
-                "email": "BenBE@geshi.org"
-            }
-        ],
-        "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.",
-        "homepage": "http://qbnz.com/highlighter",
-        "keywords": [
-            "highlight",
-            "highlighter",
-            "syntax"
-        ]
-    },
     {
         "name": "phpseclib/phpseclib",
         "version": "2.0.4",
@@ -301,5 +154,200 @@
             "feeds",
             "rss"
         ]
+    },
+    {
+        "name": "paragonie/random_compat",
+        "version": "v2.0.10",
+        "version_normalized": "2.0.10.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/paragonie/random_compat.git",
+            "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d",
+            "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.2.0"
+        },
+        "require-dev": {
+            "phpunit/phpunit": "4.*|5.*"
+        },
+        "suggest": {
+            "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+        },
+        "time": "2017-03-13T16:27:32+00:00",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "files": [
+                "lib/random.php"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Paragon Initiative Enterprises",
+                "email": "security@paragonie.com",
+                "homepage": "https://paragonie.com"
+            }
+        ],
+        "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+        "keywords": [
+            "csprng",
+            "pseudorandom",
+            "random"
+        ]
+    },
+    {
+        "name": "splitbrain/php-archive",
+        "version": "1.0.8",
+        "version_normalized": "1.0.8.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/splitbrain/php-archive.git",
+            "reference": "6b1c1746fa0a6f9f68f0bc832892ddeda8db905c"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/6b1c1746fa0a6f9f68f0bc832892ddeda8db905c",
+            "reference": "6b1c1746fa0a6f9f68f0bc832892ddeda8db905c",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.0"
+        },
+        "require-dev": {
+            "phpunit/phpunit": "4.5.*"
+        },
+        "suggest": {
+            "ext-iconv": "Used for proper filename encode handling",
+            "ext-mbstring": "Can be used alternatively for handling filename encoding"
+        },
+        "time": "2017-03-19T09:10:53+00:00",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "splitbrain\\PHPArchive\\": "src"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Andreas Gohr",
+                "email": "andi@splitbrain.org"
+            }
+        ],
+        "description": "Pure-PHP implementation to read and write TAR and ZIP archives",
+        "keywords": [
+            "archive",
+            "extract",
+            "tar",
+            "unpack",
+            "unzip",
+            "zip"
+        ]
+    },
+    {
+        "name": "geshi/geshi",
+        "version": "v1.0.9.0",
+        "version_normalized": "1.0.9.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/GeSHi/geshi-1.0.git",
+            "reference": "5a7b461338d322d941986a656d4d1651452e73dd"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/GeSHi/geshi-1.0/zipball/5a7b461338d322d941986a656d4d1651452e73dd",
+            "reference": "5a7b461338d322d941986a656d4d1651452e73dd",
+            "shasum": ""
+        },
+        "require-dev": {
+            "phpunit/phpunit": "^5.7"
+        },
+        "time": "2017-05-05T05:51:25+00:00",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "src/geshi/",
+                "src/geshi.php"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "GPL-2.0+"
+        ],
+        "authors": [
+            {
+                "name": "Benny Baumann",
+                "email": "BenBE@geshi.org",
+                "homepage": "http://blog.benny-baumann.de/",
+                "role": "Developer"
+            }
+        ],
+        "description": "Generic Syntax Highlighter",
+        "homepage": "http://qbnz.com/highlighter/"
+    },
+    {
+        "name": "openpsa/universalfeedcreator",
+        "version": "v1.8.3",
+        "version_normalized": "1.8.3.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/flack/UniversalFeedCreator.git",
+            "reference": "6261e130446d8f787bbfd229a602fb11e6816a4e"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/flack/UniversalFeedCreator/zipball/6261e130446d8f787bbfd229a602fb11e6816a4e",
+            "reference": "6261e130446d8f787bbfd229a602fb11e6816a4e",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.0"
+        },
+        "require-dev": {
+            "phpunit/phpunit": "*"
+        },
+        "time": "2017-05-18T08:28:48+00:00",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "lib"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "LGPL"
+        ],
+        "authors": [
+            {
+                "name": "Andreas Flack",
+                "email": "flack@contentcontrol-berlin.de",
+                "homepage": "http://www.contentcontrol-berlin.de/"
+            }
+        ],
+        "description": "RSS and Atom feed generator by Kai Blankenhorn",
+        "keywords": [
+            "atom",
+            "georss",
+            "gpx",
+            "opml",
+            "pie",
+            "rss"
+        ]
     }
 ]
diff --git a/vendor/easybook/geshi/README.md b/vendor/easybook/geshi/README.md
deleted file mode 100644
index dd1057a37525d6d6c3397aa317d8fd6d436cd611..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# GeSHi - Generic Syntax Highlighter #
-
-This repository has been created just to be able to install GeSHi as a Composer
-package. Technically it's a port of the GeSHi project code found on SourceForge:
-http://sourceforge.net/projects/geshi/
-
-Differences from the official SourceForge repository:
-
-  * 3/mar/2016: removed the closing `?>` tag from PHP files.
-  * 11/may/2014: added `sass.php` file to highlight Sass stylesheets.
-  * 28/sep/2012: added `twig.php` file to highlight Twig templates.
diff --git a/vendor/easybook/geshi/composer.json b/vendor/easybook/geshi/composer.json
deleted file mode 100644
index 33494664cb5c8d23eb2c04d34587694999aa8606..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/composer.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "name": "easybook/geshi",
-    "type": "library",
-    "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.",
-    "homepage": "http://qbnz.com/highlighter",
-    "keywords": ["highlighter", "highlight", "syntax"],
-    "license": "GPL-2.0",
-    "authors": [
-        {
-            "name": "Benny Baumann",
-            "email": "BenBE@geshi.org"
-        },
-        {
-            "name": "Nigel McNie",
-            "email": "nigel@geshi.org"
-        }
-    ],
-    "require": {
-        "php": ">4.3.0"
-    }, 
-    "autoload": {
-        "classmap": ["./"]
-    }
-}
\ No newline at end of file
diff --git a/vendor/easybook/geshi/geshi/asymptote.php b/vendor/easybook/geshi/geshi/asymptote.php
deleted file mode 100644
index 295cb0a568ec18a17c605d00349388e404dd2269..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/asymptote.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-/*************************************************************************************
- * asymptote.php
- * -------------
- * Author: Manuel Yguel (manuel.yguel.robotics@gmail.com)
- * Copyright: (c) 2012 Manuel Yguel (http://manuelyguel.eu)
- * Release Version: 1.0.8.11
- * Date Started: 2012/05/24
- *
- * asymptote language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/05/24 (1.0.0.0)
- *  -  First Release
- *
- * TODO (updated 2012/05/24)
- * -------------------------
- * * 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' => 'asymptote',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    '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' => '',
-    '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(
-            'and','controls','tension','atleast','curl','if','else','while','for','do','return','break','continue','struct','typedef','new','access','import','unravel','from','include','quote','static','public','private','restricted','this','explicit','true','false','null','cycle','newframe','operator'
-            ),
-        2 => array(
-            'Braid','FitResult','Label','Legend','Segment','Solution','TreeNode','abscissa','arc','arrowhead','binarytree','binarytreeNode','block','bool','bool3','bounds','bqe','circle','conic','coord','coordsys','cputime','ellipse','file','filltype','frame','grid3','guide','horner','hsv','hyperbola','indexedTransform','int','inversion','key','light','line','linefit','marginT','marker','mass','object','pair','parabola','path','path3','pen','picture','point','position','projection','real','revolution','scaleT','scientific','segment','side','slice','solution','splitface','string','surface','tensionSpecifier','ticklocate','ticksgridT','tickvalues','transform','transformation','tree','triangle','trilinear','triple','vector','vertex','void'),
-        3 => array(
-            'AND','Arc','ArcArrow','ArcArrows','Arrow','Arrows','Automatic','AvantGarde','BBox','BWRainbow','BWRainbow2','Bar','Bars','BeginArcArrow','BeginArrow','BeginBar','BeginDotMargin','BeginMargin','BeginPenMargin','Blank','Bookman','Bottom','BottomTop','Bounds','Break','Broken','BrokenLog','CLZ','CTZ','Ceil','Circle','CircleBarIntervalMarker','Cos','Courier','CrossIntervalMarker','DOSendl','DOSnewl','DefaultFormat','DefaultLogFormat','Degrees','Dir','DotMargin','DotMargins','Dotted','Draw','Drawline','Embed','EndArcArrow','EndArrow','EndBar','EndDotMargin','EndMargin','EndPenMargin','Fill','FillDraw','Floor','Format','Full','Gaussian','Gaussrand','Gaussrandpair',
-            'Gradient','Grayscale','Helvetica','Hermite','HookHead','InOutTicks','InTicks','Jn','Label','Landscape','Left','LeftRight','LeftTicks','Legend','Linear','Link','Log','LogFormat','Margin','Margins','Mark','MidArcArrow','MidArrow','NOT','NewCenturySchoolBook','NoBox','NoMargin','NoModifier','NoTicks','NoTicks3','NoZero','NoZeroFormat','None','OR','OmitFormat','OmitTick','OmitTickInterval','OmitTickIntervals','OutTicks','Ox','Oy','Palatino','PaletteTicks','Pen','PenMargin','PenMargins','Pentype','Portrait','RadialShade','RadialShadeDraw','Rainbow','Range','Relative','Right','RightTicks','Rotate','Round','SQR','Scale','ScaleX','ScaleY','ScaleZ','Seascape','Segment','Shift','Sin','Slant','Spline','StickIntervalMarker','Straight','Symbol','Tan','TeXify','Ticks','Ticks3','TildeIntervalMarker','TimesRoman','Top','TrueMargin','UnFill','UpsideDown','Wheel','X','XEquals','XOR','XY','XYEquals','XYZero','XYgrid','XZEquals','XZZero','XZero','XZgrid','Y','YEquals','YXgrid','YZ','YZEquals','YZZero','YZero','YZgrid','Yn','Z','ZX','ZXgrid','ZYgrid','ZapfChancery','ZapfDingbats','_begingroup3','_cputime','_draw','_eval','_image','_labelpath','_projection','_strokepath','_texpath','aCos','aSin','aTan','abort','abs','accel','acos','acosh','acot','acsc','activatequote','add',
-            'addArrow','addMargins','addSaveFunction','addpenarc','addpenline','adjust','alias','align','all','altitude','angabscissa','angle','angpoint','animate','annotate','anticomplementary','antipedal','apply','approximate','arc','arcarrowsize','arccircle','arcdir','arcfromcenter','arcfromfocus','arclength','arcnodesnumber','arcpoint','arcsubtended','arcsubtendedcenter','arctime','arctopath','array','arrow','arrow2','arrowbase','arrowbasepoints','arrowsize','asec','asin','asinh','ask','assert','asy','asycode','asydir','asyfigure','asyfilecode','asyinclude','asywrite','atan','atan2','atanh','atbreakpoint','atexit','attach','attract','atupdate','autoformat','autoscale','autoscale3','axes','axes3','axialshade','axis','axiscoverage','azimuth','babel','background','bangles','bar','barmarksize','barsize','basealign','baseline','bbox','beep','begin','beginclip','begingroup','beginpoint','between','bevel','bezier','bezierP','bezierPP','bezierPPP','bezulate','bibliography','bibliographystyle','binarytree','binarytreeNode','binomial','binput','bins','bisector','bisectorpoint','bispline','blend','blockconnector','boutput','box','bqe','breakpoint','breakpoints','brick','buildRestoreDefaults','buildRestoreThunk','buildcycle','bulletcolor','byte','calculateScaling','canonical','canonicalcartesiansystem','cartesiansystem','case1','case2','case3','case4','cbrt','cd','ceil','center','centerToFocus',
-            'centroid','cevian','change2','changecoordsys','checkSegment','checkconditionlength','checker','checkincreasing','checklengths','checkposition','checktriangle','choose','circle','circlebarframe','circlemarkradius','circlenodesnumber','circumcenter','circumcircle','clamped','clear','clip','clipdraw','close','cmyk','code','colatitude','collect','collinear','color','colorless','colors','colorspace','comma','compassmark','complement','complementary','concat','concurrent','cone','conic','conicnodesnumber','conictype','conj','connect','connected','connectedindex','containmentTree','contains','contour','contour3','contouredges','controlSpecifier','convert','coordinates','coordsys','copy','copyPairOrTriple','cos','cosh','cot','countIntersections','cputime','crop','cropcode','cross',
-            'crossframe','crosshatch','crossmarksize','csc','cubicroots','curabscissa','curlSpecifier','curpoint','currentarrow','currentexitfunction','currentmomarrow','currentpolarconicroutine','curve','cut','cutafter','cutbefore','cyclic','cylinder','deactivatequote','debugger','deconstruct','defaultdir','defaultformat','defaultpen','defined','degenerate','degrees','delete','deletepreamble','determinant','diagonal','diamond','diffdiv','dir','dirSpecifier','dirtime','display','distance',
-            'divisors','do_overpaint','dot','dotframe','dotsize','downcase','draw','drawAll','drawDoubleLine','drawFermion','drawGhost','drawGluon','drawMomArrow','drawPRCcylinder','drawPRCdisk','drawPRCsphere','drawPRCtube','drawPhoton','drawScalar','drawVertex','drawVertexBox','drawVertexBoxO','drawVertexBoxX','drawVertexO','drawVertexOX','drawVertexTriangle','drawVertexTriangleO','drawVertexX','drawarrow','drawarrow2','drawline','drawpixel','drawtick','duplicate','elle','ellipse','ellipsenodesnumber','embed','embed3','empty','enclose','end','endScript','endclip','endgroup','endgroup3','endl','endpoint','endpoints','eof','eol','equation','equations','erase','erasestep','erf','erfc','error','errorbar','errorbars','eval','excenter','excircle','exit','exitXasyMode','exitfunction','exp','expfactors','expi','expm1','exradius','extend','extension','extouch','fabs','factorial','fermat','fft','fhorner','figure','file','filecode','fill','filldraw','filloutside','fillrule','filltype','find','finite','finiteDifferenceJacobian','firstcut','firstframe','fit','fit2','fixedscaling','floor','flush','fmdefaults','fmod','focusToCenter','font','fontcommand','fontsize','foot','format','frac','frequency','fromCenter','fromFocus','fspline','functionshade','gamma','generate_random_backtrace','generateticks','gergonne','getc','getint','getpair','getreal','getstring','gettriple','gluon','gouraudshade','graph','graphic','gray','grestore','grid','grid3','gsave','halfbox','hatch','hdiffdiv','hermite','hex','histogram','history','hline','hprojection',
-            'hsv','hyperbola','hyperbolanodesnumber','hyperlink','hypot','identity','image','incenter','incentral','incircle','increasing','incrementposition','indexedTransform','indexedfigure','initXasyMode','initdefaults','input','inradius','insert','inside','integrate','interactive','interior','interp','interpolate','intersect','intersection','intersectionpoint','intersectionpoints','intersections','intouch','inverse','inversion','invisible','is3D','isCCW','isDuplicate','isogonal','isogonalconjugate','isotomic','isotomicconjugate','isparabola','italic','item','jobname','key','kurtosis','kurtosisexcess','label','labelaxis','labelmargin','labelpath','labels','labeltick','labelx','labelx3','labely','labely3','labelz','labelz3','lastcut','latex','latitude','latticeshade','layer','layout','ldexp','leastsquares','legend','legenditem','length','lexorder','lift','light','limits','line','linear','linecap','lineinversion','linejoin','linemargin','lineskip','linetype','linewidth','link','list','lm_enorm','lm_evaluate_default','lm_lmdif','lm_lmpar','lm_minimize','lm_print_default','lm_print_quiet','lm_qrfac','lm_qrsolv','locale','locate',
-            'locatefile','location','log','log10','log1p','logaxiscoverage','longitude','lookup','makeNode','makedraw','makepen','map','margin','markangle','markangleradius','markanglespace','markarc','marker','markinterval','marknodes','markrightangle','markuniform','mass','masscenter','massformat','math','max','max3','maxAfterTransform','maxbezier','maxbound','maxcoords','maxlength','maxratio','maxtimes','mean','medial','median','midpoint','min','min3','minAfterTransform','minbezier','minbound','minipage','minratio','mintimes','miterlimit','mktemp','momArrowPath','momarrowsize','monotonic','multifigure','nativeformat','natural','needshipout','newl','newpage','newslide','newton','newtree','nextframe','nextnormal','nextpage','nib','nodabscissa','none','norm','normalvideo','notaknot','nowarn','numberpage','nurb','object','offset','onpath','opacity','opposite','orientation','origin','orthic','orthocentercenter','outformat','outline','outname','outprefix','output','overloadedMessage','overwrite','pack','pad','pairs','palette','parabola','parabolanodesnumber','parallel','parallelogram','partialsum','path','path3','pattern','pause','pdf','pedal','periodic','perp','perpendicular','perpendicularmark','phantom','phi1','phi2','phi3','photon','piecewisestraight','point','polar','polarconicroutine','polargraph','polygon','postcontrol','postscript','pow10','ppoint','prc','prc0','precision','precontrol','prepend','printBytecode','print_random_addresses','project','projection','purge','pwhermite','quadrant','quadraticroots','quantize','quarticroots','quotient','radialshade','radians','radicalcenter','radicalline','radius','rand','randompath','rd','readline','realmult','realquarticroots','rectangle','rectangular','rectify','reflect','relabscissa','relative','relativedistance','reldir','relpoint','reltime','remainder','remark','removeDuplicates','rename','replace','report','resetdefaultpen','restore','restoredefaults','reverse','reversevideo','rf','rfind','rgb','rgba','rgbint','rms',
-            'rotate','rotateO','rotation','round','roundbox','roundedpath','roundrectangle','same','samecoordsys','sameside','sample','save','savedefaults','saveline','scale','scale3','scaleO','scaleT','scaleless','scientific','search','searchindex','searchtree','sec','secondaryX','secondaryY','seconds','section','sector','seek','seekeof','segment','sequence','setcontour','setpens','sgn','sgnd','sharpangle','sharpdegrees','shift','shiftless','shipout','shipout3','show','side','simeq','simpson','sin','sinh','size','size3','skewness','skip','slant','sleep','slope','slopefield','solve','solveBVP','sort','sourceline','sphere','split','sqrt','square','srand','standardizecoordsys','startScript','stdev','step','stickframe','stickmarksize','stickmarkspace','stop','straight','straightness','string','stripdirectory','stripextension','stripfile','stripsuffix','strokepath','subdivide','subitem','subpath','substr','sum','surface','symmedial','symmedian','system',
-            'tab','tableau','tan','tangent','tangential','tangents','tanh','tell','tensionSpecifier','tensorshade','tex','texcolor','texify','texpath','texpreamble','texreset','texshipout','texsize','textpath','thick','thin','tick','tickMax','tickMax3','tickMin','tickMin3','ticklabelshift','ticklocate','tildeframe','tildemarksize','tile','tiling','time','times','title','titlepage','topbox','transform','transformation','transpose','trembleFuzz','triangle','triangleAbc','triangleabc','triangulate','tricoef','tridiagonal','trilinear','trim','truepoint','tube','uncycle','unfill','uniform','unique','unit','unitrand','unitsize','unityroot','unstraighten','upcase','updatefunction','uperiodic','upscale','uptodate','usepackage','usersetting','usetypescript','usleep','value','variance','variancebiased','vbox','vector','vectorfield','verbatim','view','vline','vperiodic','vprojection','warn','warning','windingnumber','write','xaxis','xaxis3','xaxis3At','xaxisAt','xequals','xinput','xlimits','xoutput','xpart','xscale','xscaleO','xtick','xtick3','xtrans','yaxis','yaxis3','yaxis3At','yaxisAt','yequals','ylimits','ypart','yscale','yscaleO','ytick','ytick3','ytrans','zaxis3','zaxis3At','zero','zero3','zlimits','zpart','ztick','ztick3','ztrans'
-            ),
-        4 => array(
-            'AliceBlue','Align','Allow','AntiqueWhite','Apricot','Aqua','Aquamarine','Aspect','Azure','BeginPoint','Beige','Bisque','Bittersweet','Black','BlanchedAlmond','Blue','BlueGreen','BlueViolet','Both','Break','BrickRed','Brown','BurlyWood','BurntOrange','CCW','CW','CadetBlue','CarnationPink','Center','Centered','Cerulean','Chartreuse','Chocolate','Coeff','Coral','CornflowerBlue','Cornsilk','Crimson','Crop','Cyan','Dandelion','DarkBlue','DarkCyan','DarkGoldenrod','DarkGray','DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','DarkOrange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray','DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DefaultHead','DimGray','DodgerBlue','Dotted','Down','Draw','E','ENE','EPS','ESE','E_Euler','E_PC','E_RK2','E_RK3BS','Emerald','EndPoint','Euler','Fill','FillDraw','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro','GhostWhite','Gold','Goldenrod','Gray','Green','GreenYellow','Honeydew','HookHead','Horizontal','HotPink','I','IgnoreAspect','IndianRed','Indigo','Ivory','JOIN_IN','JOIN_OUT','JungleGreen','Khaki','LM_DWARF','LM_MACHEP','LM_SQRT_DWARF','LM_SQRT_GIANT','LM_USERTOL','Label','Lavender','LavenderBlush','LawnGreen','Left','LeftJustified','LeftSide','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenrodYellow',
-            'LightGreen','LightGrey','LightPink','LightSalmon','LightSeaGreen','LightSkyBlue','LightSlateGray','LightSteelBlue','LightYellow','Lime','LimeGreen','Linear','Linen','Log','Logarithmic','Magenta','Mahogany','Mark','MarkFill','Maroon','Max','MediumAquamarine','MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','Melon','MidPoint','MidnightBlue','Min','MintCream','MistyRose','Moccasin','Move','MoveQuiet','Mulberry','N','NE','NNE','NNW','NW','NavajoWhite','Navy','NavyBlue','NoAlign','NoCrop','NoFill','NoSide','OldLace','Olive','OliveDrab','OliveGreen','Orange','OrangeRed','Orchid','Ox','Oy','PC','PaleGoldenrod','PaleGreen','PaleTurquoise','PaleVioletRed','PapayaWhip','Peach','PeachPuff','Periwinkle','Peru','PineGreen','Pink','Plum','PowderBlue','ProcessBlue','Purple','RK2','RK3','RK3BS','RK4','RK5','RK5DP','RK5F','RawSienna','Red','RedOrange','RedViolet','Rhodamine','Right','RightJustified','RightSide','RosyBrown','RoyalBlue','RoyalPurple','RubineRed','S','SE','SSE','SSW','SW','SaddleBrown','Salmon','SandyBrown','SeaGreen','Seashell','Sepia','Sienna','Silver','SimpleHead','SkyBlue','SlateBlue','SlateGray','Snow','SpringGreen','SteelBlue','Suppress','SuppressQuiet','Tan','TeXHead','Teal','TealBlue','Thistle','Ticksize','Tomato',
-            'Turquoise','UnFill','Up','VERSION','Value','Vertical','Violet','VioletRed','W','WNW','WSW','Wheat','White','WhiteSmoke','WildStrawberry','XYAlign','YAlign','Yellow','YellowGreen','YellowOrange','addpenarc','addpenline','align','allowstepping','angularsystem','animationdelay','appendsuffix','arcarrowangle','arcarrowfactor','arrow2sizelimit','arrowangle','arrowbarb','arrowdir','arrowfactor','arrowhookfactor','arrowlength','arrowsizelimit','arrowtexfactor','authorpen','axis','axiscoverage','axislabelfactor','background','backgroundcolor','backgroundpen','barfactor','barmarksizefactor','basealign','baselinetemplate','beveljoin','bigvertexpen','bigvertexsize','black','blue','bm','bottom','bp','brown','bullet','byfoci','byvertices','camerafactor','chartreuse','circlemarkradiusfactor','circlenodesnumberfactor','circleprecision','circlescale','cm','codefile','codepen','codeskip','colorPen','coloredNodes','coloredSegments',
-            'conditionlength','conicnodesfactor','count','cputimeformat','crossmarksizefactor','currentcoordsys','currentlight','currentpatterns','currentpen','currentpicture','currentposition','currentprojection','curvilinearsystem','cuttings','cyan','darkblue','darkbrown','darkcyan','darkgray','darkgreen','darkgrey','darkmagenta','darkolive','darkred','dashdotted','dashed','datepen','dateskip','debuggerlines','debugging','deepblue','deepcyan','deepgray','deepgreen','deepgrey','deepmagenta','deepred','default','defaultControl','defaultS','defaultbackpen','defaultcoordsys','defaultexcursion','defaultfilename','defaultformat','defaultmassformat','defaultpen','diagnostics','differentlengths','dot','dotfactor','dotframe','dotted','doublelinepen','doublelinespacing','down','duplicateFuzz','edge','ellipsenodesnumberfactor','eps','epsgeo','epsilon','evenodd','expansionfactor','extendcap','exterior','fermionpen','figureborder','figuremattpen','file3','firstnode','firststep','foregroundcolor','fuchsia','fuzz','gapfactor','ghostpen','gluonamplitude','gluonpen','gluonratio','gray','green','grey','hatchepsilon','havepagenumber','heavyblue','heavycyan','heavygray','heavygreen','heavygrey','heavymagenta','heavyred','hline','hwratio','hyperbola','hyperbolanodesnumberfactor','identity4','ignore','inXasyMode','inch','inches','includegraphicscommand','inf','infinity','institutionpen','intMax','intMin','interior','invert','invisible','itempen','itemskip','itemstep','labelmargin','landscape','lastnode','left','legendhskip','legendlinelength',
-            'legendmargin','legendmarkersize','legendmaxrelativewidth','legendvskip','lightblue','lightcyan','lightgray','lightgreen','lightgrey','lightmagenta','lightolive','lightred','lightyellow','line','linemargin','lm_infmsg','lm_shortmsg','longdashdotted','longdashed','magenta','magneticRadius','mantissaBits','markangleradius','markangleradiusfactor','markanglespace','markanglespacefactor','mediumblue','mediumcyan','mediumgray','mediumgreen','mediumgrey','mediummagenta','mediumred','mediumyellow','middle','minDistDefault','minblockheight','minblockwidth','mincirclediameter','minipagemargin','minipagewidth','minvertexangle','miterjoin','mm','momarrowfactor','momarrowlength','momarrowmargin','momarrowoffset','momarrowpen','monoPen','morepoints','nCircle','newbulletcolor','ngraph','nil','nmesh','nobasealign','nodeMarginDefault','nodesystem','nomarker','nopoint','noprimary','nullpath','nullpen','numarray','ocgindex','oldbulletcolor','olive','orange','origin','overpaint','page','pageheight','pagemargin','pagenumberalign','pagenumberpen','pagenumberposition','pagewidth','paleblue','palecyan','palegray','palegreen','palegrey',
-            'palemagenta','palered','paleyellow','parabolanodesnumberfactor','perpfactor','phi','photonamplitude','photonpen','photonratio','pi','pink','plain','plain_bounds','plain_scaling','plus','preamblenodes','pt','purple','r3','r4a','r4b','randMax','realDigits','realEpsilon','realMax','realMin','red','relativesystem','reverse','right','roundcap','roundjoin','royalblue','salmon','saveFunctions','scalarpen','sequencereal','settings','shipped','signedtrailingzero','solid','springgreen','sqrtEpsilon','squarecap','squarepen','startposition','stdin','stdout','stepfactor','stepfraction','steppagenumberpen','stepping','stickframe','stickmarksizefactor','stickmarkspacefactor','swap','textpen','ticksize','tildeframe','tildemarksizefactor','tinv','titlealign','titlepagepen','titlepageposition','titlepen','titleskip','top','trailingzero','treeLevelStep','treeMinNodeWidth','treeNodeStep','trembleAngle','trembleFrequency','trembleRandom','undefined','unitcircle','unitsquare','up','urlpen','urlskip','version','vertexpen','vertexsize','viewportmargin','viewportsize','vline','white','wye','xformStack','yellow','ylabelwidth','zerotickfuzz','zerowinding'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '(', ')', '{', '}', '[', ']'
-            ),
-        1 => array('<', '>','='),
-        2 => array('+', '-', '*', '/', '%'),
-        3 => array('!', '^', '&', '|'),
-        4 => array('?', ':', ';'),
-        5 => array('..')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #990000;',
-            4 => 'color: #009900; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            2 => 'color: #339900;',
-            'MULTI' => 'color: #ff0000; 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: #660099; font-weight: bold;',
-            5 => 'color: #006699; font-weight: bold;',
-            'HARD' => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #008000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000dd;',
-            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
-            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #007788;',
-            2 => 'color: #007788;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;',
-            1 => 'color: #000080;',
-            2 => 'color: #000040;',
-            3 => 'color: #000040;',
-            4 => 'color: #008080;',
-            5 => 'color: #009080;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
-            )
-        )
-);
diff --git a/vendor/easybook/geshi/geshi/autoit.php b/vendor/easybook/geshi/geshi/autoit.php
deleted file mode 100644
index dc5a8f570f2594988ef814481fb997f3950a0f00..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/autoit.php
+++ /dev/null
@@ -1,1174 +0,0 @@
-<?php
-/*************************************************************************************
- * autoit.php
- * --------
- * Author: big_daddy (robert.i.anthony@gmail.com)
- * Copyright: (c) 2006 and to GESHi ;)
- * Release Version: 1.0.8.11
- * 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:
- * ----------
- * - not sure how to get sendkeys to work " {!}, {SPACE} etc... "
- * - 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/
- *************************************************************************************
- *
- *     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' => 'AutoIt',
-    'COMMENT_SINGLE' => array(';'),
-    'COMMENT_MULTI' => array(
-        '#comments-start' => '#comments-end',
-        '#cs' => '#ce'),
-    'COMMENT_REGEXP' => array(
-        0 => '/(?<!#)#(\s.*)?$/m',
-        1 => '/(?<=include)\s+<.*?>/'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    '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'
-            ),
-        2 => array(
-            '@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','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','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(
-            'ce','comments-end','comments-start','cs','include','include-once',
-            'NoTrayIcon','RequireAdmin'
-            ),
-        6 => array(
-            '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,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF; font-weight: bold;',
-            2 => 'color: #800000; font-weight: bold;',
-            3 => 'color: #000080; font-style: italic; font-weight: bold;',
-            4 => 'color: #0080FF; font-style: italic; font-weight: bold;',
-            5 => 'color: #F000FF; font-style: italic;',
-            6 => 'color: #A00FF0; font-style: italic;'
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'font-style: italic; color: #669900;',
-            0 => 'font-style: italic; color: #009933;',
-            1 => 'font-style: italic; color: #9977BB;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF0000; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'font-weight: bold; color: #9977BB;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #AC00A9; font-style: italic; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF; font-style: italic; font-weight: bold;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #FF0000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'font-weight: bold; color: #AA0000;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.autoitscript.com/autoit3/docs/keywords.htm',
-        2 => 'http://www.autoitscript.com/autoit3/docs/macros.htm',
-        3 => 'http://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        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)\#'
-            )
-        )
-    )
-);
-
diff --git a/vendor/easybook/geshi/geshi/batch.php b/vendor/easybook/geshi/geshi/batch.php
deleted file mode 100644
index 7d1ca635ba7d744bdaaa161bde4f3c7b195a118c..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/batch.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-/*************************************************************************************
- * batch.php
- * ------------
- * Author: FraidZZ ( fraidzz [@] bk.ru )
- * Copyright: (c) 2015 FraidZZ ( http://vk.com/fraidzz , http://www.cyberforum.ru/members/340557.html )
- * Release Version: 1.0.8.11
- * Date Started: 2015/03/28
- *
- * Windows batch file 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' => 'Windows Batch file',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-	'COMMENT_REGEXP' => array(
-		100 => '/(?:^|[&|])\\s*(?:rem|::)[^\\n]*/msi',
-		101 => '/[\\/-]\\S*/si',
-		102 => '/^\s*:[^:]\\S*/msi',
-		103 => '/(?:([%!])[^"\'~ ][^"\' ]*\\1|%%?(?:~[dpnxsatz]*)?[^"\'])/si'
-	),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-	'ESCAPE_REGEXP' => array(
-		100 => '/(?:([%!])\\S+\\1|%%(?:~[dpnxsatz]*)?[^"\'])/si'
-	),
-    'KEYWORDS' => array(
-        1 => array(
-            'echo', 'set', 'for', 'if', 'exit', 'else', 'do', 'not', 'defined', 'exist'
-            ),
-        2 => array(
-            "ASSOC", "ATTRIB", "BREAK", "BCDEDIT", "CACLS", "CD",
-			"CHCP", "CHDIR", "CHKDSK", "CHKNTFS", "CLS", "CMD", "COLOR",
-			"COMP", "COMPACT", "CONVERT", "COPY", "DATE", "DEL", "DIR",
-			"DISKCOMP", "DISKCOPY", "DISKPART", "DOSKEY", "DRIVERQUERY", "ECHO", "ENDLOCAL",
-			"ERASE", "EXIT", "FC", "FIND", "FINDSTR", "FOR", "FORMAT",
-			"FSUTIL", "FTYPE", "GPRESULT", "GRAFTABL", "HELP", "ICACLS",
-			"IF", "LABEL", "MD", "MKDIR", "MKLINK", "MODE", "MORE",
-			"MOVE", "OPENFILES", "PATH", "PAUSE", "POPD", "PRINT", "PROMPT",
-			"PUSHD", "RD", "RECOVER", "REN", "RENAME", "REPLACE", "RMDIR",
-			"ROBOCOPY", "SET", "SETLOCAL", "SC", "SCHTASKS", "SHIFT", "SHUTDOWN",
-			"SORT", "START", "SUBST", "SYSTEMINFO", "TASKLIST", "TASKKILL", "TIME",
-			"TITLE", "TREE", "TYPE", "VER", "VERIFY", "VOL", "XCOPY",
-			"WMIC", "CSCRIPT"
-            ),
-        3 => array(
-            "enabledelayedexpansion", "enableextensions"
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '+', '-', '~', '^', '@', '&', '*', '|', '/', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #800080; font-weight: bold;',
-            2 => 'color: #0080FF; font-weight: bold;',
-            3 => 'color: #0000FF; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #888888;',
-            2 => 'color: #FF1010; font-weight: bold;',
-			101 => 'color: #44aa44; font-weight: bold;',
-			100 => 'color: #888888;',
-			102 => 'color: #990000; font-weight: bold;',
-			103 => 'color: #000099; font-weight: bold;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            100 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;', 
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #44aa44; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #990000; font-weight: bold',
-			1 => 'color: #800080; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        0 => array(
-				GESHI_SEARCH => "((?:goto|call)\\s*)(\\S+)",
-				GESHI_REPLACE => "\\2",
-				GESHI_BEFORE => "\\1",
-				GESHI_MODIFIERS => "si",
-				GESHI_AFTER => ""
-			) ,
-		1 => "goto|call"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/vendor/easybook/geshi/geshi/cpp-qt.php b/vendor/easybook/geshi/geshi/cpp-qt.php
deleted file mode 100644
index dd7a615819e1d54aa56d25a882ad2427a595e13d..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/cpp-qt.php
+++ /dev/null
@@ -1,569 +0,0 @@
-<?php
-/*************************************************************************************
- * cpp.php
- * -------
- * Author: Iulian M
- * Copyright: (c) 2006 Iulian M
- * Release Version: 1.0.8.11
- * Date Started: 2004/09/27
- *
- * C++ (with Qt extensions) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/06/28 (1.0.8.4)
- *   -  Updated list of Keywords from Qt 4.5
- *
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- *
- * 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' => 'C++ (Qt)',
-    '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',
-        //C++ 11 string literal extensions
-        3 => '/(?:L|u8?|U)(?=")/',
-        //C++ 11 string literal extensions (raw)
-        4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    '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}#"
-        ),
-    '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', 'delete', 'new', 'this'
-            ),
-        2 => array(
-            'NULL', 'false', 'break', 'true', 'enum', 'errno', 'EDOM',
-            'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
-            'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
-            'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
-            'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
-            'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
-            'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
-            'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
-            'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
-            'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam',
-            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
-            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
-            'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
-            'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
-            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' ,
-            'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS',
-            'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK'
-            ),
-        3 => array(
-            'cin', 'cerr', 'clog', 'cout',
-            'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
-            'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
-            'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
-            'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
-            'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
-            'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
-            'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
-            'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
-            'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
-            'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
-            'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
-            'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
-            'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
-            'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
-            'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
-            'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
-            'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
-            'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
-            'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
-            ),
-        4 => array(
-            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
-            'register', 'short', 'shortint', 'signed', 'static', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
-            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
-            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
-
-            'int8', 'int16', 'int32', 'int64',
-            'uint8', 'uint16', 'uint32', 'uint64',
-
-            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
-            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
-
-            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
-            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
-
-            'int8_t', 'int16_t', 'int32_t', 'int64_t',
-            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
-
-            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
-            ),
-        5 => array(
-            "Q_UINT16", "Q_UINT32", "Q_UINT64", "Q_UINT8", "Q_ULLONG",
-            "Q_ULONG", "Q3Accel", "Q3Action", "Q3ActionGroup", "Q3AsciiBucket",
-            "Q3AsciiCache", "Q3AsciiCacheIterator", "Q3AsciiDict",
-            "Q3AsciiDictIterator", "Q3BaseBucket", "Q3BoxLayout", "Q3Button",
-            "Q3ButtonGroup", "Q3Cache", "Q3CacheIterator", "Q3Canvas",
-            "Q3CanvasEllipse", "Q3CanvasItem", "Q3CanvasItemList",
-            "Q3CanvasLine", "Q3CanvasPixmap", "Q3CanvasPixmapArray",
-            "Q3CanvasPolygon", "Q3CanvasPolygonalItem", "Q3CanvasRectangle",
-            "Q3CanvasSpline", "Q3CanvasSprite", "Q3CanvasText", "Q3CanvasView",
-            "Q3CheckListItem", "Q3CheckTableItem", "Q3CleanupHandler",
-            "Q3ColorDrag", "Q3ComboBox", "Q3ComboTableItem", "Q3CString",
-            "Q3DataBrowser", "Q3DataTable", "Q3DataView", "Q3DateEdit",
-            "Q3DateTimeEdit", "Q3DateTimeEditBase", "Q3DeepCopy", "Q3Dict",
-            "Q3DictIterator", "Q3Dns", "Q3DnsSocket", "Q3DockArea",
-            "Q3DockAreaLayout", "Q3DockWindow", "Q3DragObject", "Q3DropSite",
-            "Q3EditorFactory", "Q3FileDialog", "Q3FileIconProvider",
-            "Q3FilePreview", "Q3Frame", "Q3Ftp", "Q3GArray", "Q3GCache",
-            "Q3GCacheIterator", "Q3GDict", "Q3GDictIterator", "Q3GList",
-            "Q3GListIterator", "Q3GListStdIterator", "Q3Grid", "Q3GridLayout",
-            "Q3GridView", "Q3GroupBox", "Q3GVector", "Q3HBox", "Q3HBoxLayout",
-            "Q3HButtonGroup", "Q3Header", "Q3HGroupBox", "Q3Http",
-            "Q3HttpHeader", "Q3HttpRequestHeader", "Q3HttpResponseHeader",
-            "Q3IconDrag", "Q3IconDragItem", "Q3IconView", "Q3IconViewItem",
-            "Q3ImageDrag", "Q3IntBucket", "Q3IntCache", "Q3IntCacheIterator",
-            "Q3IntDict", "Q3IntDictIterator", "Q3ListBox", "Q3ListBoxItem",
-            "Q3ListBoxPixmap", "Q3ListBoxText", "Q3ListView", "Q3ListViewItem",
-            "Q3ListViewItemIterator", "Q3LNode", "Q3LocalFs", "Q3MainWindow",
-            "Q3MemArray", "Q3MimeSourceFactory", "Q3MultiLineEdit",
-            "Q3NetworkOperation", "Q3NetworkProtocol", "Q3NetworkProtocolDict",
-            "Q3NetworkProtocolFactory", "Q3NetworkProtocolFactoryBase",
-            "Q3ObjectDictionary", "Q3PaintDeviceMetrics", "Q3Painter",
-            "Q3Picture", "Q3PointArray", "Q3PolygonScanner", "Q3PopupMenu",
-            "Q3Process", "Q3ProgressBar", "Q3ProgressDialog", "Q3PtrBucket",
-            "Q3PtrCollection", "Q3PtrDict", "Q3PtrDictIterator", "Q3PtrList",
-            "Q3PtrListIterator", "Q3PtrListStdIterator", "Q3PtrQueue",
-            "Q3PtrStack", "Q3PtrVector", "Q3RangeControl", "Q3ScrollView",
-            "Q3Semaphore", "Q3ServerSocket", "Q3Shared", "Q3Signal",
-            "Q3SimpleRichText", "Q3SingleCleanupHandler", "Q3Socket",
-            "Q3SocketDevice", "Q3SortedList", "Q3SpinWidget", "Q3SqlCursor",
-            "Q3SqlEditorFactory", "Q3SqlFieldInfo", "Q3SqlFieldInfoList",
-            "Q3SqlForm", "Q3SqlPropertyMap", "Q3SqlRecordInfo",
-            "Q3SqlSelectCursor", "Q3StoredDrag", "Q3StrIList", "Q3StringBucket",
-            "Q3StrIVec", "Q3StrList", "Q3StrListIterator", "Q3StrVec",
-            "Q3StyleSheet", "Q3StyleSheetItem", "Q3SyntaxHighlighter",
-            "Q3TabDialog", "Q3Table", "Q3TableItem", "Q3TableSelection",
-            "Q3TextBrowser", "Q3TextDrag", "Q3TextEdit",
-            "Q3TextEditOptimPrivate", "Q3TextStream", "Q3TextView",
-            "Q3TimeEdit", "Q3ToolBar", "Q3TSFUNC", "Q3UriDrag", "Q3Url",
-            "Q3UrlOperator", "Q3ValueList", "Q3ValueListConstIterator",
-            "Q3ValueListIterator", "Q3ValueStack", "Q3ValueVector", "Q3VBox",
-            "Q3VBoxLayout", "Q3VButtonGroup", "Q3VGroupBox", "Q3WhatsThis",
-            "Q3WidgetStack", "Q3Wizard", "QAbstractButton",
-            "QAbstractEventDispatcher", "QAbstractExtensionFactory",
-            "QAbstractExtensionManager", "QAbstractFileEngine",
-            "QAbstractFileEngineHandler", "QAbstractFileEngineIterator",
-            "QAbstractFormBuilder", "QAbstractGraphicsShapeItem",
-            "QAbstractItemDelegate", "QAbstractItemModel", "QAbstractItemView",
-            "QAbstractListModel", "QAbstractMessageHandler",
-            "QAbstractNetworkCache", "QAbstractPageSetupDialog",
-            "QAbstractPrintDialog", "QAbstractProxyModel",
-            "QAbstractScrollArea", "QAbstractSlider", "QAbstractSocket",
-            "QAbstractSpinBox", "QAbstractTableModel",
-            "QAbstractTextDocumentLayout", "QAbstractUndoItem",
-            "QAbstractUriResolver", "QAbstractXmlNodeModel",
-            "QAbstractXmlReceiver", "QAccessible", "QAccessible2Interface",
-            "QAccessibleApplication", "QAccessibleBridge",
-            "QAccessibleBridgeFactoryInterface", "QAccessibleBridgePlugin",
-            "QAccessibleEditableTextInterface", "QAccessibleEvent",
-            "QAccessibleFactoryInterface", "QAccessibleInterface",
-            "QAccessibleInterfaceEx", "QAccessibleObject",
-            "QAccessibleObjectEx", "QAccessiblePlugin",
-            "QAccessibleSimpleEditableTextInterface",
-            "QAccessibleTableInterface", "QAccessibleTextInterface",
-            "QAccessibleValueInterface", "QAccessibleWidget",
-            "QAccessibleWidgetEx", "QAction", "QActionEvent", "QActionGroup",
-            "QApplication", "QArgument", "QAssistantClient", "QAtomicInt",
-            "QAtomicPointer", "QAuthenticator", "QBasicAtomicInt",
-            "QBasicAtomicPointer", "QBasicTimer", "QBitArray", "QBitmap",
-            "QBitRef", "QBool", "QBoxLayout", "QBrush", "QBrushData", "QBuffer",
-            "QButtonGroup", "QByteArray", "QByteArrayMatcher", "QByteRef",
-            "QCache", "QCalendarWidget", "QCDEStyle", "QChar", "QCharRef",
-            "QCheckBox", "QChildEvent", "QCleanlooksStyle", "QClipboard",
-            "QClipboardEvent", "QCloseEvent", "QColor", "QColorDialog",
-            "QColorGroup", "QColormap", "QColumnView", "QComboBox",
-            "QCommandLinkButton", "QCommonStyle", "QCompleter",
-            "QConicalGradient", "QConstString", "QContextMenuEvent", "QCOORD",
-            "QCoreApplication", "QCryptographicHash", "QCursor", "QCursorShape",
-            "QCustomEvent", "QDataStream", "QDataWidgetMapper", "QDate",
-            "QDateEdit", "QDateTime", "QDateTimeEdit", "QDB2Driver",
-            "QDB2Result", "QDBusAbstractAdaptor", "QDBusAbstractInterface",
-            "QDBusArgument", "QDBusConnection", "QDBusConnectionInterface",
-            "QDBusContext", "QDBusError", "QDBusInterface", "QDBusMessage",
-            "QDBusMetaType", "QDBusObjectPath", "QDBusPendingCall",
-            "QDBusPendingCallWatcher", "QDBusPendingReply",
-            "QDBusPendingReplyData", "QDBusReply", "QDBusServer",
-            "QDBusSignature", "QDBusVariant", "QDebug",
-            "QDesignerActionEditorInterface", "QDesignerBrushManagerInterface",
-            "QDesignerComponents", "QDesignerContainerExtension",
-            "QDesignerCustomWidgetCollectionInterface",
-            "QDesignerCustomWidgetInterface", "QDesignerDnDItemInterface",
-            "QDesignerDynamicPropertySheetExtension", "QDesignerExportWidget",
-            "QDesignerExtraInfoExtension", "QDesignerFormEditorInterface",
-            "QDesignerFormEditorPluginInterface", "QDesignerFormWindowCursorInterface",
-            "QDesignerFormWindowInterface", "QDesignerFormWindowManagerInterface",
-            "QDesignerFormWindowToolInterface",
-            "QDesignerIconCacheInterface", "QDesignerIntegrationInterface",
-            "QDesignerLanguageExtension", "QDesignerLayoutDecorationExtension",
-            "QDesignerMemberSheetExtension", "QDesignerMetaDataBaseInterface",
-            "QDesignerMetaDataBaseItemInterface",
-            "QDesignerObjectInspectorInterface", "QDesignerPromotionInterface",
-            "QDesignerPropertyEditorInterface",
-            "QDesignerPropertySheetExtension", "QDesignerResourceBrowserInterface",
-            "QDesignerTaskMenuExtension", "QDesignerWidgetBoxInterface",
-            "QDesignerWidgetDataBaseInterface", "QDesignerWidgetDataBaseItemInterface",
-            "QDesignerWidgetFactoryInterface", "QDesktopServices",
-            "QDesktopWidget", "QDial", "QDialog", "QDialogButtonBox", "QDir",
-            "QDirIterator", "QDirModel", "QDockWidget", "QDomAttr",
-            "QDomCDATASection", "QDomCharacterData", "QDomComment",
-            "QDomDocument", "QDomDocumentFragment", "QDomDocumentType",
-            "QDomElement", "QDomEntity", "QDomEntityReference",
-            "QDomImplementation", "QDomNamedNodeMap", "QDomNode",
-            "QDomNodeList", "QDomNotation", "QDomProcessingInstruction",
-            "QDomText", "QDoubleSpinBox", "QDoubleValidator", "QDrag",
-            "QDragEnterEvent", "QDragLeaveEvent", "QDragMoveEvent",
-            "QDragResponseEvent", "QDropEvent", "QDynamicPropertyChangeEvent",
-            "QErrorMessage", "QEvent", "QEventLoop", "QEventSizeOfChecker",
-            "QExplicitlySharedDataPointer", "QExtensionFactory",
-            "QExtensionManager", "QFactoryInterface", "QFile", "QFileDialog",
-            "QFileIconProvider", "QFileInfo", "QFileInfoList",
-            "QFileInfoListIterator", "QFileOpenEvent", "QFileSystemModel",
-            "QFileSystemWatcher", "QFlag", "QFlags", "QFocusEvent",
-            "QFocusFrame", "QFont", "QFontComboBox", "QFontDatabase",
-            "QFontDialog", "QFontInfo", "QFontMetrics", "QFontMetricsF",
-            "QForeachContainer", "QForeachContainerBase", "QFormBuilder",
-            "QFormLayout", "QFrame", "QFSFileEngine", "QFtp", "QFuture",
-            "QFutureInterface", "QFutureInterfaceBase", "QFutureIterator",
-            "QFutureSynchronizer", "QFutureWatcher", "QFutureWatcherBase",
-            "QGenericArgument", "QGenericReturnArgument", "QGLColormap",
-            "QGLContext", "QGLFormat", "QGLFramebufferObject", "QGlobalStatic",
-            "QGlobalStaticDeleter", "QGLPixelBuffer", "QGLWidget", "QGradient",
-            "QGradientStop", "QGradientStops", "QGraphicsEllipseItem",
-            "QGraphicsGridLayout", "QGraphicsItem", "QGraphicsItemAnimation",
-            "QGraphicsItemGroup", "QGraphicsLayout", "QGraphicsLayoutItem",
-            "QGraphicsLinearLayout", "QGraphicsLineItem", "QGraphicsPathItem",
-            "QGraphicsPixmapItem", "QGraphicsPolygonItem",
-            "QGraphicsProxyWidget", "QGraphicsRectItem", "QGraphicsScene",
-            "QGraphicsSceneContextMenuEvent", "QGraphicsSceneDragDropEvent",
-            "QGraphicsSceneEvent", "QGraphicsSceneHelpEvent",
-            "QGraphicsSceneHoverEvent", "QGraphicsSceneMouseEvent",
-            "QGraphicsSceneMoveEvent", "QGraphicsSceneResizeEvent",
-            "QGraphicsSceneWheelEvent", "QGraphicsSimpleTextItem",
-            "QGraphicsSvgItem", "QGraphicsTextItem", "QGraphicsView",
-            "QGraphicsWidget", "QGridLayout", "QGroupBox", "QGtkStyle", "QHash",
-            "QHashData", "QHashDummyNode", "QHashDummyValue", "QHashIterator",
-            "QHashNode", "QHBoxLayout", "QHeaderView", "QHelpContentItem",
-            "QHelpContentModel", "QHelpContentWidget", "QHelpEngine",
-            "QHelpEngineCore", "QHelpEvent", "QHelpGlobal", "QHelpIndexModel",
-            "QHelpIndexWidget", "QHelpSearchEngine", "QHelpSearchQuery",
-            "QHelpSearchQueryWidget", "QHelpSearchResultWidget", "QHideEvent",
-            "QHostAddress", "QHostInfo", "QHoverEvent", "QHttp", "QHttpHeader",
-            "QHttpRequestHeader", "QHttpResponseHeader", "QIBaseDriver",
-            "QIBaseResult", "QIcon", "QIconDragEvent", "QIconEngine",
-            "QIconEngineFactoryInterface", "QIconEngineFactoryInterfaceV2",
-            "QIconEnginePlugin", "QIconEnginePluginV2", "QIconEngineV2",
-            "QIconSet", "QImage", "QImageIOHandler",
-            "QImageIOHandlerFactoryInterface", "QImageIOPlugin", "QImageReader",
-            "QImageTextKeyLang", "QImageWriter", "QIncompatibleFlag",
-            "QInputContext", "QInputContextFactory",
-            "QInputContextFactoryInterface", "QInputContextPlugin",
-            "QInputDialog", "QInputEvent", "QInputMethodEvent", "Q_INT16",
-            "Q_INT32", "Q_INT64", "Q_INT8", "QInternal", "QIntForSize",
-            "QIntForType", "QIntValidator", "QIODevice", "Q_IPV6ADDR",
-            "QIPv6Address", "QItemDelegate", "QItemEditorCreator",
-            "QItemEditorCreatorBase", "QItemEditorFactory", "QItemSelection",
-            "QItemSelectionModel", "QItemSelectionRange", "QKeyEvent",
-            "QKeySequence", "QLabel", "QLatin1Char", "QLatin1String", "QLayout",
-            "QLayoutItem", "QLayoutIterator", "QLCDNumber", "QLibrary",
-            "QLibraryInfo", "QLine", "QLinearGradient", "QLineEdit", "QLineF",
-            "QLinkedList", "QLinkedListData", "QLinkedListIterator",
-            "QLinkedListNode", "QList", "QListData", "QListIterator",
-            "QListView", "QListWidget", "QListWidgetItem", "Q_LLONG", "QLocale",
-            "QLocalServer", "QLocalSocket", "Q_LONG", "QMacCompatGLenum",
-            "QMacCompatGLint", "QMacCompatGLuint", "QMacGLCompatTypes",
-            "QMacMime", "QMacPasteboardMime", "QMainWindow", "QMap", "QMapData",
-            "QMapIterator", "QMapNode", "QMapPayloadNode", "QMatrix",
-            "QMdiArea", "QMdiSubWindow", "QMenu", "QMenuBar",
-            "QMenubarUpdatedEvent", "QMenuItem", "QMessageBox",
-            "QMetaClassInfo", "QMetaEnum", "QMetaMethod", "QMetaObject",
-            "QMetaObjectExtraData", "QMetaProperty", "QMetaType", "QMetaTypeId",
-            "QMetaTypeId2", "QMimeData", "QMimeSource", "QModelIndex",
-            "QModelIndexList", "QMotifStyle", "QMouseEvent", "QMoveEvent",
-            "QMovie", "QMultiHash", "QMultiMap", "QMutableFutureIterator",
-            "QMutableHashIterator", "QMutableLinkedListIterator",
-            "QMutableListIterator", "QMutableMapIterator",
-            "QMutableSetIterator", "QMutableStringListIterator",
-            "QMutableVectorIterator", "QMutex", "QMutexLocker", "QMYSQLDriver",
-            "QMYSQLResult", "QNetworkAccessManager", "QNetworkAddressEntry",
-            "QNetworkCacheMetaData", "QNetworkCookie", "QNetworkCookieJar",
-            "QNetworkDiskCache", "QNetworkInterface", "QNetworkProxy",
-            "QNetworkProxyFactory", "QNetworkProxyQuery", "QNetworkReply",
-            "QNetworkRequest", "QNoDebug", "QNoImplicitBoolCast", "QObject",
-            "QObjectCleanupHandler", "QObjectData", "QObjectList",
-            "QObjectUserData", "QOCIDriver", "QOCIResult", "QODBCDriver",
-            "QODBCResult", "QPageSetupDialog", "QPaintDevice", "QPaintEngine",
-            "QPaintEngineState", "QPainter", "QPainterPath",
-            "QPainterPathPrivate", "QPainterPathStroker", "QPaintEvent",
-            "QPair", "QPalette", "QPen", "QPersistentModelIndex", "QPicture",
-            "QPictureFormatInterface", "QPictureFormatPlugin", "QPictureIO",
-            "Q_PID", "QPixmap", "QPixmapCache", "QPlainTextDocumentLayout",
-            "QPlainTextEdit", "QPlastiqueStyle", "QPluginLoader", "QPoint",
-            "QPointer", "QPointF", "QPolygon", "QPolygonF", "QPrintDialog",
-            "QPrintEngine", "QPrinter", "QPrinterInfo", "QPrintPreviewDialog",
-            "QPrintPreviewWidget", "QProcess", "QProgressBar",
-            "QProgressDialog", "QProxyModel", "QPSQLDriver", "QPSQLResult",
-            "QPushButton", "QQueue", "QRadialGradient", "QRadioButton",
-            "QReadLocker", "QReadWriteLock", "QRect", "QRectF", "QRegExp",
-            "QRegExpValidator", "QRegion", "QResizeEvent", "QResource",
-            "QReturnArgument", "QRgb", "QRubberBand", "QRunnable",
-            "QScriptable", "QScriptClass", "QScriptClassPropertyIterator",
-            "QScriptContext", "QScriptContextInfo", "QScriptContextInfoList",
-            "QScriptEngine", "QScriptEngineAgent", "QScriptEngineDebugger",
-            "QScriptExtensionInterface", "QScriptExtensionPlugin",
-            "QScriptString", "QScriptSyntaxCheckResult", "QScriptValue",
-            "QScriptValueIterator", "QScriptValueList", "QScrollArea",
-            "QScrollBar", "QSemaphore", "QSessionManager", "QSet",
-            "QSetIterator", "QSettings", "QSharedData", "QSharedDataPointer",
-            "QSharedMemory", "QSharedPointer", "QShortcut", "QShortcutEvent",
-            "QShowEvent", "QSignalMapper", "QSignalSpy", "QSimpleXmlNodeModel",
-            "QSize", "QSizeF", "QSizeGrip", "QSizePolicy", "QSlider",
-            "QSocketNotifier", "QSortFilterProxyModel", "QSound",
-            "QSourceLocation", "QSpacerItem", "QSpinBox", "QSplashScreen",
-            "QSplitter", "QSplitterHandle", "QSpontaneKeyEvent", "QSqlDatabase",
-            "QSqlDriver", "QSqlDriverCreator", "QSqlDriverCreatorBase",
-            "QSqlDriverFactoryInterface", "QSqlDriverPlugin", "QSqlError",
-            "QSqlField", "QSqlIndex", "QSQLite2Driver", "QSQLite2Result",
-            "QSQLiteDriver", "QSQLiteResult", "QSqlQuery", "QSqlQueryModel",
-            "QSqlRecord", "QSqlRelation", "QSqlRelationalDelegate",
-            "QSqlRelationalTableModel", "QSqlResult", "QSqlTableModel", "QSsl",
-            "QSslCertificate", "QSslCipher", "QSslConfiguration", "QSslError",
-            "QSslKey", "QSslSocket", "QStack", "QStackedLayout",
-            "QStackedWidget", "QStandardItem", "QStandardItemEditorCreator",
-            "QStandardItemModel", "QStatusBar", "QStatusTipEvent",
-            "QStdWString", "QString", "QStringList", "QStringListIterator",
-            "QStringListModel", "QStringMatcher", "QStringRef", "QStyle",
-            "QStyledItemDelegate", "QStyleFactory", "QStyleFactoryInterface",
-            "QStyleHintReturn", "QStyleHintReturnMask",
-            "QStyleHintReturnVariant", "QStyleOption", "QStyleOptionButton",
-            "QStyleOptionComboBox", "QStyleOptionComplex",
-            "QStyleOptionDockWidget", "QStyleOptionDockWidgetV2",
-            "QStyleOptionFocusRect", "QStyleOptionFrame", "QStyleOptionFrameV2",
-            "QStyleOptionFrameV3", "QStyleOptionGraphicsItem",
-            "QStyleOptionGroupBox", "QStyleOptionHeader",
-            "QStyleOptionMenuItem", "QStyleOptionProgressBar",
-            "QStyleOptionProgressBarV2", "QStyleOptionQ3DockWindow",
-            "QStyleOptionQ3ListView", "QStyleOptionQ3ListViewItem",
-            "QStyleOptionRubberBand", "QStyleOptionSizeGrip",
-            "QStyleOptionSlider", "QStyleOptionSpinBox", "QStyleOptionTab",
-            "QStyleOptionTabBarBase", "QStyleOptionTabBarBaseV2",
-            "QStyleOptionTabV2", "QStyleOptionTabV3",
-            "QStyleOptionTabWidgetFrame", "QStyleOptionTitleBar",
-            "QStyleOptionToolBar", "QStyleOptionToolBox",
-            "QStyleOptionToolBoxV2", "QStyleOptionToolButton",
-            "QStyleOptionViewItem", "QStyleOptionViewItemV2",
-            "QStyleOptionViewItemV3", "QStyleOptionViewItemV4", "QStylePainter",
-            "QStylePlugin", "QSvgGenerator", "QSvgRenderer", "QSvgWidget",
-            "QSyntaxHighlighter", "QSysInfo", "QSystemLocale",
-            "QSystemSemaphore", "QSystemTrayIcon", "Qt", "Qt3Support",
-            "QTabBar", "QTabletEvent", "QTableView", "QTableWidget",
-            "QTableWidgetItem", "QTableWidgetSelectionRange", "QTabWidget",
-            "QtAlgorithms", "QtAssistant", "QtCleanUpFunction",
-            "QtConcurrentFilter", "QtConcurrentMap", "QtConcurrentRun",
-            "QtContainerFwd", "QtCore", "QTcpServer", "QTcpSocket", "QtDBus",
-            "QtDebug", "QtDesigner", "QTDSDriver", "QTDSResult",
-            "QTemporaryFile", "QtEndian", "QTest", "QTestAccessibility",
-            "QTestAccessibilityEvent", "QTestData", "QTestDelayEvent",
-            "QTestEvent", "QTestEventList", "QTestEventLoop",
-            "QTestKeyClicksEvent", "QTestKeyEvent", "QTestMouseEvent",
-            "QtEvents", "QTextBlock", "QTextBlockFormat", "QTextBlockGroup",
-            "QTextBlockUserData", "QTextBoundaryFinder", "QTextBrowser",
-            "QTextCharFormat", "QTextCodec", "QTextCodecFactoryInterface",
-            "QTextCodecPlugin", "QTextCursor", "QTextDecoder", "QTextDocument",
-            "QTextDocumentFragment", "QTextDocumentWriter", "QTextEdit",
-            "QTextEncoder", "QTextFormat", "QTextFragment", "QTextFrame",
-            "QTextFrameFormat", "QTextFrameLayoutData", "QTextImageFormat",
-            "QTextInlineObject", "QTextIStream", "QTextItem", "QTextLayout",
-            "QTextLength", "QTextLine", "QTextList", "QTextListFormat",
-            "QTextObject", "QTextObjectInterface", "QTextOption",
-            "QTextOStream", "QTextStream", "QTextStreamFunction",
-            "QTextStreamManipulator", "QTextTable", "QTextTableCell",
-            "QTextTableCellFormat", "QTextTableFormat", "QtGlobal", "QtGui",
-            "QtHelp", "QThread", "QThreadPool", "QThreadStorage",
-            "QThreadStorageData", "QTime", "QTimeEdit", "QTimeLine", "QTimer",
-            "QTimerEvent", "QtMsgHandler", "QtNetwork", "QToolBar",
-            "QToolBarChangeEvent", "QToolBox", "QToolButton", "QToolTip",
-            "QtOpenGL", "QtPlugin", "QtPluginInstanceFunction", "QTransform",
-            "QTranslator", "QTreeView", "QTreeWidget", "QTreeWidgetItem",
-            "QTreeWidgetItemIterator", "QTS", "QtScript", "QtScriptTools",
-            "QtSql", "QtSvg", "QtTest", "QtUiTools", "QtWebKit", "QtXml",
-            "QtXmlPatterns", "QTypeInfo", "QUdpSocket", "QUiLoader",
-            "QUintForSize", "QUintForType", "QUndoCommand", "QUndoGroup",
-            "QUndoStack", "QUndoView", "QUnixPrintWidget", "QUpdateLaterEvent",
-            "QUrl", "QUrlInfo", "QUuid", "QValidator", "QVariant",
-            "QVariantComparisonHelper", "QVariantHash", "QVariantList",
-            "QVariantMap", "QVarLengthArray", "QVBoxLayout", "QVector",
-            "QVectorData", "QVectorIterator", "QVectorTypedData",
-            "QWaitCondition", "QWeakPointer", "QWebDatabase", "QWebFrame",
-            "QWebHistory", "QWebHistoryInterface", "QWebHistoryItem",
-            "QWebHitTestResult", "QWebPage", "QWebPluginFactory",
-            "QWebSecurityOrigin", "QWebSettings", "QWebView", "QWhatsThis",
-            "QWhatsThisClickedEvent", "QWheelEvent", "QWidget", "QWidgetAction",
-            "QWidgetData", "QWidgetItem", "QWidgetItemV2", "QWidgetList",
-            "QWidgetMapper", "QWidgetSet", "QWindowsCEStyle", "QWindowsMime",
-            "QWindowsMobileStyle", "QWindowsStyle", "QWindowStateChangeEvent",
-            "QWindowsVistaStyle", "QWindowsXPStyle", "QWizard", "QWizardPage",
-            "QWMatrix", "QWorkspace", "QWriteLocker", "QX11EmbedContainer",
-            "QX11EmbedWidget", "QX11Info", "QXmlAttributes",
-            "QXmlContentHandler", "QXmlDeclHandler", "QXmlDefaultHandler",
-            "QXmlDTDHandler", "QXmlEntityResolver", "QXmlErrorHandler",
-            "QXmlFormatter", "QXmlInputSource", "QXmlItem",
-            "QXmlLexicalHandler", "QXmlLocator", "QXmlName", "QXmlNamePool",
-            "QXmlNamespaceSupport", "QXmlNodeModelIndex", "QXmlParseException",
-            "QXmlQuery", "QXmlReader", "QXmlResultItems", "QXmlSerializer",
-            "QXmlSimpleReader", "QXmlStreamAttribute", "QXmlStreamAttributes",
-            "QXmlStreamEntityDeclaration", "QXmlStreamEntityDeclarations",
-            "QXmlStreamEntityResolver", "QXmlStreamNamespaceDeclaration",
-            "QXmlStreamNamespaceDeclarations", "QXmlStreamNotationDeclaration",
-            "QXmlStreamNotationDeclarations", "QXmlStreamReader",
-            "QXmlStreamStringRef", "QXmlStreamWriter"
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', ';', '|', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight:bold;',
-            2 => 'color: #0057AE;',
-            3 => 'color: #2B74C7;',
-            4 => 'color: #0057AE;',
-            5 => 'color: #22aadd;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #888888;',
-            2 => 'color: #006E28;',
-            3 => 'color: #BF0303;',
-            4 => 'color: #BF0303;',
-            'MULTI' => 'color: #888888; 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: #660099; font-weight: bold;',
-            5 => 'color: #006699; font-weight: bold;',
-            'HARD' => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #006E28;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #BF0303;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #B08000;',
-            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
-            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #2B74C7;',
-            2 => 'color: #2B74C7;',
-            3 => 'color: #2B74C7;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #006E28;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => 'http://doc.qt.io/qt-5/{FNAMEL}.html'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::',
-        3 => '-&gt;',
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => 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_]*',
-        )
-    )
-);
-
diff --git a/vendor/easybook/geshi/geshi/css.php b/vendor/easybook/geshi/geshi/css.php
deleted file mode 100644
index 6f923a8eb384221cbf2ba6755e30b90230a00d55..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/css.php
+++ /dev/null
@@ -1,237 +0,0 @@
-<?php
-/*************************************************************************************
- * css.php
- * -------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
- * Date Started: 2004/06/18
- *
- * CSS language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- * 2004/11/27 (1.0.3)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.2)
- *   -  Changed regexps to catch "-" symbols
- *   -  Added support for URLs
- * 2004/08/05 (1.0.1)
- *   -  Added support for symbols
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Improve or drop regexps for class/id/psuedoclass highlighting
- * * Re-look at keywords - possibly to make several CSS language
- *   files, all with different versions of CSS in them
- *
- *************************************************************************************
- *
- *     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' => 'CSS',
-    'COMMENT_SINGLE' => array(1 => '@'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        2 => "/(?<=\\()\\s*(?:(?:[a-z0-9]+?:\\/\\/)?[a-z0-9_\\-\\.\\/:]+?)?[a-z]+?\\.[a-z]+?(\\?[^\)]+?)?\\s*?(?=\\))/i"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        //1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\[\da-fA-F]{1,6}\s?#i",
-        //Unicode Char Specs
-        //3 => "#\\\\u[\da-fA-F]{1,8}#i",
-        ),
-    'KEYWORDS' => array(
-        1 => array(
-            'align-items', 'align-self', 'align-content',
-            'aqua', 'azimuth', 'background-attachment', 'background-color',
-            'background-image', 'background-position', 'background-repeat',
-            'background', 'black', 'blue', 'border-bottom-color',
-            'border-radius', 'border-top-left-radius', 'border-top-right-radius',
-            'border-bottom-right-radius', 'border-bottom-left-radius',
-            'border-bottom-style', 'border-bottom-width', 'border-image-source',
-            'border-image-slice', 'border-image-width', 'border-image-outset',
-            'border-image-repeat', 'border-image', 'border-left-color',
-            'border-left-style', 'border-left-width', 'border-right',
-            'border-right-color', 'border-right-style', 'border-right-width',
-            'border-top-color', 'border-top-style',
-            'border-top-width','border-bottom', 'border-collapse',
-            'border-left', 'border-width', 'border-color', 'border-spacing',
-            'border-style', 'border-top', 'border', 'box-shadow',
-            'break-after', 'break-before', 'break-inside', 'column-count',
-            'column-fill', 'column-gap', 'column-rule', 'column-rule-color',
-            'column-rule-style', 'column-rule-width', 'columns', 'column-span',
-            'column-width', 'caption-side', 'clear',
-            'clip', 'color', 'content', 'counter-increment', 'counter-reset',
-            'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display',
-            'elevation', 'empty-cells', 'flex-direction', 'flex-grow',
-            'flex-wrap', 'flex-shrink', 'flex-basis', 'flex-flow', 'flex',
-
-            'float', 'font-family', 'font-size',
-            'font-size-adjust', 'font-stretch', 'font-style', 'font-variant',
-            'font-weight', 'font', 'justify-content', 'line-height', 'letter-spacing',
-            'list-style', 'list-style-image', 'list-style-position',
-            'list-style-type', 'margin-bottom', 'margin-left', 'margin-right',
-            'margin-top', 'margin', 'marker-offset', 'marks', 'max-height',
-            'max-width', 'min-height', 'min-width', 'order', 'orphans', 'outline',
-            'outline-color', 'outline-style', 'outline-width', 'overflow',
-            'padding-bottom', 'padding-left', 'padding-right', 'padding-top',
-            'padding', 'page', 'page-break-after', 'page-break-before',
-            'page-break-inside', 'pause-after', 'pause-before', 'pause',
-            'pitch', 'pitch-range', 'play-during', 'position', 'quotes',
-            'richness', 'right', 'size', 'speak-header', 'speak-numeral',
-            'speak-punctuation', 'speak', 'speech-rate', 'stress',
-            'table-layout', 'text-align', 'text-decoration', 'text-indent',
-            'text-shadow', 'text-transform', 'top', 'unicode-bidi',
-            'vertical-align', 'visibility', 'voice-family', 'volume',
-            'white-space', 'widows', 'width', 'word-spacing', 'z-index',
-            'bottom', 'left', 'height'
-            ),
-        2 => array(
-            'above', 'absolute', 'always', 'armenian', 'aural', 'auto',
-            'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink',
-            'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left',
-            'center-right', 'center', 'circle', 'cjk-ideographic',
-            'close-quote', 'collapse', 'column', 'column-reverse', 'condensed', 'continuous', 'crop',
-            'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero',
-            'decimal', 'default', 'digits', 'disc', 'dotted', 'double',
-            'ease-in', 'ease-out',
-            'e-resize', 'embed', 'extra-condensed', 'extra-expanded',
-            'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast',
-            'fixed', 'flex-end', 'flex-start', 'fuchsia', 'georgian', 'gray', 'green', 'groove',
-            'hebrew', 'help', 'hidden', 'hide', 'higher', 'high',
-            'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table',
-            'inline', 'inset', 'inside', 'invert', 'italic', 'justify',
-            'katakana-iroha', 'katakana', 'landscape', 'larger', 'large',
-            'left-side', 'leftwards', 'level', 'lighter', 'lime',
-            'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek',
-            'lower-roman', 'lowercase', 'ltr', 'lower', 'low', 'maroon',
-            'medium', 'message-box', 'middle', 'mix', 'monospace', 'n-resize',
-            'narrower', 'navy', 'ne-resize', 'no-close-quote',
-            'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap',
-            'nw-resize', 'oblique', 'olive', 'once', 'open-quote', 'outset',
-            'outside', 'overline', 'pointer', 'portrait', 'purple', 'px',
-            'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb',
-            'ridge', 'right-side', 'rightwards', 'row', 'row-reverse', 's-resize', 'sans-serif',
-            'scroll', 'se-resize', 'semi-condensed', 'semi-expanded',
-            'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower',
-            'small-caps', 'small-caption', 'smaller', 'soft', 'solid',
-            'space-around', 'space-between',
-            'spell-out', 'square', 'static', 'status-bar', 'stretch', 'super',
-            'sw-resize', 'table-caption', 'table-cell', 'table-column',
-            'table-column-group', 'table-footer-group', 'table-header-group',
-            'table-row', 'table-row-group', 'teal', 'text', 'text-bottom',
-            'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed',
-            'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin',
-            'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait',
-            'white', 'wider', 'wrap', 'wrap-reverse', 'x-fast', 'x-high', 'x-large', 'x-loud',
-            'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow',
-            'yes'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', ':', ';',
-        '>', '+', '*', ',', '^', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #a1a100;',
-            2 => 'color: #ff0000; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            //1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #000099; font-weight: bold;'
-            //3 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #00AA00;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #00AA00;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #cc00cc;',
-            1 => 'color: #6666ff;',
-            2 => 'color: #3333ff;',
-            3 => 'color: #933;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //DOM Node ID
-        0 => '\#[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*',
-        //CSS classname
-        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)|<\|))',
-        //Measurements
-        3 => '[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_AFTER' => '(?![\-a-zA-Z0-9_\|%\\-&\.])',
-            'DISALLOWED_BEFORE' => '(?<![\-a-zA-Z0-9_\|%\\~&\.])'
-        )
-    )
-);
-
diff --git a/vendor/easybook/geshi/geshi/gml.php b/vendor/easybook/geshi/geshi/gml.php
deleted file mode 100644
index 58387b38af3068f6195fdc7c1be252e438cce722..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/gml.php
+++ /dev/null
@@ -1,504 +0,0 @@
-<?php
-/*************************************************************************************
- * gml.php
- * --------
- * 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.11
- * Date Started: 2005/06/21
- *
- * GML language file for GeSHi.
- *
- * GML (Game Maker Language) is a script language that is built-in into Game Maker,
- * a game creation program, more info about Game Maker can be found at
- * http://www.gamemaker.nl/
- * All GML keywords were extracted from the Game Maker HTML Help file using a PHP
- * script (one section at a time). I love PHP for saving me that bunch of work :P!.
- * I think all GML functions have been indexed here, but I'm not sure about it, so
- * please let me know of any issue you may find.
- *
- * CHANGES
- * -------
- * 2005/11/11
- *  -  Changed 'CASE_KEYWORDS' fom 'GESHI_CAPS_LOWER' to 'GESHI_CAPS_NO_CHANGE',
- *     so that MCI_command appears correctly (the only GML function using capitals).
- *  -  Changed 'CASE_SENSITIVE' options, 'GESHI_COMMENTS' from true to false and all
- *     of the others from false to true.
- *  -  Deleted repeated entries.
- *  -  div and mod are language keywords, moved (from symbols) to the appropiate section (1).
- *  -  Moved self, other, all, noone and global identifiers to language keywords section 1.
- *  -  Edited this file lines to a maximum width of 100 characters (as stated in
- *     the GeSHi docs). Well, not strictly to 100 but around it.
- *  -  Corrected some minor issues (the vk_f1...vk_f12 keys and similar).
- *  -  Deleted the KEYWORDS=>5 and KEYWORDS=>6 sections (actually, they were empty).
- *     I was planning of using those for the GML functions available only in the
- *     registered version of the program, but not anymore.
- *
- * 2005/06/26 (1.0.3)
- *  -  First Release.
- *
- * TODO (updated 2005/11/11)
- * -------------------------
- *  -  Test it for a while and make the appropiate corrections.
- *
- *************************************************************************************
- *
- *     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' => 'GML',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'"),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        // language keywords
-        1 => array(
-            'break', 'continue', 'do', 'until', 'if', 'else',
-            'exit', 'for', 'repeat', 'return', 'switch',
-            'case', 'default', 'var', 'while', 'with', 'div', 'mod',
-            // GML Language overview
-            'self', 'other', 'all', 'noone', 'global',
-            ),
-        // modifiers and built-in variables
-        2 => array(
-            // Game play
-            'x','y','xprevious','yprevious','xstart','ystart','hspeed','vspeed','direction','speed',
-            'friction','gravity','gravity_direction',
-            'path_index','path_position','path_positionprevious','path_speed','path_orientation',
-            'path_endaction',
-            'object_index','id','mask_index','solid','persistent','instance_count','instance_id',
-            'room_speed','fps','current_time','current_year','current_month','current_day','current_weekday',
-            'current_hour','current_minute','current_second','alarm','timeline_index','timeline_position',
-            'timeline_speed',
-            'room','room_first','room_last','room_width','room_height','room_caption','room_persistent',
-            'score','lives','health','show_score','show_lives','show_health','caption_score','caption_lives',
-            'caption_health',
-            'event_type','event_number','event_object','event_action',
-            'error_occurred','error_last',
-            // User interaction
-            'keyboard_lastkey','keyboard_key','keyboard_lastchar','keyboard_string',
-            'mouse_x','mouse_y','mouse_button','mouse_lastbutton',
-            // Game Graphics
-            'sprite_index','sprite_width','sprite_height','sprite_xoffset','sprite_yoffset',
-            'image_number','image_index','image_speed','image_xscale','image_yscale','image_angle',
-            'image_alpha','image_blend','bbox_left','bbox_right','bbox_top','bbox_bottom',
-            'background_color','background_showcolor','background_visible','background_foreground',
-            'background_index','background_x','background_y','background_width','background_height',
-            'background_htiled','background_vtiled','background_xscale','background_yscale',
-            'background_hspeed','background_vspeed','background_blend','background_alpha',
-            'background','left, top, width, height','depth','visible','xscale','yscale','blend','alpha',
-            'view_enabled','view_current','view_visible','view_yview','view_wview','view_hview','view_xport',
-            'view_yport','view_wport','view_hport','view_angle','view_hborder','view_vborder','view_hspeed',
-            'view_vspeed','view_object',
-            'transition_kind',
-            // Files, registry and executing programs
-            'game_id','working_directory','temp_directory',
-            'secure_mode',
-            // Creating particles
-            'xmin', 'xmax', 'ymin', 'ymax','shape','distribution','particle type','number',
-            'force','dist','kind','additive', 'parttype1', 'parttype2'
-            ),
-        // functions
-        3 => array(
-            // Computing things
-            'random','choose','abs','sign','round','floor','ceil','frac','sqrt','sqr','power','exp','ln',
-            'log2','log10','logn','sin','cos','tan','arcsin','arccos','arctan','arctan2','degtorad',
-            'radtodeg','min','max','mean','median','point_distance','point_direction','lengthdir_x',
-            'lengthdir_y','is_real','is_string',
-            'chr','ord','real','string','string_format','string_length','string_pos','string_copy',
-            'string_char_at','string_delete','string_insert','string_replace','string_replace_all',
-            'string_count','string_lower','string_upper','string_repeat','string_letters','string_digits',
-            'string_lettersdigits','clipboard_has_text','clipboard_get_text','clipboard_set_text',
-            'date_current_datetime','date_current_date','date_current_time','date_create_datetime',
-            'date_create_date','date_create_time','date_valid_datetime','date_valid_date','date_valid_time',
-            'date_inc_year','date_inc_month','date_inc_week','date_inc_day','date_inc_hour',
-            'date_inc_minute','date_inc_second','date_get_year','date_get_month','date_get_week',
-            'date_get_day','date_get_hour', 'date_get_minute','date_get_second','date_get_weekday',
-            'date_get_day_of_year','date_get_hour_of_year','date_get_minute_of_year',
-            'date_get_second_of_year','date_year_span','date_month_span','date_week_span','date_day_span',
-            'date_hour_span','date_minute_span','date_second_span','date_compare_datetime',
-            'date_compare_date','date_compare_time','date_date_of','date_time_of','date_datetime_string',
-            'date_date_string','date_time_string','date_days_in_month','date_days_in_year','date_leap_year',
-            'date_is_today',
-            // Game play
-            'motion_set','motion_add','place_free','place_empty','place_meeting','place_snapped',
-            'move_random','move_snap','move_wrap','move_towards_point','move_bounce_solid','move_bounce_all',
-            'move_contact_solid','move_contact_all','move_outside_solid','move_outside_all',
-            'distance_to_point','distance_to_object','position_empty','position_meeting',
-            'path_start','path_end',
-            'mp_linear_step','mp_linear_step_object','mp_potential_step','mp_potential_step_object',
-            'mp_potential_settings','mp_linear_path','mp_linear_path_object', 'mp_potential_path',
-            'mp_potential_path_object','mp_grid_create','mp_grid_destroy','mp_grid_clear_all',
-            'mp_grid_clear_cell','mp_grid_clear_rectangle','mp_grid_add_cell','mp_grid_add_rectangle',
-            'mp_grid_add_instances','mp_grid_path','mp_grid_draw',
-            'collision_point','collision_rectangle','collision_circle','collision_ellipse','collision_line',
-            'instance_find','instance_exists','instance_number','instance_position','instance_nearest',
-            'instance_furthest','instance_place','instance_create','instance_copy','instance_destroy',
-            'instance_change','position_destroy','position_change',
-            'instance_deactivate_all','instance_deactivate_object','instance_deactivate_region',
-            'instance_activate_all','instance_activate_object','instance_activate_region',
-            'sleep',
-            'room_goto','room_goto_previous','room_goto_next','room_restart','room_previous','room_next',
-            'game_end','game_restart','game_save','game_load',
-            'event_perform', 'event_perform_object','event_user','event_inherited',
-            'show_debug_message','variable_global_exists','variable_local_exists','variable_global_get',
-            'variable_global_array_get','variable_global_array2_get','variable_local_get',
-            'variable_local_array_get','variable_local_array2_get','variable_global_set',
-            'variable_global_array_set','variable_global_array2_set','variable_local_set',
-            'variable_local_array_set','variable_local_array2_set','set_program_priority',
-            // User interaction
-            'keyboard_set_map','keyboard_get_map','keyboard_unset_map','keyboard_check',
-            'keyboard_check_pressed','keyboard_check_released','keyboard_check_direct',
-            'keyboard_get_numlock','keyboard_set_numlock','keyboard_key_press','keyboard_key_release',
-            'keyboard_clear','io_clear','io_handle','keyboard_wait',
-            'mouse_check_button','mouse_check_button_pressed','mouse_check_button_released','mouse_clear',
-            'mouse_wait',
-            'joystick_exists','joystick_name','joystick_axes','joystick_buttons','joystick_has_pov',
-            'joystick_direction','joystick_check_button','joystick_xpos','joystick_ypos','joystick_zpos',
-            'joystick_rpos','joystick_upos','joystick_vpos','joystick_pov',
-            // Game Graphics
-            'draw_sprite','draw_sprite_stretched','draw_sprite_tiled','draw_sprite_part','draw_background',
-            'draw_background_stretched','draw_background_tiled','draw_background_part','draw_sprite_ext',
-            'draw_sprite_stretched_ext','draw_sprite_tiled_ext','draw_sprite_part_ext','draw_sprite_general',
-            'draw_background_ext','draw_background_stretched_ext','draw_background_tiled_ext',
-            'draw_background_part_ext','draw_background_general',
-            'draw_clear','draw_clear_alpha','draw_point','draw_line','draw_rectangle','draw_roundrect',
-            'draw_triangle','draw_circle','draw_ellipse','draw_arrow','draw_button','draw_path',
-            'draw_healthbar','draw_set_color','draw_set_alpha','draw_get_color','draw_get_alpha',
-            'make_color_rgb','make_color_hsv','color_get_red','color_get_green','color_get_blue',
-            'color_get_hue','color_get_saturation','color_get_value','merge_color','draw_getpixel',
-            'screen_save','screen_save_part',
-            'draw_set_font','draw_set_halign','draw_set_valign','draw_text','draw_text_ext','string_width',
-            'string_height','string_width_ext','string_height_ext','draw_text_transformed',
-            'draw_text_ext_transformed','draw_text_color','draw_text_ext_color',
-            'draw_text_transformed_color','draw_text_ext_transformed_color',
-            'draw_point_color','draw_line_color','draw_rectangle_color','draw_roundrect_color',
-            'draw_triangle_color','draw_circle_color','draw_ellipse_color','draw_primitive_begin',
-            'draw_vertex','draw_vertex_color','draw_primitive_end','sprite_get_texture',
-            'background_get_texture','texture_preload','texture_set_priority',
-            'texture_get_width','texture_get_height','draw_primitive_begin_texture','draw_vertex_texture',
-            'draw_vertex_texture_color','texture_set_interpolation',
-            'texture_set_blending','texture_set_repeat','draw_set_blend_mode','draw_set_blend_mode_ext',
-            'surface_create','surface_free','surface_exists','surface_get_width','surface_get_height',
-            'surface_get_texture','surface_set_target','surface_reset_target','surface_getpixel',
-            'surface_save','surface_save_part','draw_surface','draw_surface_stretched','draw_surface_tiled',
-            'draw_surface_part','draw_surface_ext','draw_surface_stretched_ext','draw_surface_tiled_ext',
-            'draw_surface_part_ext','draw_surface_general','surface_copy','surface_copy_part',
-            'tile_add','tile_delete','tile_exists','tile_get_x','tile_get_y','tile_get_left','tile_get_top',
-            'tile_get_width','tile_get_height','tile_get_depth','tile_get_visible','tile_get_xscale',
-            'tile_get_yscale','tile_get_background','tile_get_blend','tile_get_alpha','tile_set_position',
-            'tile_set_region','tile_set_background','tile_set_visible','tile_set_depth','tile_set_scale',
-            'tile_set_blend','tile_set_alpha','tile_layer_hide','tile_layer_show','tile_layer_delete',
-            'tile_layer_shift','tile_layer_find','tile_layer_delete_at','tile_layer_depth',
-            'display_get_width','display_get_height','display_get_colordepth','display_get_frequency',
-            'display_set_size','display_set_colordepth','display_set_frequency','display_set_all',
-            'display_test_all','display_reset','display_mouse_get_x','display_mouse_get_y','display_mouse_set',
-            'window_set_visible','window_get_visible','window_set_fullscreen','window_get_fullscreen',
-            'window_set_showborder','window_get_showborder','window_set_showicons','window_get_showicons',
-            'window_set_stayontop','window_get_stayontop','window_set_sizeable','window_get_sizeable',
-            'window_set_caption','window_get_caption','window_set_cursor', 'window_get_cursor',
-            'window_set_color','window_get_color','window_set_region_scale','window_get_region_scale',
-            'window_set_position','window_set_size','window_set_rectangle','window_center','window_default',
-            'window_get_x','window_get_y','window_get_width','window_get_height','window_mouse_get_x',
-            'window_mouse_get_y','window_mouse_set',
-            'window_set_region_size','window_get_region_width','window_get_region_height',
-            'window_view_mouse_get_x','window_view_mouse_get_y','window_view_mouse_set',
-            'window_views_mouse_get_x','window_views_mouse_get_y','window_views_mouse_set',
-            'screen_redraw','screen_refresh','set_automatic_draw','set_synchronization','screen_wait_vsync',
-            // Sound and music)
-            'sound_play','sound_loop','sound_stop','sound_stop_all','sound_isplaying','sound_volume',
-            'sound_global_volume','sound_fade','sound_pan','sound_background_tempo','sound_set_search_directory',
-            'sound_effect_set','sound_effect_chorus','sound_effect_echo',    'sound_effect_flanger',
-            'sound_effect_gargle','sound_effect_reverb','sound_effect_compressor','sound_effect_equalizer',
-            'sound_3d_set_sound_position','sound_3d_set_sound_velocity','sound_3d_set_sound_distance',
-            'sound_3d_set_sound_cone',
-            'cd_init','cd_present','cd_number','cd_playing','cd_paused','cd_track','cd_length',
-            'cd_track_length','cd_position','cd_track_position','cd_play','cd_stop','cd_pause','cd_resume',
-            'cd_set_position','cd_set_track_position','cd_open_door','cd_close_door','MCI_command',
-            // Splash screens, highscores, and other pop-ups
-            'show_text','show_image','show_video','show_info','load_info',
-            'show_message','show_message_ext','show_question','get_integer','get_string',
-            'message_background','message_alpha','message_button','message_text_font','message_button_font',
-            'message_input_font','message_mouse_color','message_input_color','message_caption',
-            'message_position','message_size','show_menu','show_menu_pos','get_color','get_open_filename',
-            'get_save_filename','get_directory','get_directory_alt','show_error',
-            'highscore_show','highscore_set_background','highscore_set_border','highscore_set_font',
-            'highscore_set_colors','highscore_set_strings','highscore_show_ext','highscore_clear',
-            'highscore_add','highscore_add_current','highscore_value','highscore_name','draw_highscore',
-            // Resources
-            'sprite_exists','sprite_get_name','sprite_get_number','sprite_get_width','sprite_get_height',
-            'sprite_get_transparent','sprite_get_smooth','sprite_get_preload','sprite_get_xoffset',
-            'sprite_get_yoffset','sprite_get_bbox_left','sprite_get_bbox_right','sprite_get_bbox_top',
-            'sprite_get_bbox_bottom','sprite_get_bbox_mode','sprite_get_precise',
-            'sound_exists','sound_get_name','sound_get_kind','sound_get_preload','sound_discard',
-            'sound_restore',
-            'background_exists','background_get_name','background_get_width','background_get_height',
-            'background_get_transparent','background_get_smooth','background_get_preload',
-            'font_exists','font_get_name','font_get_fontname','font_get_bold','font_get_italic',
-            'font_get_first','font_get_last',
-            'path_exists','path_get_name','path_get_length','path_get_kind','path_get_closed',
-            'path_get_precision','path_get_number','path_get_point_x','path_get_point_y',
-            'path_get_point_speed','path_get_x','path_get_y','path_get_speed',
-            'script_exists','script_get_name','script_get_text',
-            'timeline_exists','timeline_get_name',
-            'object_exists','object_get_name','object_get_sprite','object_get_solid','object_get_visible',
-            'object_get_depth','object_get_persistent','object_get_mask','object_get_parent',
-            'object_is_ancestor',
-            'room_exists','room_get_name',
-            // Changing resources
-            'sprite_set_offset','sprite_set_bbox_mode','sprite_set_bbox','sprite_set_precise',
-            'sprite_duplicate','sprite_assign','sprite_merge','sprite_add','sprite_replace',
-            'sprite_create_from_screen','sprite_add_from_screen','sprite_create_from_surface',
-            'sprite_add_from_surface','sprite_delete','sprite_set_alpha_from_sprite',
-            'sound_add','sound_replace','sound_delete',
-            'background_duplicate','background_assign','background_add','background_replace',
-            'background_create_color','background_create_gradient','background_create_from_screen',
-            'background_create_from_surface','background_delete','background_set_alpha_from_background',
-            'font_add','font_add_sprite','font_replace_sprite','font_delete',
-            'path_set_kind','path_set_closed','path_set_precision','path_add','path_delete','path_duplicate',
-            'path_assign','path_append','path_add_point','path_insert_point','path_change_point',
-            'path_delete_point','path_clear_points','path_reverse','path_mirror','path_flip','path_rotate',
-            'path_scale','path_shift',
-            'execute_string','execute_file','script_execute',
-            'timeline_add','timeline_delete','timeline_moment_add','timeline_moment_clear',
-            'object_set_sprite','object_set_solid','object_set_visible','object_set_depth',
-            'object_set_persistent','object_set_mask','object_set_parent','object_add','object_delete',
-            'object_event_add','object_event_clear',
-            'room_set_width','room_set_height','room_set_caption','room_set_persistent','room_set_code',
-            'room_set_background_color','room_set_background','room_set_view','room_set_view_enabled',
-            'room_add','room_duplicate','room_assign','room_instance_add','room_instance_clear',
-            'room_tile_add','room_tile_add_ext','room_tile_clear',
-            // Files, registry and executing programs
-            'file_text_open_read','file_text_open_write','file_text_open_append','file_text_close',
-            'file_text_write_string','file_text_write_real','file_text_writeln','file_text_read_string',
-            'file_text_read_real','file_text_readln','file_text_eof','file_exists','file_delete',
-            'file_rename','file_copy','directory_exists','directory_create','file_find_first',
-            'file_find_next','file_find_close','file_attributes', 'filename_name','filename_path',
-            'filename_dir','filename_drive','filename_ext','filename_change_ext','file_bin_open',
-            'file_bin_rewrite','file_bin_close','file_bin_size','file_bin_position','file_bin_seek',
-            'file_bin_write_byte','file_bin_read_byte','parameter_count','parameter_string',
-            'environment_get_variable',
-            'registry_write_string','registry_write_real','registry_read_string','registry_read_real',
-            'registry_exists','registry_write_string_ext','registry_write_real_ext',
-            'registry_read_string_ext','registry_read_real_ext','registry_exists_ext','registry_set_root',
-            'ini_open','ini_close','ini_read_string','ini_read_real','ini_write_string','ini_write_real',
-            'ini_key_exists','ini_section_exists','ini_key_delete','ini_section_delete',
-            'execute_program','execute_shell',
-            // Data structures
-            'ds_stack_create','ds_stack_destroy','ds_stack_clear','ds_stack_size','ds_stack_empty',
-            'ds_stack_push','ds_stack_pop','ds_stack_top',
-            'ds_queue_create','ds_queue_destroy','ds_queue_clear','ds_queue_size','ds_queue_empty',
-            'ds_queue_enqueue','ds_queue_dequeue','ds_queue_head','ds_queue_tail',
-            'ds_list_create','ds_list_destroy','ds_list_clear','ds_list_size','ds_list_empty','ds_list_add',
-            'ds_list_insert','ds_list_replace','ds_list_delete','ds_list_find_index','ds_list_find_value',
-            'ds_list_sort',
-            'ds_map_create','ds_map_destroy','ds_map_clear','ds_map_size','ds_map_empty','ds_map_add',
-            'ds_map_replace','ds_map_delete','ds_map_exists','ds_map_find_value','ds_map_find_previous',
-            'ds_map_find_next','ds_map_find_first','ds_map_find_last',
-            'ds_priority_create','ds_priority_destroy','ds_priority_clear','ds_priority_size',
-            'ds_priority_empty','ds_priority_add','ds_priority_change_priority','ds_priority_find_priority',
-            'ds_priority_delete_value','ds_priority_delete_min','ds_priority_find_min',
-            'ds_priority_delete_max','ds_priority_find_max',
-            'ds_grid_create','ds_grid_destroy','ds_grid_resize','ds_grid_width','ds_grid_height',
-            'ds_grid_clear','ds_grid_set','ds_grid_add','ds_grid_multiply','ds_grid_set_region',
-            'ds_grid_add_region','ds_grid_multiply_region','ds_grid_set_disk','ds_grid_add_disk',
-            'ds_grid_multiply_disk','ds_grid_get','ds_grid_get_sum','ds_grid_get_max','ds_grid_get_min',
-            'ds_grid_get_mean','ds_grid_get_disk_sum','ds_grid_get_disk_min','ds_grid_get_disk_max',
-            'ds_grid_get_disk_mean','ds_grid_value_exists','ds_grid_value_x','ds_grid_value_y',
-            'ds_grid_value_disk_exists','ds_grid_value_disk_x','ds_grid_value_disk_y',
-            // Creating particles
-            'effect_create_below','effect_create_above','effect_clear',
-            'part_type_create','part_type_destroy','part_type_exists','part_type_clear','part_type_shape',
-            'part_type_sprite','part_type_size','part_type_scale',
-            'part_type_orientation','part_type_color1','part_type_color2','part_type_color3',
-            'part_type_color_mix','part_type_color_rgb','part_type_color_hsv',
-            'part_type_alpha1','part_type_alpha2','part_type_alpha3','part_type_blend','part_type_life',
-            'part_type_step','part_type_death','part_type_speed','part_type_direction','part_type_gravity',
-            'part_system_create','part_system_destroy','part_system_exists','part_system_clear',
-            'part_system_draw_order','part_system_depth','part_system_position',
-            'part_system_automatic_update','part_system_automatic_draw','part_system_update',
-            'part_system_drawit','part_particles_create','part_particles_create_color',
-            'part_particles_clear','part_particles_count',
-            'part_emitter_create','part_emitter_destroy','part_emitter_destroy_all','part_emitter_exists',
-            'part_emitter_clear','part_emitter_region','part_emitter_burst','part_emitter_stream',
-            'part_attractor_create','part_attractor_destroy','part_attractor_destroy_all',
-            'part_attractor_exists','part_attractor_clear','part_attractor_position','part_attractor_force',
-            'part_destroyer_create','part_destroyer_destroy','part_destroyer_destroy_all',
-            'part_destroyer_exists','part_destroyer_clear','part_destroyer_region',
-            'part_deflector_create','part_deflector_destroy','part_deflector_destroy_all',
-            'part_deflector_exists','part_deflector_clear','part_deflector_region','part_deflector_kind',
-            'part_deflector_friction',
-            'part_changer_create','part_changer_destroy','part_changer_destroy_all','part_changer_exists',
-            'part_changer_clear','part_changer_region','part_changer_types','part_changer_kind',
-            // Multiplayer games
-            'mplay_init_ipx','mplay_init_tcpip','mplay_init_modem','mplay_init_serial',
-            'mplay_connect_status','mplay_end','mplay_ipaddress',
-            'mplay_session_create','mplay_session_find','mplay_session_name','mplay_session_join',
-            'mplay_session_mode','mplay_session_status','mplay_session_end',
-            'mplay_player_find','mplay_player_name','mplay_player_id',
-            'mplay_data_write','mplay_data_read','mplay_data_mode',
-            'mplay_message_send','mplay_message_send_guaranteed','mplay_message_receive','mplay_message_id',
-            'mplay_message_value','mplay_message_player','mplay_message_name','mplay_message_count',
-            'mplay_message_clear',
-            // Using DLL's
-            'external_define','external_call','external_free','window_handle',
-            // 3D Graphics
-            'd3d_start','d3d_end','d3d_set_hidden','d3d_set_perspective',
-            'd3d_set_depth',
-            'd3d_primitive_begin','d3d_vertex','d3d_vertex_color','d3d_primitive_end',
-            'd3d_primitive_begin_texture','d3d_vertex_texture','d3d_vertex_texture_color','d3d_set_culling',
-            'd3d_draw_block','d3d_draw_cylinder','d3d_draw_cone','d3d_draw_ellipsoid','d3d_draw_wall',
-            'd3d_draw_floor',
-            'd3d_set_projection','d3d_set_projection_ext','d3d_set_projection_ortho',
-            'd3d_set_projection_perspective',
-            'd3d_transform_set_identity','d3d_transform_set_translation','d3d_transform_set_scaling',
-            'd3d_transform_set_rotation_x','d3d_transform_set_rotation_y','d3d_transform_set_rotation_z',
-            'd3d_transform_set_rotation_axis','d3d_transform_add_translation','d3d_transform_add_scaling',
-            'd3d_transform_add_rotation_x','d3d_transform_add_rotation_y','d3d_transform_add_rotation_z',
-            'd3d_transform_add_rotation_axis','d3d_transform_stack_clear','d3d_transform_stack_empty',
-            'd3d_transform_stack_push','d3d_transform_stack_pop','d3d_transform_stack_top',
-            'd3d_transform_stack_discard',
-            'd3d_set_fog',
-            'd3d_set_lighting','d3d_set_shading','d3d_light_define_direction','d3d_light_define_point',
-            'd3d_light_enable','d3d_vertex_normal','d3d_vertex_normal_color','d3d_vertex_normal_texture',
-            'd3d_vertex_normal_texture_color',
-            'd3d_model_create','d3d_model_destroy','d3d_model_clear','d3d_model_save','d3d_model_load',
-            'd3d_model_draw','d3d_model_primitive_begin','d3d_model_vertex','d3d_model_vertex_color',
-            'd3d_model_vertex_texture','d3d_model_vertex_texture_color','d3d_model_vertex_normal',
-            'd3d_model_vertex_normal_color','d3d_model_vertex_normal_texture',
-            'd3d_model_vertex_normal_texture_color','d3d_model_primitive_end','d3d_model_block',
-            'd3d_model_cylinder','d3d_model_cone','d3d_model_ellipsoid','d3d_model_wall','d3d_model_floor'
-            ),
-        // constants
-        4 => array(
-            'true', 'false', 'pi',
-            'ev_destroy','ev_step','ev_alarm','ev_keyboard','ev_mouse','ev_collision','ev_other','ev_draw',
-            'ev_keypress','ev_keyrelease','ev_left_button','ev_right_button','ev_middle_button',
-            'ev_no_button','ev_left_press','ev_right_press','ev_middle_press','ev_left_release',
-            'ev_right_release','ev_middle_release','ev_mouse_enter','ev_mouse_leave','ev_mouse_wheel_up',
-            'ev_mouse_wheel_down','ev_global_left_button','ev_global_right_button','ev_global_middle_button',
-            'ev_global_left_press','ev_global_right_press','ev_global_middle_press','ev_global_left_release',
-            'ev_global_right_release','ev_global_middle_release','ev_joystick1_left','ev_joystick1_right',
-            'ev_joystick1_up','ev_joystick1_down','ev_joystick1_button1','ev_joystick1_button2',
-            'ev_joystick1_button3','ev_joystick1_button4','ev_joystick1_button5','ev_joystick1_button6',
-            'ev_joystick1_button7','ev_joystick1_button8','ev_joystick2_left','ev_joystick2_right',
-            'ev_joystick2_up','ev_joystick2_down','ev_joystick2_button1','ev_joystick2_button2',
-            'ev_joystick2_button3','ev_joystick2_button4','ev_joystick2_button5','ev_joystick2_button6',
-            'ev_joystick2_button7','ev_joystick2_button8',
-            'ev_outside','ev_boundary','ev_game_start','ev_game_end','ev_room_start','ev_room_end',
-            'ev_no_more_lives','ev_no_more_health','ev_animation_end','ev_end_of_path','ev_user0','ev_user1',
-            'ev_user2','ev_user3','ev_user4','ev_user5','ev_user6','ev_user7','ev_user8','ev_user9',
-            'ev_user10','ev_user11','ev_user12','ev_user13','ev_user14','ev_user15','ev_step_normal',
-            'ev_step_begin','ev_step_end',
-            'vk_nokey','vk_anykey','vk_left','vk_right','vk_up','vk_down','vk_enter','vk_escape','vk_space',
-            'vk_shift','vk_control','vk_alt','vk_backspace','vk_tab','vk_home','vk_end','vk_delete',
-            'vk_insert','vk_pageup','vk_pagedown','vk_pause','vk_printscreen',
-            'vk_f1','vk_f2','vk_f3','vk_f4','vk_f5','vk_f6','vk_f7','vk_f8','vk_f9','vk_f10','vk_f11','vk_f12',
-            'vk_numpad0','vk_numpad1','vk_numpad2','vk_numpad3','vk_numpad4','vk_numpad5','vk_numpad6',
-            'vk_numpad7','vk_numpad8','vk_numpad9', 'vk_multiply','vk_divide','vk_add','vk_subtract',
-            'vk_decimal','vk_lshift','vk_lcontrol','vk_lalt','vk_rshift','vk_rcontrol','vk_ralt',
-            'c_aqua','c_black','c_blue','c_dkgray','c_fuchsia','c_gray','c_green','c_lime','c_ltgray',
-            'c_maroon','c_navy','c_olive','c_purple','c_red','c_silver','c_teal','c_white','c_yellow',
-            'fa_left', 'fa_center','fa_right','fa_top','fa_middle','fa_bottom',
-            'pr_pointlist','pr_linelist','pr_linestrip','pr_trianglelist','pr_trianglestrip',
-            'pr_trianglefan',
-            'cr_none','cr_arrow','cr_cross','cr_beam','cr_size_nesw','cr_size_ns','cr_size_nwse',
-            'cr_size_we','cr_uparrow','cr_hourglass','cr_drag','cr_nodrop','cr_hsplit','cr_vsplit',
-            'cr_multidrag','cr_sqlwait','cr_no','cr_appstart','cr_help','cr_handpoint','cr_size_all',
-            'se_chorus','se_echo','se_flanger','se_gargle','se_reverb','se_compressor','se_equalizer',
-            'fa_readonly','fa_hidden','fa_sysfile','fa_volumeid','fa_directory','fa_archive',
-            'pt_shape_pixel','pt_shape_disk','pt_shape_square','pt_shape_line','pt_shape_star',
-            'pt_shape_circle','pt_shape_ring','pt_shape_sphere','pt_shape_flare','pt_shape_spark',
-            'pt_shape_explosion','pt_shape_cloud','pt_shape_smoke','pt_shape_snow',
-            'ps_shape_rectangle','ps_shape_ellipse ','ps_shape_diamond','ps_shape_line',
-            'ps_distr_linear','ps_distr_gaussian','ps_force_constant','ps_force_linear','ps_force_quadratic',
-            'ps_deflect_horizontal', 'ps_deflect_vertical',
-            'ps_change_motion','ps_change_shape','ps_change_all'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
-        '&&', '||', '^^', '&', '|', '^',
-        '<', '<=', '==', '!=', '>', '>=', '=',
-        '<<', '>>',
-        '+=', '-=', '*=', '/=',
-        '+', '-', '*', '/',
-        '!', '~', ',', ';'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'font-weight: bold; color: #000000;',
-            2 => 'font-weight: bold; color: #000000;',
-            3 => 'color: navy;',
-            4 => 'color: #663300;',
-            ),
-        'COMMENTS' => array(
-            1 => 'font-style: italic; color: green;',
-            'MULTI' => 'font-style: italic; color: green;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;' //'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66; font-weight: bold;'
-            ),
-        '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(
-        )
-);
diff --git a/vendor/easybook/geshi/geshi/sass.php b/vendor/easybook/geshi/geshi/sass.php
deleted file mode 100644
index 286f4bfab88854cb27e0c98b38e03a6c704a4ea3..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/sass.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-/*************************************************************************************
- * sass.php
- * -------
- * Author: Javier Eguiluz (javier.eguiluz@gmail.com)
- * Release Version: 1.0.8.12
- * Date Started: 2014/05/10
- *
- * SASS language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2014/05/10 (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' => 'Sass',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        // properties
-        1 => array(
-            'azimuth', 'background-attachment', 'background-color',
-            'background-image', 'background-position', 'background-repeat',
-            'background', 'border-bottom-color', 'border-radius',
-            'border-top-left-radius', 'border-top-right-radius',
-            'border-bottom-right-radius', 'border-bottom-left-radius',
-            'border-bottom-style', 'border-bottom-width', 'border-left-color',
-            'border-left-style', 'border-left-width', 'border-right',
-            'border-right-color', 'border-right-style', 'border-right-width',
-            'border-top-color', 'border-top-style',
-            'border-top-width','border-bottom', 'border-collapse',
-            'border-left', 'border-width', 'border-color', 'border-spacing',
-            'border-style', 'border-top', 'border', 'box-shadow', 'caption-side', 'clear',
-            'clip', 'color', 'content', 'counter-increment', 'counter-reset',
-            'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display',
-            'elevation', 'empty-cells', 'float', 'font-family', 'font-size',
-            'font-size-adjust', 'font-stretch', 'font-style', 'font-variant',
-            'font-weight', 'font', 'line-height', 'letter-spacing',
-            'list-style', 'list-style-image', 'list-style-position',
-            'list-style-type', 'margin-bottom', 'margin-left', 'margin-right',
-            'margin-top', 'margin', 'marker-offset', 'marks', 'max-height',
-            'max-width', 'min-height', 'min-width', 'orphans', 'outline',
-            'outline-color', 'outline-style', 'outline-width', 'overflow',
-            'padding-bottom', 'padding-left', 'padding-right', 'padding-top',
-            'padding', 'page', 'page-break-after', 'page-break-before',
-            'page-break-inside', 'pause-after', 'pause-before', 'pause',
-            'pitch', 'pitch-range', 'play-during', 'position', 'quotes',
-            'richness', 'right', 'size', 'speak-header', 'speak-numeral',
-            'speak-punctuation', 'speak', 'speech-rate', 'stress',
-            'table-layout', 'text-align', 'text-decoration', 'text-indent',
-            'text-shadow', 'text-transform', 'top', 'unicode-bidi',
-            'vertical-align', 'visibility', 'voice-family', 'volume',
-            'white-space', 'widows', 'width', 'word-spacing', 'z-index',
-            'bottom', 'left', 'height',
-            // media queries
-            'screen', 'orientation', 'min-device-width', 'max-device-width',
-            ),
-        // reserved words for values
-        2 => array(
-            // colors
-            'aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime',
-            'maroon', 'navy', 'olive', 'orange', 'purple', 'red', 'silver',
-            'teal', 'white', 'yellow',
-            // media queries
-            'landscape', 'portrait', 
-            // other
-            'above', 'absolute', 'always', 'armenian', 'aural', 'auto',
-            'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink',
-            'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left',
-            'center-right', 'center', 'circle', 'cjk-ideographic',
-            'close-quote', 'collapse', 'condensed', 'continuous', 'crop',
-            'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero',
-            'decimal', 'default', 'digits', 'disc', 'dotted', 'double',
-            'e-resize', 'embed', 'extra-condensed', 'extra-expanded',
-            'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast',
-            'fixed',  'georgian', 'groove', 'hebrew', 'help', 'hidden',
-            'hide', 'higher', 'high', 'hiragana-iroha', 'hiragana', 'icon',
-            'inherit', 'inline-table', 'inline', 'inline-block', 'inset', 'inside',
-            'invert', 'italic', 'justify', 'katakana-iroha', 'katakana', 'landscape',
-            'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', 
-            'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek',
-            'lower-roman', 'lowercase', 'ltr', 'lower', 'low', 
-            'medium', 'message-box', 'middle', 'mix', 'monospace', 'n-resize',
-            'narrower', 'ne-resize', 'no-close-quote',
-            'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap',
-            'nw-resize', 'oblique', 'once', 'open-quote', 'outset',
-            'outside', 'overline', 'pointer', 'portrait', 'px',
-             'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb',
-            'ridge', 'right-side', 'rightwards', 's-resize', 'sans-serif',
-            'scroll', 'se-resize', 'semi-condensed', 'semi-expanded',
-            'separate', 'serif', 'show', 'silent',  'slow', 'slower',
-            'small-caps', 'small-caption', 'smaller', 'soft', 'solid',
-            'spell-out', 'square', 'static', 'status-bar', 'super',
-            'sw-resize', 'table-caption', 'table-cell', 'table-column',
-            'table-column-group', 'table-footer-group', 'table-header-group',
-            'table-row', 'table-row-group',  'text', 'text-bottom',
-            'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed',
-            'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin',
-            'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait',
-             'wider', 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low',
-             'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow', 'yes'
-            ),
-        // directives
-        3 => array(
-            '@at-root', '@charset', '@content', '@debug', '@each', '@else', '@elseif',
-            '@else if', '@extend', '@font-face', '@for', '@function', '@if',
-            '@import', '@include', '@media', '@mixin', '@namespace', '@page',
-            '@return', '@warn', '@while', 
-            ),
-        // built-in Sass functions
-        4 => array(
-            'rgb', 'rgba', 'red', 'green', 'blue', 'mix',
-            'hsl', 'hsla', 'hue', 'saturation', 'lightness', 'adjust-hue',
-            'lighten', 'darken', 'saturate', 'desaturate', 'grayscale',
-            'complement', 'invert',
-            'alpha', 'rgba', 'opacify', 'transparentize',
-            'adjust-color', 'scale-color', 'change-color', 'ie-hex-str',
-            'unquote', 'quote', 'str-length', 'str-insert', 'str-index',
-            'str-slice', 'to-upper-case', 'to-lower-case',
-            'percentage', 'round', 'ceil', 'floor', 'abs', 'min', 'max', 'random',
-            'length', 'nth', 'join', 'append', 'zip', 'index', 'list-separator',
-            'map-get', 'map-merge', 'map-remove', 'map-keys', 'map-values',
-            'map-has-key', 'keywords',
-            'feature-exists', 'variable-exists', 'global-variable-exists',
-            'function-exists', 'mixin-exists', 'inspect', 'type-of', 'unit',
-            'unitless', 'comparable', 'call',
-            'if', 'unique-id',
-            ),
-        // reserved words
-        5 => array(
-            '!important', '!default', '!optional', 'true', 'false', 'with',
-            'without', 'null', 'from', 'through', 'to', 'in', 'and', 'or',
-            'only', 'not',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', ':', ';',
-        '>', '+', '*', ',', '^', '=',
-        '&', '~', '!', '%', '?', '...',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #993333;',
-            3 => 'color: #990000;',
-            4 => 'color: #000000; font-weight: bold;',
-            5 => 'color: #009900;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #006600; font-style: italic;',
-            'MULTI' => 'color: #006600; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #00AA00;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #00AA00;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #cc00cc;',
-            1 => 'color: #6666ff;',
-            2 => 'color: #3333ff;',
-            3 => 'color: #933;',
-            4 => 'color: #ff6633;',
-            5 => 'color: #0066ff;',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // Variables
-        0 => "[$][a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",
-        // Hexadecimal colors
-        1 => "\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",
-        // CSS Pseudo classes
-        // note: & is needed for &gt; (i.e. > )
-        2 => "(?<!\\\\):(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))",
-        // Measurements
-        3 => "[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)",
-        // Interpolation
-        4 => "(\#\{.*\})",
-        // Browser prefixed properties
-        5 => "(\-(moz|ms|o|webkit)\-[a-z\-]*)",
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 2,
-);
diff --git a/vendor/easybook/geshi/geshi/tsql.php b/vendor/easybook/geshi/geshi/tsql.php
deleted file mode 100644
index 9aa6ce52b1a69f00fe53ab27ea05f7d408f8a974..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/tsql.php
+++ /dev/null
@@ -1,374 +0,0 @@
-<?php
-/*************************************************************************************
- * tsql.php
- * --------
- * 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.11
- * Date Started: 2005/11/22
- *
- * T-SQL language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/01/23 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2006/01/23)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'T-SQL',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            // Datatypes
-            'bigint', 'tinyint', 'money',
-            'smallmoney', 'datetime', 'smalldatetime',
-            'text', 'nvarchar', 'ntext', 'varbinary', 'image',
-            'sql_variant', 'uniqueidentifier',
-
-            // Keywords
-            'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALTER', 'ARE', 'ARRAY', 'AS',
-            'ASC', 'ASSERTION', 'AT', 'AUTHORIZATION', 'BACKUP', 'BEFORE', 'BEGIN', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'BOTH', 'BREADTH',
-            'BREAK', 'BROWSE', 'BULK', 'BY', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATCH', 'CHAR', 'CHARACTER', 'CHECK', 'CHECKPOINT',
-            'CLASS', 'CLOB', 'CLOSE', 'CLUSTERED', 'COALESCE', 'COLLATE', 'COLLATION', 'COLUMN', 'COMMIT', 'COMPLETION', 'COMPUTE', 'CONNECT',
-            'CONNECTION', 'CONSTRAINT', 'CONSTRAINTS', 'CONSTRUCTOR', 'CONTAINS', 'CONTAINSTABLE', 'CONTINUE', 'CONVERT', 'CORRESPONDING', 'CREATE',
-            'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH', 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
-            'CURSOR', 'CYCLE', 'DATA', 'DATABASE', 'DATE', 'DAY', 'DBCC', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DEFERRABLE',
-            'DEFERRED', 'DELETE', 'DENY', 'DEPTH', 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC',
-            'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DOMAIN', 'DOUBLE', 'DROP', 'DUMMY', 'DUMP', 'DYNAMIC',
-            'EACH', 'ELSE', 'END', 'END-EXEC', 'EQUALS', 'ERRLVL', 'ESCAPE', 'EVERY', 'EXCEPT', 'EXCEPTION', 'EXEC', 'EXECUTE', 'EXIT',
-            'EXTERNAL', 'FALSE', 'FETCH', 'FILE', 'FILLFACTOR', 'FIRST', 'FLOAT', 'FOR', 'FOREIGN', 'FOUND', 'FREE', 'FREETEXT', 'FREETEXTTABLE',
-            'FROM', 'FULL', 'FUNCTION', 'GENERAL', 'GET', 'GLOBAL', 'GOTO', 'GRANT', 'GROUP', 'GROUPING', 'HAVING', 'HOLDLOCK', 'HOST', 'HOUR',
-            'IDENTITY', 'IDENTITY_INSERT', 'IDENTITYCOL', 'IF', 'IGNORE', 'IMMEDIATE', 'INDEX', 'INDICATOR', 'INITIALIZE', 'INITIALLY',
-            'INNER', 'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERVAL', 'INTO', 'IS', 'ISOLATION', 'ITERATE', 'KEY',
-            'KILL', 'LANGUAGE', 'LARGE', 'LAST', 'LATERAL', 'LEADING', 'LEFT', 'LESS', 'LEVEL', 'LIMIT', 'LINENO', 'LOAD', 'LOCAL',
-            'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATOR', 'MAP', 'MATCH', 'MINUTE', 'MODIFIES', 'MODIFY', 'MODULE', 'MONTH', 'NAMES', 'NATIONAL',
-            'NATURAL', 'NCHAR', 'NCLOB', 'NEW', 'NEXT', 'NO', 'NOCHECK', 'NONCLUSTERED', 'NONE', 'NULLIF', 'NUMERIC', 'OBJECT', 'OF',
-            'OFF', 'OFFSETS', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPERATION', 'OPTION',
-            'ORDER', 'ORDINALITY', 'OUT', 'OUTPUT', 'OVER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARTIAL', 'PATH', 'PERCENT', 'PLAN',
-            'POSTFIX', 'PRECISION', 'PREFIX', 'PREORDER', 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRINT', 'PRIOR', 'PRIVILEGES', 'PROC', 'PROCEDURE',
-            'PUBLIC', 'RAISERROR', 'READ', 'READS', 'READTEXT', 'REAL', 'RECONFIGURE', 'RECURSIVE', 'REF', 'REFERENCES', 'REFERENCING', 'RELATIVE',
-            'REPLICATION', 'RESTORE', 'RESTRICT', 'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROW',
-            'ROWGUIDCOL', 'ROWS', 'RULE', 'SAVE', 'SAVEPOINT', 'SCHEMA', 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECTION', 'SELECT',
-            'SEQUENCE', 'SESSION', 'SESSION_USER', 'SET', 'SETS', 'SETUSER', 'SHUTDOWN', 'SIZE', 'SMALLINT', 'SPACE', 'SPECIFIC',
-            'SPECIFICTYPE', 'SQL', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNING', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STRUCTURE',
-            'SYSTEM_USER', 'TABLE', 'TEMPORARY', 'TERMINATE', 'TEXTSIZE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE',
-            'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TRY', 'TSEQUAL', 'UNDER', 'UNION',
-            'UNIQUE', 'UNKNOWN', 'UNNEST', 'UPDATE', 'UPDATETEXT', 'USAGE', 'USE', 'USER', 'USING', 'VALUE', 'VALUES', 'VARCHAR', 'VARIABLE',
-            'VARYING', 'VIEW', 'WAITFOR', 'WHEN', 'WHENEVER', 'WHERE', 'WHILE', 'WITH', 'WITHOUT', 'WORK', 'WRITE', 'WRITETEXT', 'YEAR', 'ZONE',
-            'UNCOMMITTED', 'NOCOUNT',
-            ),
-        2 => array(
-            /*
-                Built-in functions
-                Highlighted in pink.
-            */
-
-            //Configuration Functions
-            '@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME',
-            '@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS',
-            '@@TEXTSIZE','@@MAX_PRECISION','@@VERSION','@@NESTLEVEL',
-
-            //Cursor Functions
-            '@@CURSOR_ROWS','@@FETCH_STATUS',
-
-            //Date and Time Functions
-            'DATEADD','DATEDIFF','DATENAME','DATEPART','GETDATE','GETUTCDATE',
-
-            //Mathematical Functions
-            'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN',
-            'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS',
-            'POWER','TAN','COT','RADIANS',
-
-            //Meta Data Functions
-            'COL_LENGTH','COL_NAME','FULLTEXTCATALOGPROPERTY',
-            'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL',
-            'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME',
-            'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID',
-            '@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY',
-            'TYPEPROPERTY','FILEPROPERTY',
-
-            //Security Functions
-            'IS_SRVROLEMEMBER','SUSER_SID','SUSER_SNAME','USER_ID',
-            'HAS_DBACCESS','IS_MEMBER',
-
-            //String Functions
-            'ASCII','SOUNDEX','PATINDEX','CHARINDEX','REPLACE','STR',
-            'DIFFERENCE','QUOTENAME','STUFF','REPLICATE','SUBSTRING','LEN',
-            'REVERSE','UNICODE','LOWER','UPPER','LTRIM','RTRIM',
-
-            //System Functions
-            'APP_NAME','COLLATIONPROPERTY','@@ERROR','FORMATMESSAGE',
-            'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR',
-            'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS',
-            '@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY',
-            'STATS_DATE','@@TRANCOUNT','USER_NAME',
-
-            //System Statistical Functions
-            '@@CONNECTIONS','@@PACK_RECEIVED','@@CPU_BUSY','@@PACK_SENT',
-            '@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY',
-            '@@TOTAL_READ','@@PACKET_ERRORS','@@TOTAL_WRITE',
-
-            //Text and Image Functions
-            'TEXTPTR','TEXTVALID',
-
-            //Aggregate functions
-            'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG',
-            'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'VARP'
-            ),
-        3 => array(
-            /*
-                System stored procedures
-                Higlighted dark brown
-            */
-
-            //Active Directory Procedures
-            'sp_ActiveDirectory_Obj', 'sp_ActiveDirectory_SCP',
-
-            //Catalog Procedures
-            'sp_column_privileges', 'sp_special_columns', 'sp_columns', 'sp_sproc_columns',
-            'sp_databases', 'sp_statistics', 'sp_fkeys', 'sp_stored_procedures', 'sp_pkeys',
-            'sp_table_privileges', 'sp_server_info', 'sp_tables',
-
-            //Cursor Procedures
-            'sp_cursor_list', 'sp_describe_cursor_columns', 'sp_describe_cursor', 'sp_describe_cursor_tables',
-
-            //Database Maintenance Plan Procedures
-            'sp_add_maintenance_plan', 'sp_delete_maintenance_plan_db', 'sp_add_maintenance_plan_db',
-            'sp_delete_maintenance_plan_job', 'sp_add_maintenance_plan_job', 'sp_help_maintenance_plan',
-            'sp_delete_maintenance_plan',
-
-            //Distributed Queries Procedures
-            'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs',
-            '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',
-            'sp_help_fulltext_columns', 'sp_fulltext_database', 'sp_help_fulltext_columns_cursor',
-            'sp_fulltext_service', 'sp_help_fulltext_tables', 'sp_fulltext_table',
-            'sp_help_fulltext_tables_cursor', 'sp_help_fulltext_catalogs',
-
-            //Log Shipping Procedures
-            'sp_add_log_shipping_database', 'sp_delete_log_shipping_database', 'sp_add_log_shipping_plan',
-            'sp_delete_log_shipping_plan', 'sp_add_log_shipping_plan_database',
-            'sp_delete_log_shipping_plan_database', 'sp_add_log_shipping_primary',
-            'sp_delete_log_shipping_primary', 'sp_add_log_shipping_secondary',
-            'sp_delete_log_shipping_secondary', 'sp_can_tlog_be_applied', 'sp_get_log_shipping_monitor_info',
-            'sp_change_monitor_role', 'sp_remove_log_shipping_monitor', 'sp_change_primary_role',
-            'sp_resolve_logins', 'sp_change_secondary_role', 'sp_update_log_shipping_monitor_info',
-            'sp_create_log_shipping_monitor_account', 'sp_update_log_shipping_plan',
-            'sp_define_log_shipping_monitor', 'sp_update_log_shipping_plan_database',
-
-            //OLE Automation Extended Stored Procedures
-            'sp_OACreate', 'sp_OAMethod', 'sp_OADestroy', 'sp_OASetProperty', 'sp_OAGetErrorInfo',
-            'sp_OAStop', 'sp_OAGetProperty',
-
-            //Replication Procedures
-            'sp_add_agent_parameter', 'sp_enableagentoffload', 'sp_add_agent_profile',
-            'sp_enumcustomresolvers', 'sp_addarticle', 'sp_enumdsn', 'sp_adddistpublisher',
-            'sp_enumfullsubscribers', 'sp_adddistributiondb', 'sp_expired_subscription_cleanup',
-            'sp_adddistributor', 'sp_generatefilters', 'sp_addmergealternatepublisher',
-            'sp_getagentoffloadinfo', 'sp_addmergearticle', 'sp_getmergedeletetype', 'sp_addmergefilter',
-            'sp_get_distributor', 'sp_addmergepublication', 'sp_getqueuedrows', 'sp_addmergepullsubscription',
-            'sp_getsubscriptiondtspackagename', 'sp_addmergepullsubscription_agent', 'sp_grant_publication_access',
-            'sp_addmergesubscription', 'sp_help_agent_default', 'sp_addpublication', 'sp_help_agent_parameter',
-            'sp_addpublication_snapshot', 'sp_help_agent_profile', 'sp_addpublisher70', 'sp_helparticle',
-            'sp_addpullsubscription', 'sp_helparticlecolumns', 'sp_addpullsubscription_agent', 'sp_helparticledts',
-            'sp_addscriptexec', 'sp_helpdistpublisher', 'sp_addsubscriber', 'sp_helpdistributiondb',
-            'sp_addsubscriber_schedule', 'sp_helpdistributor', 'sp_addsubscription', 'sp_helpmergealternatepublisher',
-            'sp_addsynctriggers', 'sp_helpmergearticle', 'sp_addtabletocontents', 'sp_helpmergearticlecolumn',
-            'sp_adjustpublisheridentityrange', 'sp_helpmergearticleconflicts', 'sp_article_validation',
-            'sp_helpmergeconflictrows', 'sp_articlecolumn', 'sp_helpmergedeleteconflictrows', 'sp_articlefilter',
-            'sp_helpmergefilter', 'sp_articlesynctranprocs', 'sp_helpmergepublication', 'sp_articleview',
-            'sp_helpmergepullsubscription', 'sp_attachsubscription', 'sp_helpmergesubscription', 'sp_browsesnapshotfolder',
-            'sp_helppublication', 'sp_browsemergesnapshotfolder', 'sp_help_publication_access', 'sp_browsereplcmds',
-            'sp_helppullsubscription', 'sp_change_agent_parameter', 'sp_helpreplfailovermode', 'sp_change_agent_profile',
-            'sp_helpreplicationdboption', 'sp_changearticle', 'sp_helpreplicationoption', 'sp_changedistpublisher',
-            'sp_helpsubscriberinfo', 'sp_changedistributiondb', 'sp_helpsubscription', 'sp_changedistributor_password',
-            'sp_ivindexhasnullcols', 'sp_changedistributor_property', 'sp_helpsubscription_properties', 'sp_changemergearticle',
-            'sp_link_publication', 'sp_changemergefilter', 'sp_marksubscriptionvalidation', 'sp_changemergepublication',
-            'sp_mergearticlecolumn', 'sp_changemergepullsubscription', 'sp_mergecleanupmetadata', 'sp_changemergesubscription',
-            'sp_mergedummyupdate', 'sp_changepublication', 'sp_mergesubscription_cleanup', 'sp_changesubscriber',
-            'sp_publication_validation', 'sp_changesubscriber_schedule', 'sp_refreshsubscriptions', 'sp_changesubscriptiondtsinfo',
-            'sp_reinitmergepullsubscription', 'sp_changesubstatus', 'sp_reinitmergesubscription', 'sp_change_subscription_properties',
-            'sp_reinitpullsubscription', 'sp_check_for_sync_trigger', 'sp_reinitsubscription', 'sp_copymergesnapshot',
-            'sp_removedbreplication', 'sp_copysnapshot', 'sp_repladdcolumn', 'sp_copysubscription', 'sp_replcmds',
-            'sp_deletemergeconflictrow', 'sp_replcounters', 'sp_disableagentoffload', 'sp_repldone', 'sp_drop_agent_parameter',
-            'sp_repldropcolumn', 'sp_drop_agent_profile', 'sp_replflush', 'sp_droparticle', 'sp_replicationdboption',
-            'sp_dropanonymouseagent', 'sp_replication_agent_checkup', 'sp_dropdistpublisher', 'sp_replqueuemonitor',
-            'sp_dropdistributiondb', 'sp_replsetoriginator', 'sp_dropmergealternatepublisher', 'sp_replshowcmds',
-            'sp_dropdistributor', 'sp_repltrans', 'sp_dropmergearticle', 'sp_restoredbreplication', 'sp_dropmergefilter',
-            'sp_revoke_publication_access', 'sp_scriptsubconflicttable', 'sp_dropmergepublication', 'sp_script_synctran_commands',
-            'sp_dropmergepullsubscription', 'sp_setreplfailovermode', 'sp_showrowreplicainfo', 'sp_dropmergesubscription',
-            'sp_subscription_cleanup', 'sp_droppublication', 'sp_table_validation', 'sp_droppullsubscription',
-            'sp_update_agent_profile', 'sp_dropsubscriber', 'sp_validatemergepublication', 'sp_dropsubscription',
-            'sp_validatemergesubscription', 'sp_dsninfo', 'sp_vupgrade_replication', 'sp_dumpparamcmd',
-
-            //Security Procedures
-            'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember',
-            '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',
-            'sp_changegroup', 'sp_helprolemember', 'sp_changeobjectowner', 'sp_helprotect', 'sp_change_users_login',
-            'sp_helpsrvrole', 'sp_dbfixedrolepermission', 'sp_helpsrvrolemember', 'sp_defaultdb', 'sp_helpuser',
-            'sp_defaultlanguage', 'sp_MShasdbaccess', 'sp_denylogin', 'sp_password', 'sp_dropalias', 'sp_remoteoption',
-            'sp_dropapprole', 'sp_revokedbaccess', 'sp_dropgroup', 'sp_revokelogin', 'sp_droplinkedsrvlogin',
-            'sp_setapprole', 'sp_droplogin', 'sp_srvrolepermission', 'sp_dropremotelogin', 'sp_validatelogins', 'sp_droprole',
-
-            //SQL Mail Procedures
-            'sp_processmail', 'xp_sendmail', 'xp_deletemail', 'xp_startmail', 'xp_findnextmsg', 'xp_stopmail', 'xp_readmail',
-
-            //SQL Profiler Procedures
-            'sp_trace_create', 'sp_trace_setfilter', 'sp_trace_generateevent', 'sp_trace_setstatus', 'sp_trace_setevent',
-
-            //SQL Server Agent Procedures
-            'sp_add_alert', 'sp_help_jobhistory', 'sp_add_category', 'sp_help_jobschedule', 'sp_add_job',
-            'sp_help_jobserver', 'sp_add_jobschedule', 'sp_help_jobstep', 'sp_add_jobserver', 'sp_help_notification',
-            'sp_add_jobstep', 'sp_help_operator', 'sp_add_notification', 'sp_help_targetserver',
-            'sp_add_operator', 'sp_help_targetservergroup', 'sp_add_targetservergroup', 'sp_helptask',
-            'sp_add_targetsvrgrp_member', 'sp_manage_jobs_by_login', 'sp_addtask', 'sp_msx_defect',
-            'sp_apply_job_to_targets', 'sp_msx_enlist', 'sp_delete_alert', 'sp_post_msx_operation',
-            'sp_delete_category', 'sp_purgehistory', 'sp_delete_job', 'sp_purge_jobhistory', 'sp_delete_jobschedule',
-            'sp_reassigntask', 'sp_delete_jobserver', 'sp_remove_job_from_targets', 'sp_delete_jobstep',
-            'sp_resync_targetserver', 'sp_delete_notification', 'sp_start_job', 'sp_delete_operator',
-            'sp_stop_job', 'sp_delete_targetserver', 'sp_update_alert', 'sp_delete_targetservergroup',
-            'sp_update_category', 'sp_delete_targetsvrgrp_member', 'sp_update_job', 'sp_droptask',
-            'sp_update_jobschedule', 'sp_help_alert', 'sp_update_jobstep', 'sp_help_category',
-            'sp_update_notification', 'sp_help_downloadlist', 'sp_update_operator', 'sp_helphistory',
-            'sp_update_targetservergroup', 'sp_help_job', 'sp_updatetask', 'xp_sqlagent_proxy_account',
-
-            //System Procedures
-            'sp_add_data_file_recover_suspect_db', 'sp_helpconstraint', 'sp_addextendedproc',
-            'sp_helpdb', 'sp_addextendedproperty', 'sp_helpdevice', 'sp_add_log_file_recover_suspect_db',
-            'sp_helpextendedproc', 'sp_addmessage', 'sp_helpfile', 'sp_addtype', 'sp_helpfilegroup',
-            'sp_addumpdevice', 'sp_helpindex', 'sp_altermessage', 'sp_helplanguage', 'sp_autostats',
-            'sp_helpserver', 'sp_attach_db', 'sp_helpsort', 'sp_attach_single_file_db', 'sp_helpstats',
-            'sp_bindefault', 'sp_helptext', 'sp_bindrule', 'sp_helptrigger', 'sp_bindsession',
-            'sp_indexoption', 'sp_certify_removable', 'sp_invalidate_textptr', 'sp_configure',
-            'sp_lock', 'sp_create_removable', 'sp_monitor', 'sp_createstats', 'sp_procoption',
-            'sp_cycle_errorlog', 'sp_recompile', 'sp_datatype_info', 'sp_refreshview', 'sp_dbcmptlevel',
-            'sp_releaseapplock', 'sp_dboption', 'sp_rename', 'sp_dbremove', 'sp_renamedb',
-            'sp_delete_backuphistory', 'sp_resetstatus', 'sp_depends', 'sp_serveroption', 'sp_detach_db',
-            'sp_setnetname', 'sp_dropdevice', 'sp_settriggerorder', 'sp_dropextendedproc', 'sp_spaceused',
-            'sp_dropextendedproperty', 'sp_tableoption', 'sp_dropmessage', 'sp_unbindefault', 'sp_droptype',
-            'sp_unbindrule', 'sp_executesql', 'sp_updateextendedproperty', 'sp_getapplock', 'sp_updatestats',
-            'sp_getbindtoken', 'sp_validname', 'sp_help', 'sp_who',
-
-            //Web Assistant Procedures
-            'sp_dropwebtask', 'sp_makewebtask', 'sp_enumcodepages', 'sp_runwebtask',
-
-            //XML Procedures
-            'sp_xml_preparedocument', 'sp_xml_removedocument',
-
-            //General Extended Procedures
-            'xp_cmdshellxp_logininfo', 'xp_enumgroups', 'xp_msver', 'xp_findnextmsgxp_revokelogin',
-            'xp_grantlogin', 'xp_sprintf', 'xp_logevent', 'xp_sqlmaint', 'xp_loginconfig', 'xp_sscanf',
-
-            //API System Stored Procedures
-            'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen',
-            'sp_cursoroption', 'sp_cursorprepare', 'sp_cursorunprepare', 'sp_execute', 'sp_prepare', 'sp_unprepare',
-
-            //Misc
-            'sp_createorphan', 'sp_droporphans', 'sp_reset_connection', 'sp_sdidebug'
-            ),
-        4 => array(
-            //Function/sp's higlighted brown.
-            'fn_helpcollations', 'fn_listextendedproperty ', 'fn_servershareddrives',
-            'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo',
-            'fn_trace_gettable', 'fn_virtualfilestats','fn_listextendedproperty',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=',
-        '<=>', '<>', '=', '>', '>=', '>>', '^', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS',
-        'EXISTS', 'IN', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME', '|', '||', '~'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #FF00FF;',
-            3 => 'color: #AF0000;',
-            4 => 'color: #AF0000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080;',
-            'MULTI' => 'color: #008080;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #808080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #808080;'
-            ),
-        '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(
-        )
-);
-
diff --git a/vendor/easybook/geshi/geshi/xojo.php b/vendor/easybook/geshi/geshi/xojo.php
deleted file mode 100644
index 73589e81f5de4f2876e273cda476fef04026d3b6..0000000000000000000000000000000000000000
--- a/vendor/easybook/geshi/geshi/xojo.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-/*************************************************************************************
- * xojo.php
- * --------
- * Author: Dr Garry Pettet (contact@garrypettet.com)
- * Copyright: (c) 2014 Dr Garry Pettet (http://garrypettet.com)
- * Release Version: 1.0.0
- * Date Started: 2014/10/19
- *
- * Xojo language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2014/10/19 (1.0.8.12)
- *  -  First Release
- *
- * TODO (updated 2014/10/19)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Xojo',
-    'COMMENT_SINGLE' => array(1 => "'", 2 => '//', 3 => 'rem'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-	'NUMBERS' => array(
-	        1 => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE, // integers
-	        2 => GESHI_NUMBER_FLT_NONSCI // floating point numbers
-	        ),    
-    'KEYWORDS' => array(
-        //Keywords
-        1 => array(
-	        'AddHandler', 'AddressOf', 'Aggregates', 'And', 'Array', 'As', 'Assigns', 'Attributes', 
-	        'Break', 'ByRef', 'ByVal', 'Call', 'Case', 'Catch', 'Class', 'Const', 'Continue',
-	        'CType', 'Declare', 'Delegate', 'Dim', 'Do', 'DownTo', 'Each', 'Else', 'Elseif', 'End', 
-	        'Enum', 'Event', 'Exception', 'Exit', 'Extends', 'False', 'Finally', 'For', 
-	        'Function', 'Global', 'GoTo', 'Handles', 'If', 'Implements', 'In', 'Inherits', 
-	        'Inline68K', 'Interface', 'Is', 'IsA', 'Lib', 'Loop', 'Me', 'Mod', 'Module', 
-	        'Namespace', 'New', 'Next', 'Nil', 'Not', 'Object', 'Of', 'Optional', 'Or', 
-	        'ParamArray', 'Private', 'Property', 'Protected', 'Public', 'Raise', 
-	        'RaiseEvent', 'Rect', 'Redim', 'RemoveHandler', 'Return', 'Select', 'Self', 'Shared', 
-	        'Soft', 'Static', 'Step', 'Sub', 'Super', 'Then', 'To', 'True', 'Try',
-	        'Until', 'Using', 'Wend', 'While', 'With', 'WeakAddressOf', 'Xor'
-            ),
-        //Data Types
-        2 => array(
-            'Boolean', 'CFStringRef', 'CString', 'Currency', 'Double', 'Int8', 'Int16', 'Int32',
-            'Int64', 'Integer', 'OSType', 'PString', 'Ptr', 'Short', 'Single', 'String', 
-            'Structure', 'UInt8', 'UInt16', 'UInt32', 'UInt64', 'UShort', 'WindowPtr', 
-            'WString', 'XMLNodeType'
-            ),
-        //Compiler Directives
-        3 => array(
-            '#Bad', '#Else', '#Endif', '#If', '#Pragma', '#Tag'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '=', '/', '>', '<', '^', '(', ')', '.'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF;',  // keywords
-            2 => 'color: #0000FF;',  // primitive data types
-            3 => 'color: #0000FF;',  // compiler commands
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #7F0000;',
-            'MULTI' => 'color: #7F0000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #6500FE;'
-            ),
-        'NUMBERS' => array(
-            1 => 'color: #326598;', // integers
-            2 => 'color: #006532;', // floating point numbers
-            ),
-        'METHODS' => array(
-            1 => 'color: #000000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-	        1 => 'color: #326598;', // &h hex numbers
-	        2 => 'color: #326598;', // &b hex numbers
-	        3 => 'color: #326598;', // &o hex numbers
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://docs.xojo.com/index.php/{FNAMEU}',
-        2 => 'http://docs.xojo.com/index.php/{FNAMEU}',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 =>'.'
-        ),
-    'REGEXPS' => array(
-		1 => array( // &h numbers
-		    // search for &h, then any number of letters a-f or numbers 0-9
-		    GESHI_SEARCH => '(&amp;h[0-9a-fA-F]*\b)',
-		    GESHI_REPLACE => '\\1',
-		    GESHI_MODIFIERS => '',
-		    GESHI_BEFORE => '',
-		    GESHI_AFTER => ''
-		    ),
-		2 => array( // &b numbers
-		    // search for &b, then any number of 0-1 digits
-		    GESHI_SEARCH => '(&amp;b[0-1]*\b)',
-		    GESHI_REPLACE => '\\1',
-		    GESHI_MODIFIERS => '',
-		    GESHI_BEFORE => '',
-		    GESHI_AFTER => ''
-		    ),
-		3 => array( // &o octal numbers
-		    // search for &o, then any number of 0-7 digits
-		    GESHI_SEARCH => '(&amp;o[0-7]*\b)',
-		    GESHI_REPLACE => '\\1',
-		    GESHI_MODIFIERS => '',
-		    GESHI_BEFORE => '',
-		    GESHI_AFTER => ''
-		    )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
-
diff --git a/vendor/geshi/geshi/.editorconfig b/vendor/geshi/geshi/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..18d665e5c1f60d02c8e8e01d187934f011089eb7
--- /dev/null
+++ b/vendor/geshi/geshi/.editorconfig
@@ -0,0 +1,19 @@
+; http://editorconfig.org/
+
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[vendor]
+; Use editor default (possible autodetection).
+indent_style =
+indent_size =
+end_of_line =
+trim_trailing_whitespace =
+insert_final_newline =
diff --git a/vendor/geshi/geshi/.gitignore b/vendor/geshi/geshi/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..44e52f21a01186132a7e39a2fb316acaa09b12d9
--- /dev/null
+++ b/vendor/geshi/geshi/.gitignore
@@ -0,0 +1,3 @@
+dist
+build.properties
+
diff --git a/vendor/geshi/geshi/BUGS b/vendor/geshi/geshi/BUGS
new file mode 100644
index 0000000000000000000000000000000000000000..8a5cf04694c21c15f14459ba2c1535e5de86708b
--- /dev/null
+++ b/vendor/geshi/geshi/BUGS
@@ -0,0 +1,29 @@
+
+                      BUGS - list of known bugs in GeSHi
+                                Version 1.0.8
+
+- Number highlighting is quite poor [possibly better now]
+- I'm not happy with URLS - there still could be extra bugs, and it's rather unflexible
+  (see TODO for a possible fix)
+- "Important" sections for some reason seem to have their spans added after every
+  newline up until the next lexic, instead of stopping at the <END GeSHi> part. In fact,
+  context sensitiveness is quite poor...
+- Using the extra line number highlighting feature without actually using line numbers
+  will result in malformed XHTML (not sure about this one though...)
+- Slow!!! Especially for source with lots of strings in it. GeSHi will work acceptably
+  for sourcecode under 5K (for simple language files like SQL, a 100K file can be
+  highlighted in just 6 seconds), but above about 25K things get a little slow... If
+  you're using this as part of some larger software, you may want to think about
+  making some sort of "cache" effect to speed things up and reduce server load.
+- The result is built by string replacement instead of by building another string based
+  on the source, that would be much safer. The focus of releases beyond 1.0.7 will be on
+  changing this behaviour, which may well fix some of the other bugs mentioned above.
+- As of 1.0.7.1, dots (.) are allowed before keywords. This may change highlighting of some
+  things slightly, if you notice anything odd about the highlighting then please report
+  it to me.
+- Perl/Javascript /.../ regex syntax is only supported basically and there's no
+  guarantee it is working all the time.
+- The <pre> header output is not XHTML compliant. Please use the <div> header instead.
+
+Send any bug reports to BenBE@omorphia.de, or submit them via the bug tracker at
+sourceforge (http://sourceforge.net/tracker/?group_id=114997&atid=670231)
diff --git a/vendor/geshi/geshi/CHANGELOG b/vendor/geshi/geshi/CHANGELOG
new file mode 100644
index 0000000000000000000000000000000000000000..514e1a8956d5d51f9098aefc928ceb4d071a9339
--- /dev/null
+++ b/vendor/geshi/geshi/CHANGELOG
@@ -0,0 +1,1013 @@
+
+              CHANGES - Changelog for GeSHi (geshi.php only)
+
+Changes to the code are listed under the version they occurred in, with who suggested
+it by each one (if there's nobody listed as suggesting it I dreamed it up :)). Users
+who suggested an idea often also provided the code that was used as a basis for the
+changes - thanks to all who suggested these ideas and gave me the code to show me how!
+
+Language files listed under each version were made by the author beside them, and then
+modified by me for consistency/bug fixing.
+
+Please send any bug reports to BenBE@omorphia.de, or use the bug report tracker
+at sourceforge (http://sourceforge.net/tracker/?group_id=114997&atid=670231)
+
+Version 1.0.9.0
+  -  Add public/protected method & property visibility.
+     THIS MAY BREAK YOUR CODE
+  -  Restructure git repository
+  -  Compatible with PHP7
+  -  Remove PHP4 compatibility code
+Version 1.0.8.13
+  -  Added language files
+     * Ceylon (Lucas Werkmeister)
+     * eggdrop (CrazyCat)
+     * Julia (Curtis Vogt)
+     * Kotlin (Ole Kristian Sandum)
+     * Mathematica (Connor Glosser)
+     * Mercury (Sebastian Godelet)
+     * MetaPost (Maxime Chupin)
+     * phix (Pete Lomax)
+     * SASS (Javier Eguiluz)
+     * Swift (Ken Woo)
+     * TeXgraph (Patrick Fradin)
+     * Twig templates (Javier Eguiluz)
+     * windows batch (Lev)
+     * Xojo (Massimo Zappino)
+  -  Improvements to language files
+     * AutoIt: new version (Jonathan Bennett)
+     * C++11 keywords (Streusel)
+     * CSS attributes (BenBE)
+     * CSS: SVG fill styles (peterdd)
+     * Haskell: Non-standard string highlighting (Evan Czaplicki)
+     * Haskell: Quote mark handling (Sidharth Kapur)
+     * Lua: match comments non-greedily (Jerry)
+     * PowerBuilder: additional encoding constants (Doug Porter)
+     * QML updates (Thibaut Cuvelier)
+     * Qt5 API for C++ language file (neochapay)
+     * SQL: ELSEIF keyword (Kris)
+     * YAML numbers specification (BenBE)
+  -  Fix compatibility for PHP 7 (pazuzu156)
+  -  Automatically run langcheck when committing code
+Version 1.0.8.12
+  -  Added language files
+     * AIMMS (Guido Diepen)
+     * C with WinAPI (BenBE)
+     * C++ with WinAPI (BenBE)
+     * Chapel (Richard Molitor)
+     * Dart (Edward Hart)
+     * EZT (Ramesh Vishveshwar)
+     * ISPF Panel (Ramesh Vishveshwar)
+     * Job Control Language (Ramesh Vishveshwar)
+     * nginx (Cliff Wells, Deoren Moor, Thomas Joiner)
+     * Nimrod (Dennis Felsing)
+     * PostScript (BenBE)
+     * QML (J-P Nurmi)
+     * Racket (Tim Brown)
+     * RBScript (Deng Wen Gang)
+     * Rust (Dave Hodder)
+     * SCL (Leonhard Hösch)
+     * StandardML (eldesh)
+     * VBScript (Rory Prendergast)
+  -  Allow for global setup of all keyword and comments style at once using '*' (BenBE)
+  -  Non-persistent XSS in example contrib script (BenBE, present in intermediate dev versions)
+  -  Fix short tag usage to allow for configurations where short tags are disabled (BenBE)
+  -  Updated COPYING to use updated version of GPL 2.0 (BenBE)
+  -  Improvements to language files (BenBE)
+     * Updated Documentation Link for LaTeX (Johannes Ähling)
+     * Fix some highlighting problems with Octave (Carnë Draug, Juan Pablo Carbajal)
+     * Fix a minor issue with comments in Visual Basic (Plançon, BenBE)
+     * Some LangCheck issues with Visual Basic (BenBE)
+     * Fix a minor issue with keywords in SQL (Gerrit, BenBE)
+     * Force comments in INI files to be their own line (BenBE)
+     * Fix problem with T-SQL keyword highlighting (James Horsley, BenBE)
+     * Some more keywords for Bash (BenBE)
+     * Updated LSL2 language file (BenBE, Sei Lisa)
+     * Fixed langcheck errors in Lua langfile (BenBE)
+     * Fixed double quotes in Tcl (BenBE, stecue)
+     * Updated PARI/GP language file (Charles R Greathouse IV, BenBE)
+     * Updated Cobol language file (Edward Hart, BenBE)
+     * Updated Verilog language file (Tony Carrillo, BenBE)
+     * Updated Lisp language file (Edward Hart, BenBE)
+     * Updated list of Debian and Ubuntu releases (BenBE)
+     * Implemented C++11 string literal support (BenBE)
+     * Updated list of commands on Bash language file (BenBE)
+     * Updated PHP language file (Levi Morrisson)
+     * Updated Haskell language file (duplode)
+     * Updated NSIS language file (Jan T. Scott, BenBE)
+     * Add raw string support for Rust (mbrown1413)
+     * Fix LangCheck issues with LOLcode language file (mudhailess, BenBE)
+     * Updated LSL2 language file (Sei Lisa, BenBE)
+     * Updated Oxygene language file (Carlo Kok, BenBE)
+     * Fixed TCL comment processing (Sei Lisa)
+     * Fixed C++ (Qt) documentation links (Sei Lisa)
+     * Updated CSS language file to include CSS3 keywords (Zéfling, BenBE))
+Version 1.0.8.11
+  -  Added language files
+     * ARM (Marat Dukhan)
+     * Asymptote (Manuel Yguel)
+     * DCL (Petr Hendl)
+     * DCPU-16 (Benny Baumann)
+     * FreeSWITCH (James Rose)
+     * Haxe (Andy Li, John Liao)
+     * LDIF (Bruno Harbulot)
+     * Nagios (Albéric de Pertat)
+     * Octave (Carnë Draug, Juan Pablo Carbajal)
+     * ParaSail (sttaft)
+     * PARI/GP (Charles R Greathouse IV)
+     * Python for S60 (Sohan Basak)
+     * Rexx (Jon Wolfers)
+     * SPARK (Phil Thornley)
+     * SPARQL (Karima Rafes)
+     * StoneScript (Archimmersion)
+     * UPC (Viraj Sinha)
+     * Urbi (Alexandre Morgand)
+     * Vedit (Pauli Lindgren)
+  -  Updated aliasd.php contrib script (SF#3073275, count)
+  -  Fallback to "text" when extension is unknown (SF#3514714, murkymark, BenBE)
+  -  detect extensions case-insensitive (SF#3514714, murkymark, BenBE)
+  -  Fixed two bugs within contrib scripts included with each release (BenBE)
+  -  Improvements to language files (BenBE)
+     * Symbol and char literal handling for Scala (Paul Butcher, BenBE)
+     * Multiline comments of F# weren't actually multiline (BenBE)
+     * Support for IPv6 addresses in RFC822 messages (BenBE)
+     * Properly handle retrieving names from language files (MikeSee, BenBE)
+     * Changes for improved highlighting of signle line comments and end-of-code indicators
+     * Missing keywords and improved highlighting of comments
+     * Problem with DOS/Batch highlighting breaking out at variables (BenBE)
+     * Addition of MMX/SSE/x86-64 registers and MMX/SSE instructions for
+       ASM language file(up to 4.2) (Dennis Yurichev)
+     * Further improvements to ASM language file to introduce all latest
+       already documented x86 architecture instructions (Marat Dukhan)
+     * Fixed links for R/S+ language file (Fernando H.F.P. da Rosa)
+     * Fix a problem with Delphi/Pascal regarding hex numbers/chars (BenBE)
+     * Fixed a typo and missing keywords for HTML4 and HTML5 (SF#3365452, BenBE)
+     * Fixed a typo in Modula-3 language file (SF#3358216, BenBE)
+     * Added missing keywords for MySQL (SF#3290998, ct-bob, BenBE)
+     * Added missing keywords for Pascal (SF#3176749, BenBE)
+     * Properly detect the keyword that is to be linked (BenBE)
+     * Updated VHDL language file (Kevin Thibedeau)
+     * Added missing keyword for Verilog (SF#3557903, BenBE)
+     * Fixed typo in Haskell causing a keyword to be missing (SF#3529439, BenBE)
+     * Fixed Long String handling for Lua (SF#3541510, Tim Starling)
+     * Updated JavaDoc links for Java language files (SF#3538552, jeneag, BenBE)
+     * CSS keywords incorrectly highlighted as part of identifiers (SF#3554101, BenBE)
+     * CSS3 keywords missing from highlighting (SF#3525084, vlaKoff, BenBE)
+     * Make variable handling compatible to PHP (SF#3489142, BenBE)
+     * Fixed obsolete MySQL documentation links (SF#3441642, BenBE)
+     * Add mising keywords for T-SQL (SF#3435026, BenBE)
+     * Fix discarded text when highlighting TypoScript (SF#3160238, BenBE)
+Version 1.0.8.10
+  -  Added language files
+     * BASCOM AVR (Michal Goralczyk)
+     * C: Loadrunner dialect (Stuart Moncrieff)
+     * CoffeeScript (Trevor Burnham)
+     * EPC (Thorsten Muehlfelder)
+     * Euphoria (Nicholas Koceja)
+     * Falcon (billykater)
+     * HTML5 (Robert Lidberg)
+     * LLVM (Azriel Fasten)
+     * PL/I (Robert Prins)
+     * ProFTPd (Benny Baumann)
+     * PyCon (Benny Baumann)
+     * UnrealScript (pospi)
+     * YAML (Josh Ventura)
+  -  Small bugfix in LangCheck when looking for language files
+  -  Added '-' to list of RX chars that require explicit escaping (SF#3056454, BenBE)
+  -  Minor changes to boundary checks (SF#3077256, BenBE)
+  -  Improvements to language files (BenBE)
+     * Major rework of the ALGOL68 language file (Neville Dempsey)
+     * LangCheck warnings from GO language file (BenBE)
+     * Some additions to the Objeck language file (Randy Hollines)
+     * Properly highlight infinity as numbers for J (Ric Sherlock)
+     * Improved GDB Backtrace language file (Milian Wolff)
+     * Updated Liberty BASIC language file (Chris Iverson)
+     * Fixed a small issue with detection of division vs. regular expressions
+       for ActionScript 3 and JavaScript (Kevin Day)
+     * Fixed Escape handling for CSS (SF#3080513, yecril71pl, BenBE)
+     * Additional comment styles for SAS (SF#3024708, ahnolds, BenBE)
+     * Updated keyword list for TeraTerm (Boris Maisuradze)
+     * Incorrect handling of /**/ comments in Javascript (BenBE)
+     * Support for mod_upload_progress in Apache Config files (BenBE)
+     * Prefix operator handling in F# was broken (BenBE)
+     * CDATA handling for html4strict (BenBE)
+     * Common subcommands for Apache, APT, CVS, Git, SVN and YUM for Bash (BenBE)
+     * Limited support for prompt detection in single line Bash snippets (BenBE)
+     * Added functions of the C standard library (BenBE)
+     * Rework of Lua to use GeSHi's features better (BenBE)
+     * Language file improvements for Python (Zbyszek Szmek)
+     * Fixed documentation links for Groovy (SF#3152356, lifeisfoo)
+     * Fixed incorrect highlighting of certain keywords in Erlang (SF#3138853, BenBE)
+     * Escape chars in C++/C++Qt handled incorrectly (SF#3122706, C. Pötsch)
+     * Empty parameters of LaTeX commands tipped the highlighting off (SF#3098329, James Oldfield, BenBE)
+     * Additional Keywords and minor tweaks to Logtalk (Paulo Moura)
+Version 1.0.8.9
+  -  Added language files
+     * Algol68 (Neville Dempsey)
+     * E (Kevin Reid)
+     * FormulaOne (Juro Bystricky)
+     * Go (Markus Jarderot)
+     * Liberty BASIC (Chris Iverson)
+     * MOS 6502/6510 Assemblers (Warren Willmey)
+     * Motorola 68k assembler (Warren Willmey)
+     * Objeck Programming Language (Randy Hollines)
+     * ZXBasic (Jose Rodriguez)
+  -  Added support for $-prefixed hex numbers and @-prefixed octal numbers
+  -  Added Parser Control for languages to tell when numbers are present
+     inside of non-string parts
+  -  Introduced querying supported/known languages directly
+  -  Introduced querying full language names without loading the language file
+  -  Improvements to language files (BenBE)
+     * Added loads of keywords for generic SQL highlighting (Jürgen Thomas)
+Version 1.0.8.8
+  -  Added language files
+     * ChaiScript (Jason Turner & Jonathan Turner)
+     * Genie (Nicolas Joseph)
+     * GwBasic (José Gabriel Moya Yangüela)
+     * HicEst (Georg Petrich)
+     * Icon (Matt Oates)
+     * MagikSF (Sjoerd van Leent)
+     * Modula 2 (Benjamin Kowarsch)
+     * Oz (Wolfgang Meyer)
+     * PCRE (BenBE)
+     * PostgreSQL (Christophe Chauvet)
+     * q/kdb+ (Ian Roddis)
+     * RPM Specification Files (Paul Grinberg)
+     * Unicon (Matt Oates)
+     * Vala (Nicolas Joseph)
+     * XBasic (José Gabriel Moya Yangüela)
+  -  Improvements to language files (BenBE)
+     * Major reworks and improvements to OCaml language file (BenBE)
+     * Removed duplicate entries from keyword groups of VIM language file (Segaja)
+     * Properly protect Regexps against GeSHi Black Magic in Matlab (BenBE)
+     * Added support for Block Comments in PowerShell (BenBE)
+     * Added some keywords for VB; split into multiple groups (leejkennedy, BenBE)
+     * Basic Heredoc Support for Ruby (BenBE)
+Version 1.0.8.7
+  -  Added language files
+     * Autoconf (Mihai Vasilian)
+     * ECMAScript (Michel Mariani)
+     * J (Ric Sherlock)
+     * OpenBSD Packet Filter (David Berard)
+     * Oxygene / Delphi Prism (Carlo Kok)
+  -  Minor change in INT_BASIC number regexp to support '..' range operator
+     as to be found in most Pascal-like languages (BenBE)
+  -  Fixed an issue with Hardquotes for empty strings (like '' in Delphi) (BenBE)
+  -  Introduced a fix for improved performance when matching numbers (BenBE)
+  -  Improvements to language files (BenBE)
+     * Fixed broken links in Prolog language file (BenBE)
+     * Fixed keywords in generics expressions in Java5 (BenBE)
+     * Added support for import static in Java5 (BenBE)
+     * Added Standard Integer Types for C and c++ (BenBE)
+     * Fixed some regexp issues in Erlang (BenBE)
+     * Added some missing keywords for Clojure (BenBE)
+     * Added some missing keywords for Lisp (BenBE)
+     * Fixed a problem with variable names in Prolog (BenBE)
+     * Some color changes for AutoIt (BenBE)
+     * Added support for basic include directive processing for AutoIt (BenBE)
+     * Added support for ::-style labels as comments (SF#2947393, BenBE)
+     * Removed backslash as Escape Char in T-SQL (SF#2939199, Bruno Braga)
+     * Added Nested Comments Support for Haskell (SF#2922317, BenBE)
+     * Fixed Comments for VIM, added some keywords, proposed porting of
+       Regular Expression markup from Perl (SF#2818047, psycojoker, BenBE)
+     * Fixed warnings for Language Check of Tcl (BenBE)
+Version 1.0.8.6
+  -  Added language files
+     * Clojure (Jess Johnson)
+     * Cuesheet (Benny Baumann)
+     * F# (Julien Ortin)
+     * GAMBAS (Jesus Guardon)
+     * Logtalk (Paulo Moura)
+     * MapBasic (Tomasz Berus)
+     * NewLisp (cormullion)
+     * Perl 6 (Kodi Arfer)
+     * Pike (Rick E.)
+     * SystemVerilog (Sean O'Boyle)
+  -  Reworked parts of the number support (BenBE)
+  -  Improvements to language files (BenBE)
+     * Fixed broken links in R/S+ language file (BenBE)
+     * Fixed an issue with if= argument for dd command (BenBE)
+     * T-SQL should use GESHI_CAPS_NO_CHANGE for keywords (BenBE)
+     * Fixed missed shorthand arg references in Bash (BenBE)
+     * Fixed first line not getting highlighted in diff language (BenBE)
+     * Added some keywords for csharp (RC)
+Version 1.0.8.5
+  -  Added language files
+     * AutoHotkey (Naveen Garg)
+     * Awk (George Pollard)
+     * GADV 4CS (Jason Curl)
+     * jQuery (Rob Loach)
+     * PowerBuilder (Doug Porter)
+     * PureBasic (Gustavo Julio Fiorenza)
+     * R / S+ (Ron Fredericks, Benilton Carvalho)
+  -  Fixed legitimate numbers sometimes missing from highlighting (BenBE)
+  -  Fixed a problem with URLs allowing to break highlighting (BenBE)
+  -  Allowed for String and Number Styles to be set by the API (BenBE)
+  -  Produce valid CSS when languages start with underscore (BenBE)
+  -  Duplicate newlines with PRE_TABLE-Header but w/o linenumbers (SF#2838958, BenBE)
+  -  Improvements to language files (BenBE)
+     * Fixed case-insensitively duplicate keywords (BenBE)
+     * DCS language file contained HARDQUOTE section but no hardquotes (BenBE)
+     * Some additional headers for Email\mbox highlighting (BenBE)
+     * Added some more Keywords for robots.txt highlighting (BenBE)
+     * Added Git commands for bash, ifup/ifdown (BenBE)
+     * Added support for C# and VB.net delegates (SF#2832253, BenBE)
+     * Added support for line numbers, file handles and hex\octal numbers for QBasic (BenBE)
+Version 1.0.8.4
+  -  Added language files
+     * BibTeX (Quinn Taylor)
+     * CMake (Daniel Nelson)
+     * Erlang (Benny Baumann, Dan Forest-Barbier, Uwe Dauernheim)
+     * FO (abas-ERP) (Tan-Vinh Nguyen)
+     * Property Files (Edy Hinzen)
+     * Whois (RPSL format) entries (Benny Baumann)
+  -  Changed INT_BASIC number format to allow numbers followed . at EOL (BenBE)
+  -  Higher prority for keywords over regexps (BenBE)
+  -  Added missing set_script_style API function (BenBE)
+  -  Fixed missing check for comment_regexp preference in HardQuotes (BenBE)
+  -  Fixed a problem with Strict Block Detection if the Strict Block Regexp
+     requires matching groups for itself (BenBE)
+  -  Improvements to language files (BenBE)
+     * Added PCRE regexp support for Action script (SF#2655644, BenBE)
+     * Removed some superfluous keywords from ABAP (BenBE)
+     * Removed duplicate keywords for Progress (BenBE)
+     * Removed duplicate keywords for T-SQL (BenBE)
+     * Linking for PowerShell special variables revised (BenBE)
+     * Fixed linking in ColdFusion (BenBE)
+     * Fixed linking in LaTeX (BenBE)
+     * Fixed linking in mIRC Scripting language (BenBE)
+     * Fixed escape char regexp for C-style languages (BenBE)
+     * Fixed @""-string handling for C# (SF#2789371, BenBE)
+     * Fixed Strict Block Detection for PHP blocks (BenBE)
+     * Changed allowed chars around Powershell operators (SF#2688863, BenBE)
+     * Minor reordering inside of PHP language file (BenBE)
+     * Added missing keywords for ActionScript3 language file (SF#2795005, BenBE)
+     * Added .xrc file extension for XML highlighting (BenBE)
+Version 1.0.8.3
+  -  Added language files
+     * DCS (Stelio Passaris)
+     * Locomotive Basic (Nacho Cabanes)
+     * LSL2 (Linden Scripting Language) (William Fry)
+     * Modula-3 (Martin Bishop)
+     * Oberon-2 (Mike Mol)
+     * Rebol (Lecanu Guillaume)
+  -  Fixed a problem where HardEscapes weren't working when no escape char was given (BenBE)
+  -  Added a PARSER_CONTROL setting to treat whitespace inside of keywords in
+     the language file as "any whitespace" in the source (i.e. "CREATE TABLE"
+     in SQL will match "CREATE\s+TABLE" instead of literally matching) (BenBE)
+  -  Added a possibility to allow setting the style for escape characters (BenBE)
+  -  Improvements to language files (BenBE)
+     * Added some missing Perl keywords and obscure default variables (BenBE)
+     * Allow for escaped colons to appear in CSS names (BenBE, simon)
+     * Added multiline continuation suppoert of preprocessor defines for
+       C, C for Mac, C++ and CC++ with Qt support (BenBE)
+     * keywords for C-based languages are case-sensitive (BenBE)
+     * Broken AutoIt highlighting (BenBE)
+     * Problem with escaped backslash in PHP and D (BenBE)
+     * Added some more functions for PHP (BenBE)
+     * Some changes for AppleScript (Stefan Klieme)
+     * Forbid highlighting keywords followed by / in bash (BenBE)
+     * Updated the LaTeX file to link some keywords (BenBE)
+     * Additional text rendered when matching special variables for PowerShell (BenBE)
+     * Added some more keywords for ABAP (BenBE, Sandra Rossi, Jacob Laursen)
+Version 1.0.8.2
+  -  Added language files
+     * Brainfuck \ Brainfork (Benny Baumann)
+     * HQ9+ (Benny Baumann)
+     * INTERCAL (Benny Baumann)
+     * LOLcode (Benny Baumann)
+     * LScript (Beau McGuigan)
+     * Pixel Bender (Richard Olsson)
+     * ProvideX (Jeff Wilder)
+     * VIM Script (Swaroop C H)
+     * Visual Prolog (Thomas Linder Puls)
+     * Whitespace (Benny Baumann)
+  -  Changed priority for COMMENT_REGEXP compared to String highlighting (BenBE)
+  -  Fixed correct escaping of spaces inside of URLs (BenBE)
+  -  Updated the list of common file extensions (BenBE)
+  -  Updated the language file check script in contrib/ (BenBE)
+  -  Fixed a problem with link targets resulting in unclickable links (SF#2379120, BenBE)
+  -  Fixed an undefined variable issue in langcheck.php (BenBE)
+  -  Improvements to language files (BenBE)
+     * eMail Header highlighting now uses the correct delimiters for keywords (BenBE)
+     * eMail (RFC822\mbox) highlighting now highlights IPs, MIME types and
+       subfield assignments correctly (BenBE)
+     * Minor style changes in COBOL to improve loading performance (BenBE)
+     * Added some missing keywords for D (BenBE)
+     * Removed duplicate keywords from Progres, SAS and TSQL (BenBE)
+     * Fixed Heredoc Syntax for Bash (SF#2185319, BenBE)
+     * Moved symbol-lookalike sequences from keyword groups to separate symbol group
+       for languages asp, klonec, klonecpp, php, php-brief (BenBE)
+     * Fixed a lot of duplicate keyword warnings (BenBE)
+     * Added missing keywords to the Python language file,
+       introducing support for Python 3.0. (SF#2441839, milian)
+     * Updated documentation links for TypoScript (SF#2014276, BenBE)
+     * Fixed a problem with tag and attribute names in XML highlighting (SF#2276119, BenBE)
+     * Improved MySQL language file (BenBE, JavaWoman)
+     * Some commentss accidentially mistaken for DocComments (SF#2454897, BenBE)
+     * Added improved Escape Char handling for c, c_mac, cpp and cpp_qt (SF#2458743, BenBE)
+Version 1.0.8.1
+  -  Added language files
+     * AviSynth (Ryan Jones)
+     * eMail \ mbox (Benny Baumann)
+     * GNU Make (Neil Bird)
+     * Oracle 11i support (Simon Redhead)
+     * Prolog (Benny Baumann)
+     * SciLab (Christophe David)
+     * TeraTerm macro language (Boris Maisuradze)
+  -  Added support for Escape Regular Expressions (BenBE)
+     * Implemented C-style Escapes in PHP (BenBE)
+     * Introduced support for \xAB and \007 style Char Escapes in PHP (BenBE)
+     * Implemented Variable Highlighting in PHP (BenBE)
+     * Implemented Variable Highlighting in Bash (milian)
+  -  Fixed a problem with PCRE patterns for Keyword matching sometimes producing
+     very large strings, that could not be handled by some versions of PCRE lib,
+     causing broken highlighting an Regexp Compile errors (BenBE, milian)
+  -  Fixed broken highlighting of bash commands like `dbus-send --dest=org.....`,
+     i.e. the dest was highlighted as variable declaration (milian)
+  -  Fixed broken highlighting of some symbols in their escaped form (BenBE)
+     (<SEMI> and <PIPE> were accidentially filtered even though they are valid)
+  -  Fixed a "memory leak" in the *_regexp_caches (milian)
+  -  Fixed broken Escape chars if classes were disabled
+  -  start_line_numbers_at() was ignored when GESHI_HEADER_PRE_TABLE was set (revulo)
+  -  Fixed a problem allowing Remote Code Inclusion under certain circumstances (BenBE)
+  -  Changes to default CSS in order to make the GESHI_HEADER_PRE_TABLE align properly,
+     even on Windows / Mac systems with strange fonts (milian, revulo, ^RT)
+  -  Minor style changes to the following languages:
+     * cpp-qt (milian)
+     * MySQL (BenBE)
+     * PHP (BenBE)
+  -  Improvements to language files (BenBE, milian)
+     * Added MinSpareThread\MaxSpareThreads to Apache highlighter (BenBE)
+     * Added new Keyword group for APT sources.list highlighter (BenBE)
+     * Fixed highlighting in LaTeX for \begin{} and \end{}, i.e. the stuff inside
+       the curly braces. (milian, thanks for the report go to Matthias Pospiech)
+     * Improved String support for D (BenBE)
+     * MySQL was seriously broken (BenBE)
+     * Reworked Keyword groups for MySQL to allow for more configuration (BenBE)
+     * Improved Mirc script language file (milian)
+     * Improved C++ Qt language file (milian)
+     * Minor bug with Transpose Operator in Matlab (BenBE, Daniele de Rigo)
+     * Highlighting of Batch Files for Windows (BenBE)
+     * Updated AutoIt to include latest changes for AutoIt v3.2.12.1 (BenBE, Thierry)
+     * Fixed duplicate keyword warnings for Perl, Tcl and Typoscript (BenBE)
+     * Fixed Doc-URL getting reparsed by highlighted keywords of other groups (BenBE, Jordi Boggiano)
+Version 1.0.8
+  -  Added language files
+     * APT sources.list (milian)
+     * Boo (Marcus Griep)
+     * CIL (Common Intermediate Language, .NET Assembly) (Marcus Griep)
+     * COBOL (Benny Baumann)
+     * Gnuplot (milian)
+     * KLoneC (Mickael Auger)
+     * KLoneC++ (Mickael Auger)
+     * PIC16xxx assembler (Phil Mattison)
+     * POV-Ray (Carl Fürstenberg)
+     * PowerShell (Frode Aarebrot)
+     * Progress (Marco Aurelio de Pasqual)
+     * TypoScript (Jan-Philipp Halle)
+     * Xorg configuration (milian)
+  -  Make GeSHi's constructor arguments optional, so something like `$foo = new GeSHi;` is possible. (milian)
+  -  Added an optimizer for lists to regular expressions. Using these cached lists results in a speedup of approx. 50%.
+     The slightly increased memory consumption (~150KB for PHP language file) is more than worth it! (milian)
+  -  Some more memory & speed optimizations all over GeSHi (milian)
+     * Reduced memory overhead when highlighting keywords (BenBE)
+     * Keyword Linking now uses considerably less strtolower calls (milian)
+     * Cache Symbol Search Regexp and make Symbol Highlighting faster (milian)
+     * Use more native functions like substr_replace and strcasecmp to speed things up (milian)
+     * Use considerably less strlen() calls on various points by caching the results (milian)
+     * Properly set comments to be case insensitive where appropriate to increase performance (milian)
+     * Improve the performance of the strict mode tokenizer, making highlighting of languages like
+       HTML, ColdFusion or XML faster (milian)
+     * Setup caches for parsing on demand to make stylesheet generators fast (milian)
+  -  Various improvements to Strict Block Handling (BenBE, milian)
+     * Added support for RegExp-based Strict Blocks (BenBE)
+     * Fixed highlighting incorrectly stopping at ?> in PHP (SF#1330968, BenBE)
+     * Languages with STRICT_MODE_APPLIES = GESHI_MAYBE default to strict mode now. When no highlightable
+       code is found in this mode, we fallback to the same setting as if GESHI_NEVER was set. That way it
+       should not be needed to call enable_strictmode() manually. (milian)
+  -  Added new GESHI_HEADER_PRE_VALID type which uses the following markup: (milian)
+     * With line numbers:     <div>header<ol><li><pre>...</pre></li>...</ol></div>
+     * Without line numbers:  <pre>header...CODE...</pre>
+     => valid HTML and no need for &nbsp; indentation
+  -  Added new GESHI_HEADER_PRE_TABLE type which can be used to prevent linenumber-selection in Firefox
+     on copy'n'paste. (milian)
+  -  set_language will not reset any language settings by default anymore.
+     * Added $force_reset param for to force full reload of a language. (milian)
+     * Make sure strict_mode is set properly when doing repeated set_language calls (milian)
+  -  Fixed some problems with old PHP versions (SF#1975625, milian, BenBE)
+  -  Fixed broken use with Suhosin Patch when /e modifier was disabled (SF#2021800, BenBE)
+  -  Added support for external style information files to override language defaults without modifying language files (BenBE)
+  -  The overall_class is now up to the user, and the language-code is _always_ added as a class (milian)
+  -  Fixed Economy Mode for GeSHi::get_stylesheet() - now it just makes so much more sense! (milian)
+  -  Fixed Economy Mode when COMMENT_REGEXP are used (BenBE)
+  -  Changed the default encoding to use UTF-8, due to SF#2037598, BenBE)
+  -  Improved overall string support:
+     * Added support for multichar string delimiters (SF#1932083, BenBE)
+     * Fixed problems of unfinished strings and comments producing invalid XHTML (SF#1996353, BenBE)
+     * Multichar Quotemarks sometimes had inconsistent behaviour (BenBE)
+     * Support for multiple styles of strings depending on the starter (BenBE)
+     * Properly handle escapes in strings, i.e. '\\' was not working properly before (milian)
+     * Fixed escape char support when an escape char is followed by multi-byte chars (SF#2037598, BenBE)
+  -  Improved flexibility in language files (BenBE, milian)
+     * Added PARSER_CONTROL for OOLANG method highlighting (SF#1923060, BenBE)
+     * Added possibility to define strict blocks using an Regexp (BenBE)
+     * Removed explicit escaping of / in Regular Expressions (BenBE)
+     * Ignoring empty keyword groups when highlighting (milian)
+     * Make language_permissions configurable in language files via ['PARSER_CONTROL']['ENABLE_FLAGS']
+       this makes is_a calls unneeded and thus prevents PHP notices in PHP 5.x (milian)
+     * Extended support for number formats now covering the most common formats (SF#1923058, BenBE)
+     * Lifted a limitation that keywords had to have at least 2 subsequent letters (BenBE)
+     * Changed behaviour of PARSER_CONTROL now allowing to provide the full Lookahead and Lookbehind
+       expressions used as delimiters inside keywords instead of a simple char group (BenBE)
+     * Fixed improper handling of newlines in REGEXPS so this does not produce invalid html anylonger (milian)
+  -  Some typos and mistakes in the documentation (BenBE)
+  -  Added a script to contrib/ to verify language files are correct (BenBE)
+  -  Fixed loads of compliancy warnings detected with that automated compliance testing script (BenBE)
+  -  Many other improvements to various language files (BenBE, milian)
+     * Reduce strict errors & notices for language files (milian)
+     * Fixed symbol highlighting with C++ sometimes missing keywords after ; and comments (BenBE)
+     * Improved comment handling with TCL (Lars Hellström, BenBE)
+     * Fixed broken handling with XML comments (BenBE, SF#1849233)
+     * Fixed HTML comments spawning multiple lines producing invalid XHTML output (SF#1738173, BenBE)
+     * Added support for parameters beginning with dash in BASH language (BenBE)
+     * Support Apache's configuration sections, see http://httpd.apache.org/docs/2.2/sections.html (milian)
+     * Minor issue with PHP Heredoc and Nowdoc syntax sometimes not getting highlighted (BenBE)
+     * Updated Objective-C language file (SF#2013961, Quinn Taylor, BenBE)
+     * Added some keywords for VHDL (beshig, BenBE)
+     * Fixed severly broken ColdFusion language file (milian)
+     * Fixed some incorrectly highlighted things with the CSS language file (milian, BenBE)
+     * Improved Smarty language file (milian)
+     * Improved CSS language file (milian)
+     * Improved Pascal language file (milian)
+     * Improved LaTeX language file (Андрей Парамонов, BenBE)
+     * Fixed a regular expression in mIRC language file that caused a warning message to be issued (BenBE)
+     * Removed <, > and / from HTML names, now only containing the real tag names (BenBE)
+     * Use spaces instead of tabs for indendation in language files to have a consistent
+       coding standard accross geshi files (milian)
+     * Added some comment styles, keywords and added index highlighting (Chusslove Illich, Часлав Илић)
+  -  Removed some private methods which were only called at exactly one place (milian)
+     * format_header_content
+     * format_footer_content
+     * get_attributes
+  -  Second part of default style changes. Affected in this release:
+     * C++
+     * C++ (Qt)
+     * CSS
+     * VHDL
+Version 1.0.7.22
+  -  Added language files
+     * glSlang (BenBE)
+     * KiXtart (Riley McArdle)
+     * Lotus Notes @Formulas (Richard Civil)
+     * LotusScript (Richard Civil)
+     * MXML (David Spurr)
+     * Scala (Franco Lombardo)
+     * ActionScript 3 (Jordi Boggiano)
+     * GNU Gettext .po/.pot (Milian Wolff)
+     * Verilog (Günter Dannoritzer)
+  -  Fixed a problem not yet addressed in 1.0.7.21 regarding highlighting of
+     symbols that caused some extra characters to be added in the output or
+     broke highlighting and standard compliance due to missing escaping of
+     internally used characters (SF#192320 and SF#1926259, BenBE)
+  -  Fixed missing style information for ocaml language file (The_PHP_Jedi)
+  -  Fixed a bug causing masses of warnings in rendered output if language file
+     miss style information (The_PHP_Jedi, BenBE)
+  -  Missing tab width information could lead to warnings (BenBE)
+  -  Missing symbol information for ASP (SF#1952038, nfsupport, BenBE)
+  -  Empty delimiter message with OOoBasic (BenBE, Ccornell)
+  -  Escaping of comments in LaTeX ignored (SF#1749806, BenBE)
+  -  Modified Math environment $$ in LaTeX to be non-greedy (BenBE)
+  -  Added possibility to match a regexp as comment (SF#1914640, SF#1945301, SF#1934832, BenBE)
+  -  Introduced C-Style multiline continuation comments (SF#1914640, SF#1945301, BenBE)
+  -  Introduced Fortran Comments (SF#1914640, SF#1934832, BenBE)
+  -  Implemented Heredoc and Nowdoc Syntax for PHP and Perl (SF#1914640, BenBE)
+  -  Implemented Compiler Directives for Delphi (SF#1914640, BenBE)
+  -  Implemented minimalistic support for JavaScript \ Perl Regular Expressions (SF#1786665, SF#1754333, SF#1956631, BenBE)
+  -  Fixed Strings in Matlab to be handled as comments instead of regexps, to prevent keywords being linked (BenBE)
+  -  Applied PARSER_CONTROL fix of C++ for C++-Qt-Derivative (BenBE)
+  -  Fixed incorrect treatment of unequally long multiline comment separators (related to SF #1891630, BenBE)
+  -  Added PARSER_CONTROL settings for keywords in ASM language file (SF#1835148, BenBE)
+  -  Fixed missing CASSE_SENSITIVE entry for DOS language file (SF#1956314, BenBE)
+  -  Fixed accidential highlighting of keywords in argument names (SF#1956456, Milian Wolff, BenBE)
+  -  Fixed yet again some #-related bash problem (SF#1956459, Milian Wolff, BenBE)
+  -  Added backticks as symbols (Milian Wolff)
+  -  Example script remembers selections and source submitted (Milian Wolff)
+  -  Example script allows remembered source and preselected language to be cleared (Milian Wolff)
+  -  Example script now properly includes geshi and doesn't suppress error messages anylonger. (Milian Wolff)
+  -  Code cleanup by using direct string indexing instead of substr with length 1 (Milian Wolff)
+  -  Optimized generation of code parts in strict mode (Milian Wolff)
+  -  Optimized COMMENT_REGEXP by using an incremental regexp cache (Milian Wolff, BenBE)
+  -  Fixed a problem that rarely skipped highlighting of escaped chars which usually should have gotten highlighted (BenBE)
+  -  Optimized generation of highlighted strings to use fast skip forward while highlighting them (Milian Wolff, BenBE)
+  -  Optimization using basic rework of indent function improving tab expansion performance (BenBE)
+  -  Lots of other minor optimizations based on coding style improvements (Milian Wolff)
+  -  Implemented setting to force spans to be closed before newlines, see SF#1727398 (Milian Wolff)
+  -  Added missing credits for D language file to THANKS file (SF#1720899, BenBE)
+  -  Optimization to prevent loading the current language file twice (Milian Wolff)
+  -  Optimization: Use file_get_contents() to load sourcecode from files.
+     Even if GeSHi worked with PHP 4.1 before, it doesn't now. (Milian Wolff)
+  -  Added description of extra language features (SF#1970248, BenBE)
+  -  Added support for highlighting the C# using and namespace directives (SF #1395677, BenBE)
+  -  Added support for highlighting the Java import and package directives (SF #1395677, BenBE)
+  -  Fixed minor problem in Haskell cuasing accidential start of comment (SF#1987221, BenBE)
+  -  Fixed minor issue causing loads of warnings if a language files defines no symbols (BenBE)
+  -  Updated some aspects of the documentation and included further hints (BenBE)
+  -  First of series of color scheme changes. Affected languages (sofar):
+     * Assembler (x86)
+     * Bash
+     * C
+     * C#
+     * Delphi
+     * Fortran77
+     * glSlang
+     * Java & Java 5
+     * JavaScript
+     * OCaml
+     * OpenOffice.org Basic
+     * Pascal
+     * Perl
+     * PHP and PHP-Brief
+Version 1.0.7.21
+  -  Added language files
+     * Basic4GL (Matthew Webb)
+  -  Fixed problem with mIRC language highlighting spaces only (BenBE)
+  -  Language files can now specify a function to be called to decide the
+     colour of a regular expression match
+  -  Added single quote to Lua (Darrin Roenfanz)
+  -  Compare comments case insensitively (fixes AutoIT comments somewhat)
+     (Daniel Gordon)
+  -  Fixed symbols not being highlighted at all (SF #1767953, BenBE)
+  -  Fixed brackets not correctly managed (SF #1767954, BenBE)
+  -  Changed default languages for some extensions
+  -  Included color and character information for symbol highlighting in some languages (BenBE)
+  -  Fixed a problem with extension detection if default was used (BenBE)
+  -  Fixed a highlighting problem with the LaTeX language (SF #1776182, BenBE)
+  -  Added a new parameter for enable_highlighting to reduce source duplication (SF #1786104, BenBE)
+  -  Updated doxygen documentation to include since tags and some missing parameters
+  -  Disabled symbol highlighting by default (doesn't affect brackets, cf. documentation) (BenBE)
+  -  Added a check for set_case_keywords for the given param to be supported (BenBE)
+  -  Minor rework of the HTML documentation layout \ W3C compliance (BenBE)
+  -  Fixed highlighting error in bash language avoiding keywords in comments (SF #1786314, SF #1564839, BenBE)
+  -  Fixed template params for C++ and C# not being highlighted (SF #1772919, BenBE)
+  -  Fixed more reported problems about mirc highlighting
+  -  Added some missing keywords for VB.NET
+  -  Fixed some warnings in DOS language file (Florian Angehrn)
+  -  Add possibility to handle more than one extra line style (SF #1698255, German Rumm, BenBE)
+  -  Fixed handling of URLs when output case differs from URL case (SF #1815504, Tom Samstag, BenBE)
+  -  Fixed POD (Plain Old Documentation) format problems breaking highlighting of Perl (SF #1891630, Shannon Wynter, BenBE)
+  -  Fixed a problem with mIRC when & was used for identifiers (SF #1875552, BenBE)
+Version 1.0.7.20
+  -  Added language files
+     * Genero (logic) and Per (forms) (FOURJ's Genero 4GL) (Lars Gersmann)
+     * Haskell (Dagit)
+     * ABAP (Andres Picazo)
+     * Motorola 68k Assembler (for MC68HC908GP32 Microcontroller) (BenBE)
+     * Dot (Adrien Friggeri)
+  -  Fixed java documentation search for keywords to actually go to the
+     documentation (spaze)
+  -  Applied fix for bug 1688864 (bad regexes) (Tim Starling)
+  -  Fixed comment CSS rule in visualfoxpro
+  -  ThinBASIC language update (Eros Olmi)
+  -  mIRC language update (BenBE)
+  -  Fixed outdated documentation URL of Perl language file (RuralMoon by BenBE)
+  -  Fixed tab replacement code not generating the correct number of spaces in
+     some cases (Guillermo Calvo)
+  -  Fixed two typos in Z80 language file
+  -  Applied fix for bug 1730168 (Daniel Naber)
+  -  Applied fix for bug 1705482 (Jason Frame)
+     * Configurable line endings (Replace \n by custom string)
+     * per-language tab-widths (Adjustable for width>=1)
+     * Included defaults for ASM (x86, m68k, z80), C, C (Mac), C++, C++ (Qt), C#,
+       Delphi, CSS,, HTML, PHP, PHP (Brief), QBasic, Ruby, XML
+  -  Added a possibility to force generation of a surrounding tag around
+     the highlighted source
+  -  Applied fix for additional keywords for the bash language
+     (cf. http://bash.thefreebizhost.com/bash_geshi.php, BenBE / Jan G)
+  -  Fix bad colour definition in GML language (Andreas Gohr)
+  -  Fixed phpdoc comments not being indented one space if they should be (Andy
+     Hassall)
+Version 1.0.7.19
+  -  Added language files
+     * X++ (Simon Butcher)
+     * Rails (Moises Deniz)
+  -  Fixed invalid HTML being generated and doctypes not being highlighted over
+     multiple lines properly when line numbers are on (Validome)
+  -  Improved the ruby syntax highlighting by basing it off the Rails file
+  -  Changed some regular expressions to possibly help with badly performing
+     regex support in PHP (Tim Starling)
+  -  Allow {TIME}, {LANGUAGE} and {VERSION} to be used in the header as well as
+     the normal <TIME>/<LANGUAGE>/<VERSION> (AthanD)
+  -  Changed comment regex in bash to prevent malformed XHTML (rv1971)
+Version 1.0.7.18
+  -  Added language files
+     * ZiLOG Z80 Assembly (BenBE)
+  -  Fixed incorrect highlighting when the starter of a multiline comment is
+     longer than the ender (Robert Anthony).
+  -  Fixed "</span" generated if a multiline comment is the last thing in the
+     source (related to the above).
+  -  Added #cs => #ce comment markers to AutoIT (Robert Anthony)
+  -  Fixed spelling mistake for keyword in Python (wd3)
+  -  Added a method to enable/disable keyword linking (Ian McKellar)
+  -  Improved empty line detection for HTML output (BenBE)
+  -  Changed code style of geshi.php, and removed tabs
+Version 1.0.7.17
+  -  Fixed up ends of files having too many newlines (binarygroop)
+  -  Removed background colour on keyword group in eiffel (Julian Tschannen)
+  -  Removed GESHI_DIR_SEPARATOR constant usage, it's unnecessary (Aleksey Zapparov)
+  -  Added /* ... */ comments to coldfusion (Jeff Howden)
+Version 1.0.7.16
+  -  Added language files
+     * ActionScript (Steffen Krause)
+     * C++/Qt (Iulian M)
+     * PL/SQL (Victor Engmark)
+  -  Fixed up my e-mail address everywhere
+  -  Fixed notice with "error" property (IZIU Zielona Góra)
+  -  Added some entries to the get_language_name_from_extension table
+     (Stebastian Schuberth)
+Version 1.0.7.15
+  - Added language files
+     * BNF (Rowan Rodrik van der Molen)
+     * IO (me, thanks to Johnathan Wright)
+     * mIRC (Alberto de Areba Sánchez)
+  -  Fixed use of colon in XML (Grigory Rubtsov)
+  -  Fixed notices in text.php, reg.php and latex.php when $this is not
+     available (Clemens Weiß)
+  -  Made third parameter of geshi_highlight optional (Gaetano Giunta)
+  -  Fix incorrect highlighting of the $# variable in bash (Michael Knight)
+  -  Fixed single line comment mistake in thinbasic.php (Eros Olmi)
+Version 1.0.7.14
+  -  Added language files
+     * thinBasic (Eros Olmi)
+     * LaTeX (Matthais Pospiech)
+  -  Removed extra newlines at the end of some files
+  -  Fixed SF bug 1556404 - check before using $this in language files
+     (Clemens Weiß)
+Version 1.0.7.13
+  -  Added language files
+     * Uno IDL (Cedric Bosdonnat)
+  -  Fixed add_ids causing odd XHTML (RyanJ)
+  -  Fixed extra newline being added to end of result (Andreas Gohr)
+Version 1.0.7.12
+  -  Fixed lines being collapsed when they contain just a space (artlover)
+  -  Allowed matching for regexes using start/end matchers at the start/end
+     of the code (Sheri)
+  -  Added (dubious) fix for google "I'm feeling lucky" search for java keywords
+     (dubious in that it doesn't work for me)
+  -  mysql - Made the symbols into their own keyword group as the symbol group
+     isn't used. Added a style for multiline comments.
+  -  Added a couple of php5 keywords to the php language files.
+  -  Allow XML tags to have dashes.
+  -  Changed LANG_NAME for many languages to be more sensible/correct case
+     (Matthias Mohr)
+  -  Added case-sensitivity indices to python
+Version 1.0.7.11
+  -  Added language files
+     * Smalltalk (Bananeweizen)
+  -  Minor style improvements to matlab
+  -  Moved a couple of functions to the correct group in smarty (arwan)
+Version 1.0.7.10
+  -  Added language files
+     * TCL (Reid van Melle)
+     * Winbatch (Craig Storey)
+     * Groovy (Ivan F. Villanueva B.)
+     * Text (SmokingRope)
+     * Reg (SmokingRope)
+  -  Removed \ as an escape character in T-SQL (Dave Jackson)
+  -  Reset extra lines to highlight if source is changed (Diogo Resende)
+  -  Allow setting of lexic permissions in language files (SmokingRope)
+  -  Allow regexes to set a CSS class name (SmokingRope)
+  -  Added URL support to DOS language (mastrboy)
+Version 1.0.7.9
+  -  Added language files
+     * Fortran (Cedric Arrabie)
+     * SAS (Galen Johnson)
+     * CFDG (John Horigan)
+  -  Fixed & in URL in java5 (Clemens Weiß)
+  -  Added MD5 and SHA1 to mysql keywords (polarina)
+  -  Fixes for highlight_lines_extra with line numbers (ithcy)
+  -  Fixed backslash characters being removed (ArTourter)
+Version 1.0.7.8
+  -  Fixed blank at start of MySQL file (W. Tasin)
+  -  Fixed smarty functions being broken (ultrabob)
+  -  Changed keyword and regexp detection and parsing
+     slightly to allow more "meta characters" (like #) in
+     keywords
+  -  Minor fixes for XML and GML
+Version 1.0.7.7
+  -  Added language files
+     * T-SQL (Duncan Lock)
+     * Robots.txt (Christian Lescuyer)
+     * AutoIT (mastrboy)
+     * Java 5 (Clemens Bruckmann)
+     * ColdFusion (Diego)
+  -  A few keyword changes in java, removed :: object splitter (amphi)
+  -  Now using a simpler regular expression for numbers (Brice Bernard)
+  -  Fixed ah, bh etc. regs being highlighted as numbers (Unknown)
+Version 1.0.7.6
+  -  Fix backtick-string highlighting in ruby (Juan J. Martínez)
+  -  Add =begin multiline comments in ruby (Juan J. Martínez)
+  -  Added support for :keywords and ::access in lisp (Denis Mashkevich)
+  -  Prevented number highlighting if they are just after underscores (Joce)
+  -  Removed escape characters for strings in XML and HTML (floele)
+  -  Added instanceof keyword to java (jgottschling)
+  -  Fixed comments in ASP (SBD)
+  -  Removed unnecessary keyword style index from ini
+  -  Added support for " strings in ini
+  -  Removed unnecessary regex style index from blitzbasic
+  -  Keyword case of URL-ed keywords should be defined by language file (Benny Baumann)
+  -  Added "Hardquote" feature, provides more accurate string highlighting (Cliff Stanford)
+  -  Used hardquote support for @"..." strings in C# (Cliff Stanford)
+  -  Used hardquote support for ' strings in perl (Cliff Stanford)
+  -  Fixed setting of language path (Cliff Stanford)
+  -  Display source correctly formatted with line numbers (if requested) if an error
+     has occurred (several people)
+  -  Having no source to highlight is not an error condition anymore
+  -  Delphi language updated to include more keywords and types (BenBE)
+  -  Updated NSIS to version 2.11 (deguix)
+Version 1.0.7.5
+  -  Fix for using escape characters to escape newlines breaking XHTML compliance (Yves Goergen)
+  -  Fixed method highlighting in VB (Matt Beale)
+  -  Fixed multiline comment highlighting in SQL (MrBaseball34)
+  -  Fixed two ">" symbols being outputted when using a footer but not CSS classes (MrBaseball34)
+  -  Marked important block stuff as deprecated
+  -  Some documentation tidyup
+  -  Updated GML language file (Jos? Jorge Enr?quez Rodr?guez)
+  -  THANKS file tidied up
+  -  Fixed double </a> for elements in HTML (Yves Goergen)
+  -  Added some keywords for ASM (Dreuzzo)
+Version 1.0.7.4
+  -  Added language files
+     * MySQL (Carl Fürstenberg)
+     * BlitzBasic (Pàdraig O`Connel)
+  -  Fixed up geshi_highlight function: it now correctly uses <code> instead of <div> (Remi Faure)
+  -  When using GESHI_HEADER_NONE, remove the <ol> if line numbering is not enabled
+  -  Commented example.php so people can use it as a guide better
+  -  Fixed extra newline being generated if a comment is at the end
+     of the source (many people, including Yves Goergen)
+  -  Fixed up some documentation issues
+  -  Some minor language file fixes (C++, Lua) (Lua fixes by chromix)
+  -  Fixed up no </span> in XML and other strict languages (regression from 1.0.7.3 fix: removed
+  	 unnecessary </span> when using strict mode) (Daniel Ecer, drskrud),
+Version 1.0.7.3
+  -  Added language files
+     * Scheme (Jon Raphaelson)
+     * Ocaml and Ocaml-brief (Flaie)
+     * Ruby (Amit Gupta)
+  -  Make urls generated for java highlighting XHTML compliant (Tim Van Wassenhove)
+  -  Removed unnecessary </span> when using strict mode (Tim Van Wassenhove)
+  -  Fixed warning in dos.php about undefined constant (Tim Van Wassenhove)
+  -  Fixed security hole in contrib/example.php - able to view any file if source
+     not set and language is set to wierd value (Maksymilian Arciemowicz)
+Version 1.0.7.2
+  -  Added language files
+     * Inno (Thomas Klinger)
+     * Ini (Deguix)
+     * DOS (Batchfile) (Alessandro Staltali)
+     * Applescript (Stephan Klimek)
+     * Freebasic (Roberto Rossi)
+     * SDLBasic (Roberto Rossi)
+     * ActionScript (links to French documentation) (NikO)
+  -  NSIS language file updated (deguix)
+  -  Lua language file updated (Roberto Rossi)
+  -  Bugfix: Styles incorrectly overriding default styles instead of being merged
+     in set_*_styles methods (Stebastian Werner)
+  -  Added GESHI_HEADER_NONE as valid header type. This still allows header content.
+Version 1.0.7.1
+  -  Added language files:
+     * Div (Gabriel Lorenzo)
+     * GML (José Jorge Enríquez Rodríguez)
+     * Eiffel (Zoran Simic)
+  -  Minor change to rules regarding when keywords can appear - now dots (.) are
+     allowed before keywords. (NikO)
+  -  Bugfix: the line style for non-fancy lines when fancy highlighting is enabled
+     is now applied (Amit Gupta)
+Version 1.0.7
+  -  Added language files:
+     * Diff (Conny Brunnkvist)
+     * VHDL (Alexander Krause)
+     * D (Thomas Kuehne)
+     * Matlab (Florian Knorn)
+  -  Python highlighting improved (thither, Federico Quagliata)
+  -  Changed file comments to use phpdoc syntax, and changed code style to be more
+  	 like PEAR
+  -  Fixed bug in set_code_style: Second parameter is now optional
+  -  The $_GESHI_ERRORS array is gone, error messages are internal to the GeSHi class
+  -  Changed name of XML language to XML from HTML
+  -  Removed min and max tab width checks
+  -  Backported GeSHi 1.1.X's automatic language file path detection so you no longer
+     need to use the third parameter of the constructor or set_language_path except for
+     special circumstances.
+  -  Source is checked to make sure it is not empty else an error occurs
+  -  Removed excess characters after ?> in ada.php, apache.php and cpp.php that caused
+     http headers to be sent (psichron)
+  -  Removed second "foreach" keyword for smarty language file that was causing
+     duplication (Iss)
+  -  Added underscore to allowed characters in match for XML tags (anonymous)
+  -  Added some missing java keywords like "abstract" and "transient"
+  -  Added "list" and "continue" PHP keywords
+  -  set_language resets error status and strict mode (Andrew Black)
+  -  Removed margin:0 declaration from cssgen.php (Andrzej Kubaszek)
+  -  Fixed multiline comment selector in cssgen.php (Andrzej Kubaszek)
+Version 1.0.6
+  -  Added support for smart tabs - tabs that behave just like normal tabs when in
+     GESHI_HEADER_DIV mode.
+  -  Partial patch for UTF-8 encoding applied (doesn't quite work however...)
+Version 1.0.5
+  -  Added language files:
+     * MPASM (Bakalex)
+     * Oracle 8 (Guy Wicks)
+  -  Fixed bug where not using an encoding type would sometime result in warnings (although
+     there still seems to be issues with encoding in general that I'm trying to gather more
+     data on) (Alexander Spennemann)
+  -  Removed "margin: 0" from <ol> in an attempt to make line numbers visible in IE again
+     by default (untested, but I don't really care if it works... get firefox! ;))
+  -  Added note on php5 support (Karim Scheik)
+  -  Added two new methods: load_from_file and get_language_name_from_extension, that can
+     help automate file highlighting (though the extension array at this time is quite bare)
+     (David Gartner, Brian Cheesman)
+Version 1.0.4
+  -  Fixed many version-reporting bugs (Jack Lloyd)
+  -  Fixed bug where methods were not having the correct CSS generated for them
+     by get_stylesheet() (Jack Lloyd)
+  -  Added new keywords to C and C++ files (Jack Lloyd)
+  -  Added section on case sensitivity to documentation that wasn't in the other versions
+Version 1.0.3
+  -  Added language files:
+     * Smarty (Alan Juden)
+     * C# (Alan Juden)
+     * VB.NET (Alan Juden)
+     * C for Macs (M. Uli Kusterer)
+     * Objective C (M. Uli Kusterer)
+  -  Links can have a target attribute (Andreas Gohr)
+  -  Fixed multiline string bug if not using classes
+  -  Added method set_encoding that allows you to set the character
+     set used by calls to htmlentities() in GeSHi
+  -  You can now specify an array of object splitters, and each
+     type of method separated by each object splitter can be highlighted
+     differently
+  -  If a language uses a case sensitive keyword group and that group
+     has a URL associated with it, the keyword will not be lowercased
+     in the URL (M. Uli Kusterer)
+Version 1.0.2
+  -  Added language files:
+     * Actionscript (Steffen Krause)
+     * ASP (Amit Gupta)
+     * Bash (Andreas Gohr)
+     * CADDCL (Roberto Rossi)
+     * CadLisp (Roberto Rossi)
+     * C++ (Dennis Bayer)
+     * Delphi (Járja Norbert)
+     * Javascript (Ben Keen)
+     * Lisp (Roberto Rossi)
+     * OpenOffice.org BASIC (Roberto Rossi)
+     * Perl (Andreas Gohr and Ben Keen)
+     * Python (Roberto Rossi)
+     * VisualFoxPro (Roberto Armellin)
+     * XML (Nigel McNie, from an idea/file by Christian Weiske)
+  -  Added contrib/ directory with script to create one external stylesheet
+     from many languages(base script by Andreas Gohr, modified by Nigel McNie),
+     and an example script (needs lotsa work...)
+  -  Code lines can have their own unique ID (for use with javascript)
+     (suggested by Andreas von Oettingen)
+  -  Certain rows can be specified to be highlighted differently (suggested by
+     Andreas von Oettingen)
+  -  Getter available for human-readable language name (suggested by Simon Patterson)
+  -  Line numbers aren't highlighted when a user selects the code
+  -  Contextual highlighting with <BEGIN GeSHi> ... <END GeSHi> in the code (which
+     can be disabled)
+  -  Functions can be made into URLs to appropriate documentation (suggested
+     by cybot_tm). Also thanks to Marcin Gryszkalis for the links for C, Java
+     and Perl.
+  -  Code can have a header and footer
+  -  Time taken to parse the code is recorded and made available with the get_time()
+     method
+  -  error() now returns a human-readable error message
+  -  Function geshi_highlight added to make it even easier to highlight on the fly
+  -  Advanced regular expression handling
+  -  Bug fixes to lexic_permission handling
+Version 1.0.1
+  -  Added methods set_symbols_style() and set_symbols_highlighting(). These should be used
+     instead of set_brackets_style and set_brackets_highlighting respectively.
+  -  Added a new field - language_path - that can be set either when the constructor is
+     called, or by the new method set_language_path(), that specifies a path to the directory
+     containing the language files (bug reported by bbspliff)
+  -  Added a new method set_case_keywords(), that allows the auto-casing feature to be
+     changed on the fly instead of simply being specified in the language file
+  -  If there is an error the source that is outputted is now handled much better
+  -  Lines are broken in the source only by \n now, not by \r\n (to save on output source)
+  -  Indentation moved into its own method
+  -  Method header() modified to allow the user to choose whether the code is surrounded in
+     a <div> or a <pre> (see documentation for benefits of both). Method footer() likewise
+     modified.
+  -  Method get_stylesheet() modified so that a smaller comment is outputted in economy mode,
+     and bugs with when line number classes are outputted in economy mode have been fixed
+  -  Bug where spans had two quotes at the end of the attributes fixed (ie. <span style=".."">)
+  -  Added language files:
+     * Ada (Tux)
+     * Apache log file (Tux)
+     * ASM (Tux)
+     * NSIS (Tux)
+     * Pascal (Tux)
+Version 1.0.0
+  -  Initial Release
diff --git a/vendor/geshi/geshi/LICENSE b/vendor/geshi/geshi/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..d159169d1050894d3ea3b98e1c965c4058208fe1
--- /dev/null
+++ b/vendor/geshi/geshi/LICENSE
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program 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.
+
+    This program 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 this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/vendor/geshi/geshi/README.md b/vendor/geshi/geshi/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..6f675680404a4d73d484be39c2fa9f1ac87b0eb8
--- /dev/null
+++ b/vendor/geshi/geshi/README.md
@@ -0,0 +1,36 @@
+GeSHi - Generic Syntax Highlighter
+==================================
+### Version 1.0.9.0
+
+Author:          [Benny Baumann](http://blog.benny-baumann.de/), [Nigel McNie](http://nigel.mcnie.name/)
+Email:           <BenBE@geshi.org>, <nigel@geshi.org>
+GeSHi Website:   <http://qbnz.com/highlighter>
+
+GeSHi is a generic syntax highlighter, written in PHP. You simply
+input the source code you wish to highlight with the language you
+wish to use, and the output will be a file syntax highlighted to
+XHTML standards.
+
+Documentation
+-------------
+For more information on how to use GeSHi, please consult the
+documentation. If you got this readme from a GeSHi package, then
+the documentation is available in the [docs](https://github.com/GeSHi/geshi-1.0/tree/master/docs)
+directory. Documentation is also available [online](http://qbnz.com/highlighter/documentation.php).
+
+If you think you've found a bug in GeSHi, contact me with a bug
+report at <BenBE@geshi.org>, submit to the [bug tracker at GitHub](https://github.com/GeSHi/geshi-1.0/issues).
+Be aware that minor highlighting errors may well just be incorrect
+language files, but if you do find something major please contact me.
+
+And if you're using GeSHi as a plugin/mod for some other software,
+please tell me about it! It's worth a link to you, and I can give
+you specialist help if you need it.
+
+License
+-------
+GeSHi is free software, released under the GNU GPL. Please see the
+[LICENSE](https://github.com/GeSHi/geshi-1.0/blob/master/LICENSE)
+file for more information. If you do modify this program, please tell
+me about it! Perhaps you've made a good improvement that I can learn
+from :)
diff --git a/vendor/geshi/geshi/THANKS b/vendor/geshi/geshi/THANKS
new file mode 100644
index 0000000000000000000000000000000000000000..c52d7fd3b1bb6a55b52845746bd16dbe60763070
--- /dev/null
+++ b/vendor/geshi/geshi/THANKS
@@ -0,0 +1,284 @@
+
+             THANKS - List of credits for GeSHi
+
+I owe these people/groups my thanks for help with GeSHi. Thanks, guys!
+
+- Amit Gupta            - Thanks for all that constructive criticism - it's
+                          a great help for making GeSHi even better. And
+                          thanks for the Wordpress plugin! (Anyone who is
+                          interested in the plugin can visit:
+                          http://blog.igeek.info/still-fresh/category/wp-plugins/igsyntax-hiliter/)
+- Andreas Gohr          - Thanks for language files and for using GeSHi for DokuWiki
+                          (http://www.splitbrain.org/dokuwiki/wiki:dokuwiki). And thanks
+                          for all your criticisms and for that stylesheet-maker code :).
+                          Also, thanks for the UTF-8 patch.
+- Andreas von Oettingen - Thanks for those great ideas! :)
+- bbspliff              - Thanks for pointing out that bug (pity I already
+                          found it though ;))
+- Benny Baumann         - Thanks for your innumerable suggestions for improvements, and your
+                          work on Delphi support :)
+- Ben Keen              - Thanks for the language files and pointing out some
+                          ideas for future releases. Lookin' forward to seeing that
+                          software soon! ;)
+- Brian Cheesman        - Thanks for using GeSHi in phpCvsView, and for the suggestion about
+                          extension => language lookup
+- Christian Weiske      - Thanks for the inspiration for creating advanced regexp
+                          highlighting :D
+- Cliff Stanford        - Thanks for the hardquote support for C# and Perl (can be used elsewhere
+                          I'm sure)
+- David Gartner         - Thanks for using GeSHi in net2ftp, and for the idea about a load_from_file
+                          method
+- forum.qbasicnews.com  - Thanks for putting up with the crappy versions
+                          that I "forced" on you guys before ;)
+- Gizmore               - Providing some patch to query supported languages
+- Jack Lloyd            - Thanks for pointing out the versioning and method CSS bugs, and giving
+                          me the extra C/C++ keywords
+- Karim Scheik          - Thanks for the php5 support report
+- Marcin Gryszkalis     - Thanks for those links for C, Java, Perl
+- M. Uli Kusterer       - Thanks for the idea about URL case conversion
+- Milian Wolff          - Thanks for the loads of optimizations
+                        - Thanks for helping with implementation of various features
+- Roberto Armellin      - Thanks for pointing out some flaws in GeSHi (that will be solved
+                          in 1.2 guaranteed)
+- Sterling Christensen  - Thanks for those links to language specs
+- Tux                   - Thanks for making all those language files :D
+- zbw                   - Thanks for proving a phpBB port was possible
+
+PEOPE WHO MADE LANGUAGE FILES
+
+- ABAP                   Andres Picazo
+- Actionscript           Steffen Krause (french translation by NikO)
+- ActionScript 3         Jordi Boggiano (version for ActionScript3 and MXML)
+- Ada                    Tux
+- AIMMS                  Guido Diepen
+- Algol68                Neville Dempsey
+- Apache                 Tux
+- Applescript            Stephan Klimek
+- Apt sources.list       Milian Wolff
+- ARM                    Marat Dukhan
+- ASM                    Tux, Dennis Yurichev, Marat Dukhan
+- ASP                    Amit Gupta
+- Asymptote              Manuel Yguel
+- Autoconf               Mihai Vasilian
+- AutoHotkey             Naveen Garg
+- AutoIt                 mastrboy
+- AviSynth               Ryan Jones
+- Awk                    George Pollard
+- BASCOM AVR             Michal Goralczyk
+- Bash                   Andreas Gohr
+- Basic4GL               Matthew Webb
+- Biblatex               Maïeul Rouquette
+- BibTeX                 Quinn Taylor
+- BlitzBasic             Padraig O`Connel
+- BNF                    Rowan Rodrik van der Molen
+- Boo                    Marcus Griep
+- Brainfuck \ Brainfork  Benny Baumann
+- C for Loadrunner       Stuart Moncrieff
+- C for Macs             M. Uli Kusterer
+- C for Windows          Benny Baumann
+- C#                     Alan Juden
+- C++                    Dennis Bayer, M. Uli Kusterer
+- C++ (Qt)               Iulian M
+- C++ for Windows        Benny Baumann
+- CADDCL                 Roberto Rossi
+- CadLisp                Roberto Rossi
+- CDFG                   John Horigan
+- Ceylon                 Lucas Werkmeister
+- ChaiScript             Jason Turner, Jonathan Turner
+- Chapel                 Richard Molitor
+- CIL                    Marcus Griep
+- Clojure                Jess Johnson
+- CMake                  Daniel Nelson
+- COBOL                  Benny Baumann, Edward Hart
+- CoffeeScript           Trevor Burnham
+- ColdFusion             Diego
+- CSS                    Nigel McNie, Zéfling, peterdd
+- Cuesheet               Benny Baumann
+- D                      Thomas Kuehne
+- Dart                   Edward Hart
+- DCL                    Petr Hendl
+- DCPU-16                Benny Baumann
+- DCS                    Stelio Passaris
+- Delphi                 Járja Norbert, Benny Baumann
+- Div                    Gabriel Lorenzo
+- DOS                    Alessandro Staltari
+- E                      Kevin Reid
+- ECMAScript             Michel Mariani
+- Eiffel                 Zoran Simic
+- eMail \ mbox           Benny Baumann
+- EPC                    Thorsten Muehlfelder
+- Erlang                 Benny Baumann, Dan Forest-Barbier, Uwe Dauernheim
+- Euphoria               Nicholas Koceja
+- EZT                    Ramesh Vishveshwar
+- F#                     Julien Ortin
+- Falcon                 billykater
+- FO (abas-ERP)          Tan-Vinh Nguyen
+- FormulaOne             Juro Bystricky
+- Fortran                Cedric Arrabie
+- FreeBasic              Roberto Rossi
+- FreeSWITCH             James Rose
+- GADV 4CS               Jason Curl
+- GAMBAS                 Jesus Guardon
+- Genie                  Nicolas Joseph
+- Gettext                Milian Wolff
+- glSlang                Benny Baumann
+- GML                    José Jorge Enríquez Rodríguez, Timon Knigge
+- GNU make               Neil Bird
+- Gnuplot                Milian Wolff
+- Go                     Markus Jarderot
+- Groovy                 Ivan F. Villanueva B.
+- GwBasic                José Gabriel Moya Yangüela
+- Haskell                Dagit
+- Haxe                   Andy Li, John Liao
+- HicEst                 Georg Petrich
+- HQ9+                   Benny Baumann
+- HTML5                  Robert Lidberg
+- Icon                   Matt Oates
+- Ini                    Deguix
+- Inno                   Thomas Klinger
+- INTERCAL               Benny Baumann
+- ISPF Panel             Ramesh Vishveshwar
+- J                      Ric Sherlock
+- Java 5                 Clemens Bruckmann
+- Javascript             Ben Keen
+- Job Control Language   Ramesh Vishveshwar
+- jQuery                 Rob Loach
+- Julia                  John Lynch
+- KiXtart                Riley McArdle
+- KLone C                Mickael Auger
+- KLone C++              Mickael Auger
+- Kotlin                 Ole Sandum
+- LaTeX                  Matthais Pospiech
+- LDIF                   Bruno Harbulot
+- Liberty BASIC          Chris Iverson
+- Lisp                   Roberto Rossi
+- LLVM                   Azriel Fasten
+- Locomotive Basic       Nacho Cabanes
+- Logtalk                Paulo Moura
+- LOLcode                Benny Baumann
+- LScript                Beau McGuigan
+- LSL2                   William Fry
+- Lua                    Roberto Rossi
+- m86k                   Benny Baumann
+- MagikSF                Sjoerd van Leent
+- Mathematica            Connor Glosser
+- MapBasic               Tomasz Berus
+- MetaPost               Maxime Chupin
+- Mercury                Sebastian Godelet
+- mIRC                   Alberto de Areba Sánchez
+- МК-61                  Russkiy
+- Modula 2               Benjamin Kowarsch
+- Modula-3               Martin Bishop
+- Motorola 6502 ASM      Warren Willmey
+- Motorola 68k ASM       Warren Willmey
+- MPASM                  Bakalex
+- MXML                   David Spurr
+- MySQL                  Carl Fürstenberg, Marjolein Katsma
+- Nagios                 Albéric de Pertat
+- NewLisp                cormullion
+- nginx                  Cliff Wells, Deoren Moor, Thomas Joiner
+- Nimrod                 Dennis Felsing
+- NSIS                   Tux, Deguix
+- Oberon-2               Mike Mol
+- Objeck Progr. Lang.    Randy Hollines
+- Objective C            M. Uli Kusterer
+- Ocaml                  Flaie
+- Ocaml-brief            Flaie
+- Octave                 Carnë Draug, Juan Pablo Carbajal
+- OpenBSD Packet Filter  David Berard
+- OpenOffice.org BASIC   Roberto Rossi
+- Oracle 8               Guy Wicks
+- Oracle 11i             Simon Redhead
+- Oxygene (Delphi Prism) Carlo Kok
+- Oz                     Wolfgang Meyer
+- ParaSail               sttaft
+- PARI/GP                Charles R Greathouse IV
+- Pascal                 Tux
+- PCRE                   Benny Baumann
+- Perl                   Andreas Gohr, Ben Keen
+- Perl6                  Kodi Arfer
+- Phix                   Pete Lomax
+- PIC16xxx assembler     Phil Mattison
+- Pike                   Rick E.
+- Pixel Bender           Richard Olsson
+- PL/I                   Robert Prins
+- PL/SQL                 Victor Engmark
+- PostgreSQL             Christophe Chauvet
+- PostScript             Benny Baumann
+- POV-Ray                Carl Fürstenberg
+- PowerBuilder           Doug Porter
+- PowerShell             Frode Aarebrot
+- ProFTPd                Benny Baumann
+- Progress               Marco Aurelio de Pasqual
+- Prolog                 Benny Baumann
+- Property Files         Edy Hinzen
+- ProvideX               Jeff Wilder
+- PureBasic              Gustavo Julio Fiorenza
+- Python                 Roberto Rossi
+- Python for S60         Sohan Basak
+- PyCon                  Benny Baumann
+- q/kdb+                 Ian Roddis
+- QML                    J-P Nurmi
+- R / S+                 Ron Fredericks, Fernando H.F.P. da Rosa
+- Racket                 Tim Brown
+- Rails                  Moises Deniz
+- RBScript               Deng Wen Gang
+- Rebol                  Lecanu Guillaume
+- Reg                    SmokingRope
+- Rexx                   Jon Wolfers
+- Robots                 Christian Lescuyer
+- RPM Specification File Paul Grinberg
+- Ruby                   Amit Gupta, Moises Deniz
+- Rust                   Dave Hodder
+- SAS                    Galen Johnson
+- SASS                   Javier Eguiluz
+- Scheme                 Jon Raphaelson
+- SciLab                 Christophe David
+- SCL                    Leonhard Hösch
+- SDLBasic               Roberto Rossi
+- Smalltalk              Bananeweizen
+- Smarty                 Alan Juden
+- SPARK                  Phil Thornley
+- SPARQL                 Karima Rafes
+- StandardML             eldesh
+- StoneScript            Archimmersion
+- Swift                  Ken Woo
+- SystemVerilog          Sean O'Boyle
+- TCL                    Reid van Melle
+- TCL/eggdrop            Reid van Melle
+- TeraTerm               Boris Maisuradze
+- TexGraph               Patrick Fradin
+- Text                   SmokingRope
+- thinBasic              Eros Olmi
+- T-SQL                  Duncan Lock
+- TypoScript             Jan-Philipp Halle
+- Twig                   Keyvan Akbary
+- Unicon                 Matt Oates
+- Uno IDL                Cedric Bosdonnat
+- UnrealScript           pospi
+- UPC                    Viraj Sinha
+- Urbi                   Alexandre Morgand
+- Vala                   Nicolas Joseph
+- VB                     Roberto Rossi
+- VB.NET                 Alan Juden
+- VBScript               Rory Prendergast
+- Vedit                  Pauli Lindgren
+- Verilog                Günter Dannoritzer, Tony Carrillo
+- VHDL                   Alexander 'E-Razor' Krause, Kevin Thibedeau
+- VIM Script             Swaroop C H
+- Visual FoxPro          Roberto Armellin
+- Visual Prolog          Thomas Linder Puls
+- Whitespace             Benny Baumann
+- Whois \ RPSL format    Benny Baumann
+- Winbatch               Craig Storey
+- Windows Batch          FraidZZ
+- X++                    Simon Butcher
+- XBasic                 José Gabriel Moya Yangüela
+- Xojo                   Garry Pettet
+- Xorg config            Milian Wolff
+- YAML                   Josh Ventura
+- Z80 Assembler          Benny Baumann
+- ZXBasic                Jose Rodriguez
+
+Do you want your name in here? Help me out! Make a language file, or suggest a new
+feature, or make a plugin for GeSHi for some other software, then tell me about it!
diff --git a/vendor/geshi/geshi/build.properties.dist b/vendor/geshi/geshi/build.properties.dist
new file mode 100644
index 0000000000000000000000000000000000000000..dd270fe292486a783d9d80a8c7472d43701c8db6
--- /dev/null
+++ b/vendor/geshi/geshi/build.properties.dist
@@ -0,0 +1 @@
+sfuser=
diff --git a/vendor/geshi/geshi/build.xml b/vendor/geshi/geshi/build.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d9bae0f3320e5535f6332e9b6d97b0bb60add5e3
--- /dev/null
+++ b/vendor/geshi/geshi/build.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project name="GeSHi" default="pack" basedir=".">
+  <!--
+    GeSHi - Generic Syntax Highlighter - phing build file.
+    Works for 1.0.x
+    Packs up a new version of geshi, tags it in git and releases it on
+    sourceforge.net
+  -->
+  <property file="build.properties" />
+
+  <property name="version"    value="1.0.9.0" />
+  <property name="stability"  value="stable" />
+  <property name="zipfile"    value="${phing.project.name}-${version}.zip" />
+  <property name="gzfile"     value="${phing.project.name}-${version}.tar.gz" />
+  <property name="bz2file"    value="${phing.project.name}-${version}.tar.bz2" />
+  <property name="pkgfile"    value="geshi-${version}.tgz" />
+  <property name="fileprefix" value="geshi/" />
+  <property name="sfproject"  value="GeSHi" />
+  <property name="sffilepath" value="g/ge/geshi/" />
+
+  <property name="releasenotes" value="
+Version 1.0.9.0
+" />
+
+
+  <fileset dir="src" id="files">
+   <include name="**"/>
+   <exclude name="**/.gitignore/"/>
+  </fileset>
+
+  <fileset dir="." id="extra">
+   <include name="contrib/**"/>
+   <include name="docs/**"/>
+  </fileset>
+
+  <taskdef name="d51pearpkg2" classname="phing.tasks.ext.d51PearPkg2Task" />
+
+
+
+  <target name="pack" depends=""
+   description="Create zip and tar files for release"
+   >
+    <mkdir dir="dist" />
+    <echo msg="Creating distribution files for ${phing.project.name} ${version}"/>
+
+    <delete file="dist/${zipfile}" failonerror="false"/>
+    <delete file="dist/${gzfile}" failonerror="false"/>
+    <delete file="dist/${bz2file}" failonerror="false"/>
+
+    <zip destfile="dist/${zipfile}" prefix="${fileprefix}">
+     <fileset refid="files" />
+     <fileset refid="extra" />
+    </zip>
+    <tar destfile="dist/${gzfile}" prefix="${fileprefix}" compression="gzip">
+     <fileset refid="files" />
+     <fileset refid="extra" />
+    </tar>
+    <tar destfile="dist/${bz2file}" prefix="${fileprefix}" compression="bzip2">
+     <fileset refid="files" />
+     <fileset refid="extra" />
+    </tar>
+  </target>
+
+
+
+  <target name="pack-pear" depends=""
+   description="Creates the PEAR package"
+  >
+   <mkdir dir="dist/pear" />
+   <delete file="src/package.xml" failonerror="false" />
+   <d51pearpkg2 dir="src" baseinstalldir="/">
+     <name>geshi</name>
+     <summary>Generic syntax highlighter, written in PHP.</summary>
+     <description>
+      GeSHi is a generic syntax highlighter, written in PHP. You simply
+      input the source code you wish to highlight with the language you
+      wish to use, and the output will be a file syntax highlighted to
+      XHTML standards.
+     </description>
+     <channel>pear.geshi.org</channel>
+
+     <lead user="benbe" name="Benny Baumann" email="benbe@geshi.org" />
+     <license>AGPL</license>
+
+     <version   release="${version}"   api="${version}" />
+     <stability release="${stability}" api="${stability}" />
+
+     <notes>${releasenotes}</notes>
+
+     <dependencies>
+       <php minimum_version="5.3.0" />
+       <pear minimum_version="1.9.0" />
+     </dependencies>
+
+     <!-- map directory (key) to role -->
+     <dirroles key="src">.</dirroles>
+
+     <ignore>**/.gitignore</ignore>
+     <ignore>contrib/**</ignore>
+     <ignore>dist/**</ignore>
+     <ignore>docs/**</ignore>
+     <ignore>*.properties</ignore>
+     <ignore>*.tgz</ignore>
+   </d51pearpkg2>
+   <!-- time to fix the package.xml file since the task does not
+        allow everything we need:
+        - strip the base directory names like src, data and www
+        - remove that dumb baseinstalldir from files
+        - md5sums are generated automatically when packaging
+   -->
+   <!-- yes, we need to generate a 2nd file and move it back -->
+   <copy file="src/package.xml" tofile="src/package2.xml" overwrite="true">
+    <filterchain>
+     <replaceregexp>
+      <!-- remove md5sums -->
+      <regexp
+       pattern="md5sum=&quot;[a-z0-9]{32}&quot; "
+       replace=""
+       />
+      <!-- remove baseinstalldir for files -->
+      <regexp
+       pattern="&lt;file baseinstalldir=&quot;/&quot;"
+       replace="&lt;file"
+       />
+      <!-- install-as for different directories -->
+      <regexp
+       pattern="(&lt;file name=&quot;data/(.+?)&quot;)"
+       replace="\1 install-as=&quot;\2&quot;"
+       />
+      <regexp
+       pattern="(&lt;file name=&quot;doc/(.+?)&quot;)"
+       replace="\1 install-as=&quot;\2&quot;"
+       />
+      <regexp
+       pattern="(&lt;file name=&quot;tests/(.+?)&quot;)"
+       replace="\1 install-as=&quot;\2&quot;"
+       />
+      <regexp
+       pattern="(&lt;file name=&quot;www/(.+?)&quot;)"
+       replace="\1 install-as=&quot;phorkie/\2&quot;"
+       />
+      <regexp
+       pattern="(&lt;file name=&quot;src/(.+?)&quot;)"
+       replace="\1 install-as=&quot;\2&quot;"
+       />
+     </replaceregexp>
+    </filterchain>
+   </copy>
+   <move file="src/package2.xml" tofile="src/package.xml" overwrite="true" />
+
+   <!-- package up -->
+   <exec command="pear package" passthru="true" dir="src" />
+   <move file="src/${pkgfile}" todir="${phing.dir}/dist/pear/" />
+
+   <delete file="src/package.xml" failonerror="true" />
+  </target>
+
+
+
+  <target name="release" depends="check,pack,pack-pear,deploy-sf,gittag"
+   description="Release the version on sourceforge"
+   >
+   <!-- meta-target -->
+  </target>
+
+
+  <!--
+  https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download
+  -->
+  <target name="deploy-sf" depends="check,pack"
+   description="Upload release to sourceforge"
+   >
+    <delete dir="dist/deploy-sf" /><!-- make empty -->
+    <mkdir dir="dist/deploy-sf" />
+    <mkdir dir="dist/deploy-sf/geshi" />
+    <mkdir dir="dist/deploy-sf/geshi/GeSHi ${version}" />
+    <copy todir="dist/deploy-sf/geshi/GeSHi ${version}/">
+     <fileset dir="dist">
+      <include name="${zipfile}" />
+      <include name="${gzfile}" />
+      <include name="${bz2file}" />
+     </fileset>
+    </copy>
+    <!-- test
+    <exec command="rsync -av dist/deploy-sf/ /tmp/test/" escape="false" />
+    -->
+    <exec
+     command="rsync -av -e ssh dist/deploy-sf/ ${sfuser},${sfproject}@frs.sourceforge.net:/home/frs/project/${sffilepath}/${sfproject}/"
+     escape="false" checkreturn="false"
+     />
+
+    <!-- rsync always returns code 23 on sourceforge releases, so we
+         can't check return values -->
+  </target>
+
+
+  <target name="gittag"
+   description="create the git tag for the current version"
+   >
+    <exec
+     command="git tag v${version}'"
+     escape="false" checkreturn="true"
+     />
+  </target>
+
+
+  <target name="check"
+   description="Check variables"
+   >
+    <fail unless="version" message="Version not defined!" />
+    <fail unless="sfuser" message="Sourceforge username not defined!" />
+    <fail unless="sfproject" message="Sourceforge project name not defined!" />
+    <fail unless="sffilepath" message="Sourceforge project file path not defined!" />
+  </target>
+
+</project>
diff --git a/vendor/geshi/geshi/composer.json b/vendor/geshi/geshi/composer.json
new file mode 100644
index 0000000000000000000000000000000000000000..95f844aed3b3f9c0c6eadc103748fec4de89098d
--- /dev/null
+++ b/vendor/geshi/geshi/composer.json
@@ -0,0 +1,25 @@
+{
+    "name": "geshi/geshi",
+    "description": "Generic Syntax Highlighter",
+    "license": "GPL-2.0+",
+    "homepage": "http://qbnz.com/highlighter/",
+    "authors": [
+        {
+            "name": "Benny Baumann",
+            "email": "BenBE@geshi.org",
+            "homepage": "http://blog.benny-baumann.de/",
+            "role": "Developer"
+        }
+    ],
+    "support": {
+        "forum": "https://lists.sourceforge.net/lists/listinfo/geshi-users",
+        "irc": "irc://irc.freenode.org/geshi",
+        "issues": "https://sourceforge.net/p/geshi/feature-requests/"
+    },
+    "autoload": {
+        "classmap": ["src/geshi/", "src/geshi.php"]
+    },
+    "require-dev": {
+        "phpunit/phpunit": "^5.7"
+    }
+}
diff --git a/vendor/easybook/geshi/geshi.php b/vendor/geshi/geshi/src/geshi.php
similarity index 89%
rename from vendor/easybook/geshi/geshi.php
rename to vendor/geshi/geshi/src/geshi.php
index 4b3330e575d3d7ba642016e20d9100d9c6bce6db..4effa4887e133c0f66688644d16fbc0c708144a2 100644
--- a/vendor/easybook/geshi/geshi.php
+++ b/vendor/geshi/geshi/src/geshi.php
@@ -28,9 +28,8 @@
  * @package    geshi
  * @subpackage core
  * @author     Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
- * @copyright  (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
+ * @copyright  (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2014 Benny Baumann
  * @license    http://gnu.org/copyleft/gpl.html GNU GPL
- *
  */
 
 //
@@ -41,7 +40,7 @@
 //
 
 /** The version of this GeSHi file */
-define('GESHI_VERSION', '1.0.8.12');
+define('GESHI_VERSION', '1.0.9.0');
 
 // Define the root directory for the GeSHi code tree
 if (!defined('GESHI_ROOT')) {
@@ -149,39 +148,6 @@ define('GESHI_CLASS', 5);
 /** Used in language files to mark comments */
 define('GESHI_COMMENTS', 0);
 
-/** Used to work around missing PHP features **/
-define('GESHI_PHP_PRE_433', !(version_compare(PHP_VERSION, '4.3.3') === 1));
-
-/** make sure we can call stripos **/
-if (!function_exists('stripos')) {
-    // the offset param of preg_match is not supported below PHP 4.3.3
-    if (GESHI_PHP_PRE_433) {
-        /**
-         * @ignore
-         */
-        function stripos($haystack, $needle, $offset = null) {
-            if (!is_null($offset)) {
-                $haystack = substr($haystack, $offset);
-            }
-            if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE)) {
-                return $match[0][1];
-            }
-            return false;
-        }
-    }
-    else {
-        /**
-         * @ignore
-         */
-        function stripos($haystack, $needle, $offset = null) {
-            if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE, $offset)) {
-                return $match[0][1];
-            }
-            return false;
-        }
-    }
-}
-
 /** 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()
@@ -253,49 +219,48 @@ define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5);
  * about how to use this class.
  *
  * @package   geshi
- * @author    Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
- * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
+ * @author    Nigel McNie <nigel@geshi.org>
+ * @author    Benny Baumann <BenBE@omorphia.de>
+ * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2014 Benny Baumann
  */
 class GeSHi {
-    /**#@+
-     * @access private
-     */
+
     /**
      * The source code to highlight
      * @var string
      */
-    var $source = '';
+    protected $source = '';
 
     /**
      * The language to use when highlighting
      * @var string
      */
-    var $language = '';
+    protected $language = '';
 
     /**
      * The data for the language used
      * @var array
      */
-    var $language_data = array();
+    protected $language_data = array();
 
     /**
      * The path to the language files
      * @var string
      */
-    var $language_path = GESHI_LANG_ROOT;
+    protected $language_path = GESHI_LANG_ROOT;
 
     /**
      * The error message associated with an error
      * @var string
      * @todo check err reporting works
      */
-    var $error = false;
+    protected $error = false;
 
     /**
      * Possible error messages
      * @var array
      */
-    var $error_messages = array(
+    protected $error_messages = array(
         GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})',
         GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable',
         GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid',
@@ -306,13 +271,13 @@ class GeSHi {
      * Whether highlighting is strict or not
      * @var boolean
      */
-    var $strict_mode = false;
+    protected $strict_mode = false;
 
     /**
      * Whether to use CSS classes in output
      * @var boolean
      */
-    var $use_classes = false;
+    protected $use_classes = false;
 
     /**
      * The type of header to use. Can be one of the following
@@ -324,13 +289,13 @@ class GeSHi {
      *
      * @var int
      */
-    var $header_type = GESHI_HEADER_PRE;
+    protected $header_type = GESHI_HEADER_PRE;
 
     /**
      * Array of permissions for which lexics should be highlighted
      * @var array
      */
-    var $lexic_permissions = array(
+    protected $lexic_permissions = array(
         'KEYWORDS' =>    array(),
         'COMMENTS' =>    array('MULTI' => true),
         'REGEXPS' =>     array(),
@@ -347,44 +312,44 @@ class GeSHi {
      * The time it took to parse the code
      * @var double
      */
-    var $time = 0;
+    protected $time = 0;
 
     /**
      * The content of the header block
      * @var string
      */
-    var $header_content = '';
+    protected $header_content = '';
 
     /**
      * The content of the footer block
      * @var string
      */
-    var $footer_content = '';
+    protected $footer_content = '';
 
     /**
      * The style of the header block
      * @var string
      */
-    var $header_content_style = '';
+    protected $header_content_style = '';
 
     /**
      * The style of the footer block
      * @var string
      */
-    var $footer_content_style = '';
+    protected $footer_content_style = '';
 
     /**
      * Tells if a block around the highlighted source should be forced
      * if not using line numbering
      * @var boolean
      */
-    var $force_code_block = false;
+    protected $force_code_block = false;
 
     /**
      * The styles for hyperlinks in the code
      * @var array
      */
-    var $link_styles = array();
+    protected $link_styles = array();
 
     /**
      * Whether important blocks should be recognised or not
@@ -392,7 +357,7 @@ class GeSHi {
      * @deprecated
      * @todo REMOVE THIS FUNCTIONALITY!
      */
-    var $enable_important_blocks = false;
+    protected $enable_important_blocks = false;
 
     /**
      * Styles for important parts of the code
@@ -401,31 +366,31 @@ class GeSHi {
      * @todo As above - rethink the whole idea of important blocks as it is buggy and
      * will be hard to implement in 1.2
      */
-    var $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code
+    protected $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code
 
     /**
      * Whether CSS IDs should be added to the code
      * @var boolean
      */
-    var $add_ids = false;
+    protected $add_ids = false;
 
     /**
      * Lines that should be highlighted extra
      * @var array
      */
-    var $highlight_extra_lines = array();
+    protected $highlight_extra_lines = array();
 
     /**
      * Styles of lines that should be highlighted extra
      * @var array
      */
-    var $highlight_extra_lines_styles = array();
+    protected $highlight_extra_lines_styles = array();
 
     /**
      * Styles of extra-highlighted lines
      * @var string
      */
-    var $highlight_extra_lines_style = 'background-color: #ffc;';
+    protected $highlight_extra_lines_style = 'background-color: #ffc;';
 
     /**
      * The line ending
@@ -433,120 +398,120 @@ class GeSHi {
      * Otherwise, all instances of \n will be replaced with $line_ending
      * @var string
      */
-    var $line_ending = null;
+    protected $line_ending = null;
 
     /**
      * Number at which line numbers should start at
      * @var int
      */
-    var $line_numbers_start = 1;
+    protected $line_numbers_start = 1;
 
     /**
      * The overall style for this code block
      * @var string
      */
-    var $overall_style = 'font-family:monospace;';
+    protected $overall_style = 'font-family:monospace;';
 
     /**
      *  The style for the actual code
      * @var string
      */
-    var $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;';
+    protected $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
      * @var string
      */
-    var $overall_class = '';
+    protected $overall_class = '';
 
     /**
      * The overall ID for this code block
      * @var string
      */
-    var $overall_id = '';
+    protected $overall_id = '';
 
     /**
      * Line number styles
      * @var string
      */
-    var $line_style1 = 'font-weight: normal; vertical-align:top;';
+    protected $line_style1 = 'font-weight: normal; vertical-align:top;';
 
     /**
      * Line number styles for fancy lines
      * @var string
      */
-    var $line_style2 = 'font-weight: bold; vertical-align:top;';
+    protected $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;text-align:right;margin:0;padding:0 2px;vertical-align:top;';
+    protected $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;';
 
     /**
      * Flag for how line numbers are displayed
      * @var boolean
      */
-    var $line_numbers = GESHI_NO_LINE_NUMBERS;
+    protected $line_numbers = GESHI_NO_LINE_NUMBERS;
 
     /**
      * Flag to decide if multi line spans are allowed. Set it to false to make sure
      * each tag is closed before and reopened after each linefeed.
      * @var boolean
      */
-    var $allow_multiline_span = true;
+    protected $allow_multiline_span = true;
 
     /**
      * The "nth" value for fancy line highlighting
      * @var int
      */
-    var $line_nth_row = 0;
+    protected $line_nth_row = 0;
 
     /**
      * The size of tab stops
      * @var int
      */
-    var $tab_width = 8;
+    protected $tab_width = 8;
 
     /**
      * Should we use language-defined tab stop widths?
      * @var int
      */
-    var $use_language_tab_width = false;
+    protected $use_language_tab_width = false;
 
     /**
      * Default target for keyword links
      * @var string
      */
-    var $link_target = '';
+    protected $link_target = '';
 
     /**
      * The encoding to use for entity encoding
      * NOTE: Used with Escape Char Sequences to fix UTF-8 handling (cf. SF#2037598)
      * @var string
      */
-    var $encoding = 'utf-8';
+    protected $encoding = 'utf-8';
 
     /**
      * Should keywords be linked?
      * @var boolean
      */
-    var $keyword_links = true;
+    protected $keyword_links = true;
 
     /**
      * Currently loaded language file
-     * @var string
+     * @var    string
      * @since 1.0.7.22
      */
-    var $loaded_language = '';
+    protected $loaded_language = '';
 
     /**
      * Wether the caches needed for parsing are built or not
      *
-     * @var bool
+     * @var   bool
      * @since 1.0.8
      */
-    var $parse_cache_built = false;
+    protected $parse_cache_built = false;
 
     /**
      * Work around for Suhosin Patch with disabled /e modifier
@@ -560,32 +525,30 @@ class GeSHi {
      *   use <code>preg_replace_callback()</code> instead
      * </blockquote>
      *
-     * @var array
+     * @var   array
      * @since 1.0.8
      */
-    var $_kw_replace_group = 0;
-    var $_rx_key = 0;
+    protected $_kw_replace_group = 0;
+    protected $_rx_key = 0;
 
     /**
      * some "callback parameters" for handle_multiline_regexps
      *
-     * @since 1.0.8
+     * @since  1.0.8
      * @access private
-     * @var string
+     * @var    string
      */
-    var $_hmr_before = '';
-    var $_hmr_replace = '';
-    var $_hmr_after = '';
-    var $_hmr_key = 0;
-
-    /**#@-*/
+    protected $_hmr_before = '';
+    protected $_hmr_replace = '';
+    protected $_hmr_after = '';
+    protected $_hmr_key = 0;
 
     /**
      * Creates a new GeSHi object, with source and language
      *
-     * @param string The source code to highlight
-     * @param string The language to highlight the source with
-     * @param string The path to the language file directory. <b>This
+     * @param string $source   The source code to highlight
+     * @param string $language The language to highlight the source with
+     * @param string $path     The path to the language file directory. <b>This
      *               is deprecated!</b> I've backported the auto path
      *               detection from the 1.1.X dev branch, so now it
      *               should be automatically set correctly. If you have
@@ -594,11 +557,11 @@ class GeSHi {
      *               {@link GeSHi->set_language_path()}
      * @since 1.0.0
      */
-    function __construct($source = '', $language = '', $path = '') {
-        if (!empty($source)) {
+    public function __construct($source = '', $language = '', $path = '') {
+        if ( is_string($source) && ($source !== '') ) {
             $this->set_source($source);
         }
-        if (!empty($language)) {
+        if ( is_string($language) && ($language !== '') ) {
             $this->set_language($language);
         }
         $this->set_language_path($path);
@@ -608,21 +571,21 @@ class GeSHi {
      * Returns the version of GeSHi
      *
      * @return string
-     * @since 1 0.8.11
+     * @since  1.0.8.11
      */
-    function get_version()
+    public function get_version()
     {
         return GESHI_VERSION;
     }
 
     /**
      * Returns an error message associated with the last GeSHi operation,
-     * or false if no error has occured
+     * or false if no error has occurred
      *
      * @return string|false An error message if there has been an error, else false
      * @since  1.0.0
      */
-    function error() {
+    public function error() {
         if ($this->error) {
             //Put some template variables for debugging here ...
             $debug_tpl_vars = array(
@@ -646,7 +609,7 @@ class GeSHi {
      * @return string The name for the current language
      * @since  1.0.2
      */
-    function get_language_name() {
+    public function get_language_name() {
         if (GESHI_ERROR_NO_SUCH_LANG == $this->error) {
             return $this->language_data['LANG_NAME'] . ' (Unknown Language)';
         }
@@ -656,10 +619,10 @@ class GeSHi {
     /**
      * Sets the source code for this object
      *
-     * @param string The source code to highlight
+     * @param string $source The source code to highlight
      * @since 1.0.0
      */
-    function set_source($source) {
+    public function set_source($source) {
         $this->source = $source;
         $this->highlight_extra_lines = array();
     }
@@ -670,10 +633,14 @@ class GeSHi {
      * @note since 1.0.8 this function won't reset language-settings by default anymore!
      *       if you need this set $force_reset = true
      *
-     * @param string The name of the language to use
+     * @param string $language    The name of the language to use
+     * @param bool   $force_reset
      * @since 1.0.0
      */
-    function set_language($language, $force_reset = false) {
+    public function set_language($language, $force_reset = false) {
+        $this->error = false;
+        $this->strict_mode = GESHI_NEVER;
+
         if ($force_reset) {
             $this->loaded_language = false;
         }
@@ -692,9 +659,6 @@ class GeSHi {
 
         $this->language = $language;
 
-        $this->error = false;
-        $this->strict_mode = GESHI_NEVER;
-
         //Check if we can read the desired file
         if (!is_readable($file_name)) {
             $this->error = GESHI_ERROR_NO_SUCH_LANG;
@@ -710,14 +674,14 @@ class GeSHi {
      * that this path is relative to the directory of the script that included
      * geshi.php, NOT geshi.php itself.
      *
-     * @param string The path to the language directory
+     * @param string $path The path to the language directory
      * @since 1.0.0
      * @deprecated The path to the language files should now be automatically
      *             detected, so this method should no longer be needed. The
      *             1.1.X branch handles manual setting of the path differently
      *             so this method will disappear in 1.2.0.
      */
-    function set_language_path($path) {
+    public function set_language_path($path) {
         if(strpos($path,':')) {
             //Security Fix to prevent external directories using fopen wrappers.
             if(DIRECTORY_SEPARATOR == "\\") {
@@ -748,10 +712,10 @@ class GeSHi {
 
     /**
      * Get supported langs or an associative array lang=>full_name.
-     * @param boolean $longnames
+     * @param boolean $full_names
      * @return array
      */
-    function get_supported_languages($full_names=false)
+    public function get_supported_languages($full_names=false)
     {
         // return array
         $back = array();
@@ -802,7 +766,7 @@ class GeSHi {
      * @param string $language short langname (html4strict for example)
      * @return mixed
      */
-    function get_language_fullname($language)
+    public function get_language_fullname($language)
     {
         //Clean up the language name to prevent malicious code injection
         $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
@@ -839,10 +803,10 @@ class GeSHi {
      * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code
      * should be outputted.
      *
-     * @param int The type of header to be used
+     * @param int $type The type of header to be used
      * @since 1.0.0
      */
-    function set_header_type($type) {
+    public function set_header_type($type) {
         //Check if we got a valid header type
         if (!in_array($type, array(GESHI_HEADER_NONE, GESHI_HEADER_DIV,
             GESHI_HEADER_PRE, GESHI_HEADER_PRE_VALID, GESHI_HEADER_PRE_TABLE))) {
@@ -859,11 +823,11 @@ class GeSHi {
      * when this object is parsed. The style should be a
      * string of valid stylesheet declarations
      *
-     * @param string  The overall style for the outputted code block
-     * @param boolean Whether to merge the styles with the current styles or not
+     * @param string  $style             The overall style for the outputted code block
+     * @param boolean $preserve_defaults Whether to merge the styles with the current styles or not
      * @since 1.0.0
      */
-    function set_overall_style($style, $preserve_defaults = false) {
+    public function set_overall_style($style, $preserve_defaults = false) {
         if (!$preserve_defaults) {
             $this->overall_style = $style;
         } else {
@@ -876,10 +840,10 @@ class GeSHi {
      * class can then be used in a stylesheet to style this object's
      * output
      *
-     * @param string The class name to use for this block of code
+     * @param string $class The class name to use for this block of code
      * @since 1.0.0
      */
-    function set_overall_class($class) {
+    public function set_overall_class($class) {
         $this->overall_class = $class;
     }
 
@@ -887,10 +851,10 @@ class GeSHi {
      * Sets the overall id for this block of code. This id can then
      * be used in a stylesheet to style this object's output
      *
-     * @param string The ID to use for this block of code
+     * @param string $id The ID to use for this block of code
      * @since 1.0.0
      */
-    function set_overall_id($id) {
+    public function set_overall_id($id) {
         $this->overall_id = $id;
     }
 
@@ -898,10 +862,10 @@ class GeSHi {
      * Sets whether CSS classes should be used to highlight the source. Default
      * is off, calling this method with no arguments will turn it on
      *
-     * @param boolean Whether to turn classes on or not
+     * @param boolean $flag Whether to turn classes on or not
      * @since 1.0.0
      */
-    function enable_classes($flag = true) {
+    public function enable_classes($flag = true) {
         $this->use_classes = ($flag) ? true : false;
     }
 
@@ -916,11 +880,11 @@ class GeSHi {
      * code will have the same style as the line number! Consult the
      * GeSHi documentation for more information about this.
      *
-     * @param string  The style to use for actual code
-     * @param boolean Whether to merge the current styles with the new styles
+     * @param string  $style             The style to use for actual code
+     * @param boolean $preserve_defaults Whether to merge the current styles with the new styles
      * @since 1.0.2
      */
-    function set_code_style($style, $preserve_defaults = false) {
+    public function set_code_style($style, $preserve_defaults = false) {
         if (!$preserve_defaults) {
             $this->code_style = $style;
         } else {
@@ -931,16 +895,16 @@ class GeSHi {
     /**
      * Sets the styles for the line numbers.
      *
-     * @param string The style for the line numbers that are "normal"
-     * @param string|boolean If a string, this is the style of the line
+     * @param string         $style1 The style for the line numbers that are "normal"
+     * @param string|boolean $style2 If a string, this is the style of the line
      *        numbers that are "fancy", otherwise if boolean then this
      *        defines whether the normal styles should be merged with the
      *        new normal styles or not
-     * @param boolean If set, is the flag for whether to merge the "fancy"
+     * @param boolean        $preserve_defaults If set, is the flag for whether to merge the "fancy"
      *        styles with the current styles or not
      * @since 1.0.2
      */
-    function set_line_style($style1, $style2 = '', $preserve_defaults = false) {
+    public function set_line_style($style1, $style2 = '', $preserve_defaults = false) {
         //Check if we got 2 or three parameters
         if (is_bool($style2)) {
             $preserve_defaults = $style2;
@@ -970,11 +934,11 @@ class GeSHi {
      * are to be fancy. For example, if the value of this parameter is 5 then every
      * 5th line will be fancy.
      *
-     * @param int How line numbers should be displayed
-     * @param int Defines which lines are fancy
+     * @param int $flag    How line numbers should be displayed
+     * @param int $nth_row Defines which lines are fancy
      * @since 1.0.0
      */
-    function enable_line_numbers($flag, $nth_row = 5) {
+    public function enable_line_numbers($flag, $nth_row = 5) {
         if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag
             && GESHI_FANCY_LINE_NUMBERS != $flag) {
             $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE;
@@ -989,10 +953,10 @@ class GeSHi {
      * Set it to false if you want to manipulate the output or manually display
      * the code in an ordered list.
      *
-     * @param boolean Wether multiline spans are allowed or not
+     * @param boolean $flag Wether multiline spans are allowed or not
      * @since 1.0.7.22
      */
-    function enable_multiline_span($flag) {
+    public function enable_multiline_span($flag) {
         $this->allow_multiline_span = (bool) $flag;
     }
 
@@ -1002,7 +966,7 @@ class GeSHi {
      * @see enable_multiline_span
      * @return bool
      */
-    function get_multiline_span() {
+    public function get_multiline_span() {
         return $this->allow_multiline_span;
     }
 
@@ -1011,18 +975,28 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param int     The key of the keyword group to change the styles of
-     * @param string  The style to make the keywords
-     * @param boolean Whether to merge the new styles with the old or just
+     * @param int     $key               The key of the keyword group to change the styles of
+     * @param string  $style             The style to make the keywords
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
      *                to overwrite them
      * @since 1.0.0
      */
-    function set_keyword_group_style($key, $style, $preserve_defaults = false) {
+    public function set_keyword_group_style($key, $style, $preserve_defaults = false) {
         //Set the style for this keyword group
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['KEYWORDS'][$key] = $style;
+        if('*' == $key) {
+            foreach($this->language_data['STYLES']['KEYWORDS'] as $_key => $_value) {
+                if (!$preserve_defaults) {
+                    $this->language_data['STYLES']['KEYWORDS'][$_key] = $style;
+                } else {
+                    $this->language_data['STYLES']['KEYWORDS'][$_key] .= $style;
+                }
+            }
         } else {
-            $this->language_data['STYLES']['KEYWORDS'][$key] .= $style;
+            if (!$preserve_defaults) {
+                $this->language_data['STYLES']['KEYWORDS'][$key] = $style;
+            } else {
+                $this->language_data['STYLES']['KEYWORDS'][$key] .= $style;
+            }
         }
 
         //Update the lexic permissions
@@ -1034,11 +1008,11 @@ class GeSHi {
     /**
      * Turns highlighting on/off for a keyword group
      *
-     * @param int     The key of the keyword group to turn on or off
-     * @param boolean Whether to turn highlighting for that group on or off
+     * @param int     $key  The key of the keyword group to turn on or off
+     * @param boolean $flag Whether to turn highlighting for that group on or off
      * @since 1.0.0
      */
-    function set_keyword_group_highlighting($key, $flag = true) {
+    public function set_keyword_group_highlighting($key, $flag = true) {
         $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false;
     }
 
@@ -1047,28 +1021,38 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param int     The key of the comment group to change the styles of
-     * @param string  The style to make the comments
-     * @param boolean Whether to merge the new styles with the old or just
+     * @param int     $key               The key of the comment group to change the styles of
+     * @param string  $style             The style to make the comments
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
      *                to overwrite them
      * @since 1.0.0
      */
-    function set_comments_style($key, $style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['COMMENTS'][$key] = $style;
+    public function set_comments_style($key, $style, $preserve_defaults = false) {
+        if('*' == $key) {
+            foreach($this->language_data['STYLES']['COMMENTS'] as $_key => $_value) {
+                if (!$preserve_defaults) {
+                    $this->language_data['STYLES']['COMMENTS'][$_key] = $style;
+                } else {
+                    $this->language_data['STYLES']['COMMENTS'][$_key] .= $style;
+                }
+            }
         } else {
-            $this->language_data['STYLES']['COMMENTS'][$key] .= $style;
+            if (!$preserve_defaults) {
+                $this->language_data['STYLES']['COMMENTS'][$key] = $style;
+            } else {
+                $this->language_data['STYLES']['COMMENTS'][$key] .= $style;
+            }
         }
     }
 
     /**
      * Turns highlighting on/off for comment groups
      *
-     * @param int     The key of the comment group to turn on or off
-     * @param boolean Whether to turn highlighting for that group on or off
+     * @param int     $key  The key of the comment group to turn on or off
+     * @param boolean $flag Whether to turn highlighting for that group on or off
      * @since 1.0.0
      */
-    function set_comments_highlighting($key, $flag = true) {
+    public function set_comments_highlighting($key, $flag = true) {
         $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false;
     }
 
@@ -1077,12 +1061,13 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param string  The style to make the escape characters
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
+     * @param string  $style             The style to make the escape characters
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
+     *                                   to overwrite them
+     * @param int     $group             Tells the group of symbols for which style should be set.
      * @since 1.0.0
      */
-    function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
+    public function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style;
         } else {
@@ -1093,10 +1078,10 @@ class GeSHi {
     /**
      * Turns highlighting on/off for escaped characters
      *
-     * @param boolean Whether to turn highlighting for escape characters on or off
+     * @param boolean $flag Whether to turn highlighting for escape characters on or off
      * @since 1.0.0
      */
-    function set_escape_characters_highlighting($flag = true) {
+    public function set_escape_characters_highlighting($flag = true) {
         $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false;
     }
 
@@ -1108,13 +1093,13 @@ class GeSHi {
      * This method is DEPRECATED: use set_symbols_style instead.
      * This method will be removed in 1.2.X
      *
-     * @param string  The style to make the brackets
-     * @param boolean Whether to merge the new styles with the old or just
+     * @param string  $style             The style to make the brackets
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
      *                to overwrite them
      * @since 1.0.0
      * @deprecated In favour of set_symbols_style
      */
-    function set_brackets_style($style, $preserve_defaults = false) {
+    public function set_brackets_style($style, $preserve_defaults = false) {
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['BRACKETS'][0] = $style;
         } else {
@@ -1128,11 +1113,11 @@ class GeSHi {
      * This method is DEPRECATED: use set_symbols_highlighting instead.
      * This method will be remove in 1.2.X
      *
-     * @param boolean Whether to turn highlighting for brackets on or off
+     * @param boolean $flag Whether to turn highlighting for brackets on or off
      * @since 1.0.0
      * @deprecated In favour of set_symbols_highlighting
      */
-    function set_brackets_highlighting($flag) {
+    public function set_brackets_highlighting($flag) {
         $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false;
     }
 
@@ -1141,13 +1126,13 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param string  The style to make the symbols
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of symbols for which style should be set.
+     * @param string  $style             The style to make the symbols
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
+     *                                   to overwrite them
+     * @param int     $group             Tells the group of symbols for which style should be set.
      * @since 1.0.1
      */
-    function set_symbols_style($style, $preserve_defaults = false, $group = 0) {
+    public function set_symbols_style($style, $preserve_defaults = false, $group = 0) {
         // Update the style of symbols
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['SYMBOLS'][$group] = $style;
@@ -1164,10 +1149,10 @@ class GeSHi {
     /**
      * Turns highlighting on/off for symbols
      *
-     * @param boolean Whether to turn highlighting for symbols on or off
+     * @param boolean $flag Whether to turn highlighting for symbols on or off
      * @since 1.0.0
      */
-    function set_symbols_highlighting($flag) {
+    public function set_symbols_highlighting($flag) {
         // Update lexic permissions for this symbol group
         $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false;
 
@@ -1180,13 +1165,13 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param string  The style to make the escape characters
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of strings for which style should be set.
+     * @param string  $style             The style to make the escape characters
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
+     *                                   to overwrite them
+     * @param int     $group             Tells the group of strings for which style should be set.
      * @since 1.0.0
      */
-    function set_strings_style($style, $preserve_defaults = false, $group = 0) {
+    public function set_strings_style($style, $preserve_defaults = false, $group = 0) {
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['STRINGS'][$group] = $style;
         } else {
@@ -1197,10 +1182,10 @@ class GeSHi {
     /**
      * Turns highlighting on/off for strings
      *
-     * @param boolean Whether to turn highlighting for strings on or off
+     * @param boolean $flag Whether to turn highlighting for strings on or off
      * @since 1.0.0
      */
-    function set_strings_highlighting($flag) {
+    public function set_strings_highlighting($flag) {
         $this->lexic_permissions['STRINGS'] = ($flag) ? true : false;
     }
 
@@ -1209,13 +1194,13 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param string  The style to make the script blocks
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of script blocks for which style should be set.
+     * @param string  $style             The style to make the script blocks
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
+     *                                   to overwrite them
+     * @param int     $group             Tells the group of script blocks for which style should be set.
      * @since 1.0.8.4
      */
-    function set_script_style($style, $preserve_defaults = false, $group = 0) {
+    public function set_script_style($style, $preserve_defaults = false, $group = 0) {
         // Update the style of symbols
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['SCRIPT'][$group] = $style;
@@ -1229,13 +1214,13 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param string  The style to make the numbers
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of numbers for which style should be set.
+     * @param string  $style             The style to make the numbers
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
+     *                                   to overwrite them
+     * @param int     $group             Tells the group of numbers for which style should be set.
      * @since 1.0.0
      */
-    function set_numbers_style($style, $preserve_defaults = false, $group = 0) {
+    public function set_numbers_style($style, $preserve_defaults = false, $group = 0) {
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['NUMBERS'][$group] = $style;
         } else {
@@ -1246,10 +1231,10 @@ class GeSHi {
     /**
      * Turns highlighting on/off for numbers
      *
-     * @param boolean Whether to turn highlighting for numbers on or off
+     * @param boolean $flag Whether to turn highlighting for numbers on or off
      * @since 1.0.0
      */
-    function set_numbers_highlighting($flag) {
+    public function set_numbers_highlighting($flag) {
         $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false;
     }
 
@@ -1260,13 +1245,13 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param int     The key of the object splitter to change the styles of
-     * @param string  The style to make the methods
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
+     * @param int     $key               The key of the object splitter to change the styles of
+     * @param string  $style             The style to make the methods
+     * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
+     *                                   to overwrite them
      * @since 1.0.0
      */
-    function set_methods_style($key, $style, $preserve_defaults = false) {
+    public function set_methods_style($key, $style, $preserve_defaults = false) {
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['METHODS'][$key] = $style;
         } else {
@@ -1277,10 +1262,10 @@ class GeSHi {
     /**
      * Turns highlighting on/off for methods
      *
-     * @param boolean Whether to turn highlighting for methods on or off
+     * @param boolean $flag Whether to turn highlighting for methods on or off
      * @since 1.0.0
      */
-    function set_methods_highlighting($flag) {
+    public function set_methods_highlighting($flag) {
         $this->lexic_permissions['METHODS'] = ($flag) ? true : false;
     }
 
@@ -1289,12 +1274,14 @@ class GeSHi {
      * true, then styles are merged with the default styles, with the
      * user defined styles having priority
      *
-     * @param string  The style to make the regular expression matches
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
+     * @param string  $key               The style to make the regular expression matches
+     * @param boolean $style             Whether to merge the new styles with the old or just
+     *                                   to overwrite them
+     * @param bool    $preserve_defaults Whether to merge the new styles with the old or just
+     *                                to overwrite them
      * @since 1.0.0
      */
-    function set_regexps_style($key, $style, $preserve_defaults = false) {
+    public function set_regexps_style($key, $style, $preserve_defaults = false) {
         if (!$preserve_defaults) {
             $this->language_data['STYLES']['REGEXPS'][$key] = $style;
         } else {
@@ -1305,22 +1292,22 @@ class GeSHi {
     /**
      * Turns highlighting on/off for regexps
      *
-     * @param int     The key of the regular expression group to turn on or off
-     * @param boolean Whether to turn highlighting for the regular expression group on or off
+     * @param int     $key  The key of the regular expression group to turn on or off
+     * @param boolean $flag Whether to turn highlighting for the regular expression group on or off
      * @since 1.0.0
      */
-    function set_regexps_highlighting($key, $flag) {
+    public function set_regexps_highlighting($key, $flag) {
         $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false;
     }
 
     /**
      * Sets whether a set of keywords are checked for in a case sensitive manner
      *
-     * @param int The key of the keyword group to change the case sensitivity of
-     * @param boolean Whether to check in a case sensitive manner or not
+     * @param int     $key  The key of the keyword group to change the case sensitivity of
+     * @param boolean $case Whether to check in a case sensitive manner or not
      * @since 1.0.0
      */
-    function set_case_sensitivity($key, $case) {
+    public function set_case_sensitivity($key, $case) {
         $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false;
     }
 
@@ -1331,10 +1318,10 @@ class GeSHi {
      *  - GESHI_CAPS_UPPER: convert all keywords to uppercase where found
      *  - GESHI_CAPS_LOWER: convert all keywords to lowercase where found
      *
-     * @param int A constant specifying what to do with matched keywords
+     * @param int $case A constant specifying what to do with matched keywords
      * @since 1.0.1
      */
-    function set_case_keywords($case) {
+    public function set_case_keywords($case) {
         if (in_array($case, array(
             GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) {
             $this->language_data['CASE_KEYWORDS'] = $case;
@@ -1346,10 +1333,10 @@ class GeSHi {
      *
      * Widths below zero are ignored
      *
-     * @param int The tab width
+     * @param int $width The tab width
      * @since 1.0.0
      */
-    function set_tab_width($width) {
+    public function set_tab_width($width) {
         $this->tab_width = intval($width);
 
         //Check if it fit's the constraints:
@@ -1362,10 +1349,10 @@ class GeSHi {
     /**
      * Sets whether or not to use tab-stop width specifed by language
      *
-     * @param boolean Whether to use language-specific tab-stop widths
+     * @param boolean $use Whether to use language-specific tab-stop widths
      * @since 1.0.7.20
      */
-    function set_use_language_tab_width($use) {
+    public function set_use_language_tab_width($use) {
         $this->use_language_tab_width = (bool) $use;
     }
 
@@ -1376,7 +1363,7 @@ class GeSHi {
      * @return int Tab width
      * @since 1.0.7.20
      */
-    function get_real_tab_width() {
+    public function get_real_tab_width() {
         if (!$this->use_language_tab_width ||
             !isset($this->language_data['TAB_WIDTH'])) {
             return $this->tab_width;
@@ -1390,10 +1377,10 @@ class GeSHi {
      * method without parameters will turn it on. See documentation
      * for more details on strict mode and where to use it.
      *
-     * @param boolean Whether to enable strict mode or not
+     * @param boolean $mode Whether to enable strict mode or not
      * @since 1.0.0
      */
-    function enable_strict_mode($mode = true) {
+    public function enable_strict_mode($mode = true) {
         if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) {
             $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER;
         }
@@ -1406,7 +1393,7 @@ class GeSHi {
      * @todo  Rewrite with array traversal
      * @deprecated In favour of enable_highlighting
      */
-    function disable_highlighting() {
+    public function disable_highlighting() {
         $this->enable_highlighting(false);
     }
 
@@ -1417,10 +1404,10 @@ class GeSHi {
      * to enable (true) or disable (false) all highlighting.
      *
      * @since 1.0.0
-     * @param boolean A flag specifying whether to enable or disable all highlighting
+     * @param boolean $flag A flag specifying whether to enable or disable all highlighting
      * @todo  Rewrite with array traversal
      */
-    function enable_highlighting($flag = true) {
+    public function enable_highlighting($flag = true) {
         $flag = $flag ? true : false;
         foreach ($this->lexic_permissions as $key => $value) {
             if (is_array($value)) {
@@ -1440,14 +1427,14 @@ class GeSHi {
      * Given a file extension, this method returns either a valid geshi language
      * name, or the empty string if it couldn't be found
      *
-     * @param string The extension to get a language name for
-     * @param array  A lookup array to use instead of the default one
+     * @param string $extension The extension to get a language name for
+     * @param array  $lookup    A lookup array to use instead of the default one
      * @since 1.0.5
      * @todo Re-think about how this method works (maybe make it private and/or make it
      *       a extension->lang lookup?)
-     * @todo static?
+     * @return int|string
      */
-    function get_language_name_from_extension( $extension, $lookup = array() ) {
+    public static function get_language_name_from_extension( $extension, $lookup = array() ) {
         $extension = strtolower($extension);
 
         if ( !is_array($lookup) || empty($lookup)) {
@@ -1549,15 +1536,15 @@ class GeSHi {
      *   'lang_name' ...
      * );</pre>
      *
-     * @param string The filename to load the source from
-     * @param array  A lookup array to use instead of the default one
+     * @param string $file_name The filename to load the source from
+     * @param array  $lookup    A lookup array to use instead of the default one
      * @todo Complete rethink of this and above method
      * @since 1.0.5
      */
-    function load_from_file($file_name, $lookup = array()) {
+    public function load_from_file($file_name, $lookup = array()) {
         if (is_readable($file_name)) {
             $this->set_source(file_get_contents($file_name));
-            $this->set_language($this->get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup));
+            $this->set_language(self::get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup));
         } else {
             $this->error = GESHI_ERROR_FILE_NOT_READABLE;
         }
@@ -1566,11 +1553,11 @@ class GeSHi {
     /**
      * Adds a keyword to a keyword group for highlighting
      *
-     * @param int    The key of the keyword group to add the keyword to
-     * @param string The word to add to the keyword group
+     * @param int    $key  The key of the keyword group to add the keyword to
+     * @param string $word The word to add to the keyword group
      * @since 1.0.0
      */
-    function add_keyword($key, $word) {
+    public function add_keyword($key, $word) {
         if (!is_array($this->language_data['KEYWORDS'][$key])) {
             $this->language_data['KEYWORDS'][$key] = array();
         }
@@ -1588,9 +1575,9 @@ class GeSHi {
     /**
      * Removes a keyword from a keyword group
      *
-     * @param int    The key of the keyword group to remove the keyword from
-     * @param string The word to remove from the keyword group
-     * @param bool   Wether to automatically recompile the optimized regexp list or not.
+     * @param int    $key       The key of the keyword group to remove the keyword from
+     * @param string $word      The word to remove from the keyword group
+     * @param bool   $recompile Wether to automatically recompile the optimized regexp list or not.
      *               Note: if you set this to false and @see GeSHi->parse_code() was already called once,
      *               for the current language, you have to manually call @see GeSHi->optimize_keyword_group()
      *               or the removed keyword will stay in cache and still be highlighted! On the other hand
@@ -1598,7 +1585,7 @@ class GeSHi {
      *               remove a lot of keywords.
      * @since 1.0.0
      */
-    function remove_keyword($key, $word, $recompile = true) {
+    public function remove_keyword($key, $word, $recompile = true) {
         $key_to_remove = array_search($word, $this->language_data['KEYWORDS'][$key]);
         if ($key_to_remove !== false) {
             unset($this->language_data['KEYWORDS'][$key][$key_to_remove]);
@@ -1613,13 +1600,14 @@ class GeSHi {
     /**
      * Creates a new keyword group
      *
-     * @param int    The key of the keyword group to create
-     * @param string The styles for the keyword group
-     * @param boolean Whether the keyword group is case sensitive ornot
-     * @param array  The words to use for the keyword group
+     * @param int     $key            The key of the keyword group to create
+     * @param string  $styles         The styles for the keyword group
+     * @param boolean $case_sensitive Whether the keyword group is case sensitive ornot
+     * @param array   $words          The words to use for the keyword group
      * @since 1.0.0
+     * @return bool
      */
-    function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) {
+    public function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) {
         $words = (array) $words;
         if  (empty($words)) {
             // empty word lists mess up highlighting
@@ -1636,15 +1624,16 @@ class GeSHi {
         if ($this->parse_cache_built) {
             $this->optimize_keyword_group($key);
         }
+        return true;
     }
 
     /**
      * Removes a keyword group
      *
-     * @param int    The key of the keyword group to remove
+     * @param int $key The key of the keyword group to remove
      * @since 1.0.0
      */
-    function remove_keyword_group ($key) {
+    public function remove_keyword_group ($key) {
         //Remove the keyword group internally
         unset($this->language_data['KEYWORDS'][$key]);
         unset($this->lexic_permissions['KEYWORDS'][$key]);
@@ -1658,10 +1647,10 @@ class GeSHi {
     /**
      * compile optimized regexp list for keyword group
      *
-     * @param int   The key of the keyword group to compile & optimize
+     * @param int $key The key of the keyword group to compile & optimize
      * @since 1.0.8
      */
-    function optimize_keyword_group($key) {
+    public 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;
@@ -1688,40 +1677,40 @@ class GeSHi {
     /**
      * Sets the content of the header block
      *
-     * @param string The content of the header block
+     * @param string $content The content of the header block
      * @since 1.0.2
      */
-    function set_header_content($content) {
+    public function set_header_content($content) {
         $this->header_content = $content;
     }
 
     /**
      * Sets the content of the footer block
      *
-     * @param string The content of the footer block
+     * @param string $content The content of the footer block
      * @since 1.0.2
      */
-    function set_footer_content($content) {
+    public function set_footer_content($content) {
         $this->footer_content = $content;
     }
 
     /**
      * Sets the style for the header content
      *
-     * @param string The style for the header content
+     * @param string $style The style for the header content
      * @since 1.0.2
      */
-    function set_header_content_style($style) {
+    public function set_header_content_style($style) {
         $this->header_content_style = $style;
     }
 
     /**
      * Sets the style for the footer content
      *
-     * @param string The style for the footer content
+     * @param string $style The style for the footer content
      * @since 1.0.2
      */
-    function set_footer_content_style($style) {
+    public function set_footer_content_style($style) {
         $this->footer_content_style = $style;
     }
 
@@ -1729,45 +1718,45 @@ class GeSHi {
      * Sets whether to force a surrounding block around
      * the highlighted code or not
      *
-     * @param boolean Tells whether to enable or disable this feature
+     * @param boolean $flag Tells whether to enable or disable this feature
      * @since 1.0.7.20
      */
-    function enable_inner_code_block($flag) {
+    public function enable_inner_code_block($flag) {
         $this->force_code_block = (bool)$flag;
     }
 
     /**
      * Sets the base URL to be used for keywords
      *
-     * @param int The key of the keyword group to set the URL for
-     * @param string The URL to set for the group. If {FNAME} is in
-     *               the url somewhere, it is replaced by the keyword
-     *               that the URL is being made for
+     * @param int    $group The key of the keyword group to set the URL for
+     * @param string $url   The URL to set for the group. If {FNAME} is in
+     *                      the url somewhere, it is replaced by the keyword
+     *                      that the URL is being made for
      * @since 1.0.2
      */
-    function set_url_for_keyword_group($group, $url) {
+    public function set_url_for_keyword_group($group, $url) {
         $this->language_data['URLS'][$group] = $url;
     }
 
     /**
      * Sets styles for links in code
      *
-     * @param int A constant that specifies what state the style is being
-     *            set for - e.g. :hover or :visited
-     * @param string The styles to use for that state
+     * @param int    $type   A constant that specifies what state the style is being
+     *                       set for - e.g. :hover or :visited
+     * @param string $styles The styles to use for that state
      * @since 1.0.2
      */
-    function set_link_styles($type, $styles) {
+    public function set_link_styles($type, $styles) {
         $this->link_styles[$type] = $styles;
     }
 
     /**
      * Sets the target for links in code
      *
-     * @param string The target for links in the code, e.g. _blank
+     * @param string $target The target for links in the code, e.g. _blank
      * @since 1.0.3
      */
-    function set_link_target($target) {
+    public function set_link_target($target) {
         if (!$target) {
             $this->link_target = '';
         } else {
@@ -1778,32 +1767,32 @@ class GeSHi {
     /**
      * Sets styles for important parts of the code
      *
-     * @param string The styles to use on important parts of the code
+     * @param string $styles The styles to use on important parts of the code
      * @since 1.0.2
      */
-    function set_important_styles($styles) {
+    public function set_important_styles($styles) {
         $this->important_styles = $styles;
     }
 
     /**
      * Sets whether context-important blocks are highlighted
      *
-     * @param boolean Tells whether to enable or disable highlighting of important blocks
+     * @param boolean $flag Tells whether to enable or disable highlighting of important blocks
      * @todo REMOVE THIS SHIZ FROM GESHI!
      * @deprecated
      * @since 1.0.2
      */
-    function enable_important_blocks($flag) {
+    public function enable_important_blocks($flag) {
         $this->enable_important_blocks = ( $flag ) ? true : false;
     }
 
     /**
      * Whether CSS IDs should be added to each line
      *
-     * @param boolean If true, IDs will be added to each line.
+     * @param boolean $flag If true, IDs will be added to each line.
      * @since 1.0.2
      */
-    function enable_ids($flag = true) {
+    public function enable_ids($flag = true) {
         $this->add_ids = ($flag) ? true : false;
     }
 
@@ -1812,16 +1801,16 @@ class GeSHi {
      *
      * The extra style parameter was added in 1.0.7.21.
      *
-     * @param mixed An array of line numbers to highlight, or just a line
-     *              number on its own.
-     * @param string A string specifying the style to use for this line.
-     *              If null is specified, the default style is used.
-     *              If false is specified, the line will be removed from
-     *              special highlighting
+     * @param mixed  $lines An array of line numbers to highlight, or just a line
+     *                      number on its own.
+     * @param string $style A string specifying the style to use for this line.
+     *                      If null is specified, the default style is used.
+     *                      If false is specified, the line will be removed from
+     *                      special highlighting
      * @since 1.0.2
      * @todo  Some data replication here that could be cut down on
      */
-    function highlight_lines_extra($lines, $style = null) {
+    public function highlight_lines_extra($lines, $style = null) {
         if (is_array($lines)) {
             //Split up the job using single lines at a time
             foreach ($lines as $line) {
@@ -1847,20 +1836,20 @@ class GeSHi {
     /**
      * Sets the style for extra-highlighted lines
      *
-     * @param string The style for extra-highlighted lines
+     * @param string $styles The style for extra-highlighted lines
      * @since 1.0.2
      */
-    function set_highlight_lines_extra_style($styles) {
+    public function set_highlight_lines_extra_style($styles) {
         $this->highlight_extra_lines_style = $styles;
     }
 
     /**
      * Sets the line-ending
      *
-     * @param string The new line-ending
+     * @param string $line_ending The new line-ending
      * @since 1.0.2
      */
-    function set_line_ending($line_ending) {
+    public function set_line_ending($line_ending) {
         $this->line_ending = (string)$line_ending;
     }
 
@@ -1876,10 +1865,10 @@ class GeSHi {
      * has support for the CSS method, but (of course) IE doesn't
      * so it's not worth doing it the CSS way yet.
      *
-     * @param int The number to start line numbers at
+     * @param int $number The number to start line numbers at
      * @since 1.0.2
      */
-    function start_line_numbers_at($number) {
+    public function start_line_numbers_at($number) {
         $this->line_numbers_start = abs(intval($number));
     }
 
@@ -1892,10 +1881,10 @@ class GeSHi {
      * Maybe in a future version it may make a return for speed reasons, but
      * I doubt it.
      *
-     * @param string The encoding to use for the source
+     * @param string $encoding The encoding to use for the source
      * @since 1.0.3
      */
-    function set_encoding($encoding) {
+    public function set_encoding($encoding) {
         if ($encoding) {
           $this->encoding = strtolower($encoding);
         }
@@ -1904,10 +1893,10 @@ class GeSHi {
     /**
      * Turns linking of keywords on or off.
      *
-     * @param boolean If true, links will be added to keywords
+     * @param boolean $enable If true, links will be added to keywords
      * @since 1.0.2
      */
-    function enable_keyword_links($enable = true) {
+    public function enable_keyword_links($enable = true) {
         $this->keyword_links = (bool) $enable;
     }
 
@@ -1918,9 +1907,8 @@ class GeSHi {
      * preprocessed
      *
      * @since 1.0.8
-     * @access private
      */
-    function build_style_cache() {
+    protected function build_style_cache() {
         //Build the style cache needed to highlight numbers appropriate
         if($this->lexic_permissions['NUMBERS']) {
             //First check what way highlighting information for numbers are given
@@ -1969,9 +1957,8 @@ class GeSHi {
      * This function makes stylesheet generators much faster as they do not need these caches.
      *
      * @since 1.0.8
-     * @access private
      */
-    function build_parse_cache() {
+    protected function build_parse_cache() {
         // cache symbol regexp
         //As this is a costy operation, we avoid doing it for multiple groups ...
         //Instead we perform it for all symbols at once.
@@ -2132,7 +2119,7 @@ class GeSHi {
                 }
 
                 $this->language_data['NUMBERS_RXCACHE'][$key] =
-                    "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; //
+                    "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i";
             }
 
             if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) {
@@ -2153,7 +2140,7 @@ class GeSHi {
      *
      * @since 1.0.0
      */
-    function parse_code () {
+    public function parse_code () {
         // Start the timer
         $start_time = microtime();
 
@@ -2249,8 +2236,7 @@ class GeSHi {
                          *  - Group 1 is the opener
                          *  - Group 2 is the closer
                          */
-                        if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work.
-                            preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {
+                        if(preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {
                             //We got a match ...
                             if(isset($matches_rx['start']) && isset($matches_rx['end']))
                             {
@@ -2497,15 +2483,8 @@ class GeSHi {
                                     continue;
                                 }
                                 $match_i = $comment_regexp_cache_per_key[$comment_key]['pos'];
-                            } elseif (
-                                //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))
-                                ) {
+                            } elseif (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,
@@ -2605,15 +2584,8 @@ class GeSHi {
                                                 continue;
                                             }
                                             $match_i = $escape_regexp_cache_per_key[$escape_key]['pos'];
-                                        } elseif (
-                                            //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))
-                                            ) {
+                                        } elseif (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,
@@ -2681,7 +2653,7 @@ class GeSHi {
                                     if(function_exists('mb_substr')) {
                                         $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding);
                                         $string .= $es_char_m . '</span>';
-                                    } elseif (!GESHI_PHP_PRE_433 && 'utf-8' == $this->encoding) {
+                                    } elseif ('utf-8' == $this->encoding) {
                                         if(preg_match("/[\xC2-\xDF][\x80-\xBF]".
                                             "|\xE0[\xA0-\xBF][\x80-\xBF]".
                                             "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}".
@@ -3122,11 +3094,10 @@ class GeSHi {
      * Swaps out spaces and tabs for HTML indentation. Not needed if
      * the code is in a pre block...
      *
-     * @param  string The source to indent (reference!)
+     * @param  string $result The source to indent (reference!)
      * @since  1.0.0
-     * @access private
      */
-    function indent(&$result) {
+    protected function indent(&$result) {
         /// Replace tabs with the correct number of spaces
         if (false !== strpos($result, "\t")) {
             $lines = explode("\n", $result);
@@ -3221,12 +3192,11 @@ class GeSHi {
     /**
      * Changes the case of a keyword for those languages where a change is asked for
      *
-     * @param  string The keyword to change the case of
+     * @param  string $instr The keyword to change the case of
      * @return string The keyword with its case changed
      * @since  1.0.0
-     * @access private
      */
-    function change_case($instr) {
+    protected function change_case($instr) {
         switch ($this->language_data['CASE_KEYWORDS']) {
             case GESHI_CAPS_UPPER:
                 return strtoupper($instr);
@@ -3240,14 +3210,13 @@ class GeSHi {
     /**
      * Handles replacements of keywords to include markup and links if requested
      *
-     * @param  string The keyword to add the Markup to
-     * @return The HTML for the match found
+     * @param  string $match The keyword to add the Markup to
+     * @return string The HTML for the match found
      * @since  1.0.8
-     * @access private
      *
      * @todo   Get rid of ender in keyword links
      */
-    function handle_keyword_replace($match) {
+    protected function handle_keyword_replace($match) {
         $k = $this->_kw_replace_group;
         $keyword = $match[0];
         $keyword_match = $match[1];
@@ -3282,11 +3251,13 @@ class GeSHi {
                             '{FNAME}',
                             '{FNAMEL}',
                             '{FNAMEU}',
+                            '{FNAMEUF}',
                             '.'),
                         array(
                             str_replace('+', '%20', urlencode($this->hsc($word))),
                             str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))),
                             str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))),
+                            str_replace('+', '%20', urlencode($this->hsc(ucfirst($word)))),
                             '<DOT>'),
                         $this->language_data['URLS'][$k]
                     ) . '">';
@@ -3302,12 +3273,11 @@ class GeSHi {
      *
      * @note this is a callback, don't use it directly
      *
-     * @param array the matches array
-     * @return The highlighted string
+     * @param array $matches the matches array
+     * @return string The highlighted string
      * @since 1.0.8
-     * @access private
      */
-    function handle_regexps_callback($matches) {
+    protected function handle_regexps_callback($matches) {
         // before: "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'",
         return  ' style="' . call_user_func($this->language_data['STYLES']['REGEXPS'][$this->_rx_key], $matches[1]) . '"'. $matches[1] . '|>';
     }
@@ -3317,12 +3287,11 @@ class GeSHi {
      *
      * @note this is a callback, don't use it directly
      *
-     * @param array the matches array
+     * @param array $matches the matches array
      * @return string
      * @since 1.0.8
-     * @access private
      */
-    function handle_multiline_regexps($matches) {
+    protected function handle_multiline_regexps($matches) {
         $before = $this->_hmr_before;
         $after = $this->_hmr_after;
         if ($this->_hmr_replace) {
@@ -3350,12 +3319,12 @@ class GeSHi {
      * Takes a string that has no strings or comments in it, and highlights
      * stuff like keywords, numbers and methods.
      *
-     * @param string The string to parse for keyword, numbers etc.
+     * @param string $stuff_to_parse The string to parse for keyword, numbers etc.
      * @since 1.0.0
-     * @access private
      * @todo BUGGY! Why? Why not build string and return?
+     * @return string
      */
-    function parse_non_string_part($stuff_to_parse) {
+    protected function parse_non_string_part($stuff_to_parse) {
         $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse);
 
         // Highlight keywords
@@ -3573,7 +3542,6 @@ class GeSHi {
                 $symbol_length = strlen($symbol_match);
                 $symbol_offset = $pot_symbols[$s_id][0][1];
                 unset($pot_symbols[$s_id]);
-                $symbol_end = $symbol_length + $symbol_offset;
                 $symbol_hl = "";
 
                 // if we have multiple styles, we have to handle them properly
@@ -3672,12 +3640,11 @@ class GeSHi {
     /**
      * Sets the time taken to parse the code
      *
-     * @param microtime The time when parsing started
-     * @param microtime The time when parsing ended
+     * @param string $start_time The time when parsing started as returned by @see microtime()
+     * @param string $end_time   The time when parsing ended as returned by @see microtime()
      * @since 1.0.2
-     * @access private
      */
-    function set_time($start_time, $end_time) {
+    protected function set_time($start_time, $end_time) {
         $start = explode(' ', $start_time);
         $end = explode(' ', $end_time);
         $this->time = $end[0] + $end[1] - $start[0] - $start[1];
@@ -3689,7 +3656,7 @@ class GeSHi {
      * @return double The time taken to parse the code
      * @since  1.0.2
      */
-    function get_time() {
+    public function get_time() {
         return $this->time;
     }
 
@@ -3697,9 +3664,8 @@ class GeSHi {
      * Merges arrays recursively, overwriting values of the first array with values of later arrays
      *
      * @since 1.0.8
-     * @access private
      */
-    function merge_arrays() {
+    protected function merge_arrays() {
         $arrays = func_get_args();
         $narrays = count($arrays);
 
@@ -3735,12 +3701,11 @@ class GeSHi {
     /**
      * Gets language information and stores it for later use
      *
-     * @param string The filename of the language file you want to load
+     * @param string $file_name The filename of the language file you want to load
      * @since 1.0.0
-     * @access private
      * @todo Needs to load keys for lexic permissions for keywords, regexps etc
      */
-    function load_language($file_name) {
+    protected function load_language($file_name) {
         if ($file_name == $this->loaded_language) {
             // this file is already loaded!
             return;
@@ -3835,11 +3800,10 @@ class GeSHi {
      * Takes the parsed code and various options, and creates the HTML
      * surrounding it to make it look nice.
      *
-     * @param  string The code already parsed (reference!)
+     * @param  string $parsed_code The code already parsed (reference!)
      * @since  1.0.0
-     * @access private
      */
-    function finalise(&$parsed_code) {
+    protected function finalise(&$parsed_code) {
         // Remove end parts of important declarations
         // This is BUGGY!! My fault for bad code: fix coming in 1.2
         // @todo Remove this crap
@@ -3875,9 +3839,6 @@ class GeSHi {
             // the <pre> will line-break them (and the <li>s already do this for us)
             $ls = ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) ? "\n" : '';
 
-            // Set vars to defaults for following loop
-            $i = 0;
-
             // Foreach line...
             for ($i = 0, $n = count($code); $i < $n;) {
                 //Reset the attributes for a new line ...
@@ -4085,9 +4046,8 @@ class GeSHi {
      *
      * @return string The header for the code block
      * @since  1.0.0
-     * @access private
      */
-    function header() {
+    protected function header() {
         // Get attributes needed
         /**
          * @todo   Document behaviour change - class is outputted regardless of whether
@@ -4165,9 +4125,8 @@ class GeSHi {
      *
      * @return string The footer for the code block
      * @since  1.0.0
-     * @access private
      */
-    function footer() {
+    protected function footer() {
         $footer = $this->footer_content;
         if ($footer) {
             if ($this->header_type == GESHI_HEADER_PRE) {
@@ -4218,12 +4177,11 @@ class GeSHi {
      * Replaces certain keywords in the header and footer with
      * certain configuration values
      *
-     * @param  string The header or footer content to do replacement on
+     * @param  string $instr The header or footer content to do replacement on
      * @return string The header or footer with replaced keywords
      * @since  1.0.2
-     * @access private
      */
-    function replace_keywords($instr) {
+    protected function replace_keywords($instr) {
         $keywords = $replacements = array();
 
         $keywords[] = '<TIME>';
@@ -4299,7 +4257,6 @@ class GeSHi {
      * @copyright   Copyright 2007, {@link http://wikkawiki.org/CreditsPage
      *              Wikka Development Team}
      *
-     * @access      private
      * @param       string  $string string to be converted
      * @param       integer $quote_style
      *                      - ENT_COMPAT:   escapes &, <, > and double quote (default)
@@ -4308,7 +4265,7 @@ class GeSHi {
      * @return      string  converted string
      * @since       1.0.7.18
      */
-    function hsc($string, $quote_style = ENT_COMPAT) {
+    protected function hsc($string, $quote_style = ENT_COMPAT) {
         // init
         static $aTransSpecchar = array(
             '&' => '&amp;',
@@ -4339,7 +4296,15 @@ class GeSHi {
         return strtr($string, $aTransSpecchar);
     }
 
-    function _genCSSName($name){
+    /**
+     * Generate a CSS class name from a given string.
+     * Prevents invalid CSS classes.
+     *
+     * @param string $name Proposed class name
+     *
+     * @return string Safe CSS class name
+     */
+    protected function _genCSSName($name) {
         return (is_numeric($name[0]) ? '_' : '') . $name;
     }
 
@@ -4348,11 +4313,11 @@ class GeSHi {
      * is true, we only return the stylesheet declarations that matter for
      * this code block instead of the whole thing
      *
-     * @param  boolean Whether to use economy mode or not
+     * @param  boolean $economy_mode Whether to use economy mode or not
      * @return string A stylesheet built on the data for the current language
      * @since  1.0.0
      */
-    function get_stylesheet($economy_mode = true) {
+    public function get_stylesheet($economy_mode = true) {
         // If there's an error, chances are that the language file
         // won't have populated the language data file, so we can't
         // risk getting a stylesheet...
@@ -4386,13 +4351,13 @@ class GeSHi {
                 " * --------------------------------------\n".
                 " * Dynamically generated stylesheet for {$this->language}\n".
                 " * CSS class: {$this->overall_class}, CSS id: {$this->overall_id}\n".
-                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
+                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2014 Benny Baumann\n" .
                 " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
                 " * --------------------------------------\n".
                 " */\n";
         } else {
             $stylesheet = "/**\n".
-                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
+                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2014 Benny Baumann\n" .
                 " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
                 " */\n";
         }
@@ -4552,12 +4517,10 @@ class GeSHi {
     /**
      * Get's the style that is used for the specified line
      *
-     * @param int The line number information is requested for
-     * @access private
+     * @param int $line The line number information is requested for
      * @since 1.0.7.21
      */
-    function get_line_style($line) {
-        //$style = null;
+    protected function get_line_style($line) {
         $style = null;
         if (isset($this->highlight_extra_lines_styles[$line])) {
             $style = $this->highlight_extra_lines_styles[$line];
@@ -4576,14 +4539,13 @@ class GeSHi {
     * <code>$list = array('faa', 'foo', 'foobar');
     *          => string 'f(aa|oo(bar)?)'</code>
     *
-    * @param $list array of (unquoted) strings
-    * @param $regexp_delimiter your regular expression delimiter, @see preg_quote()
+    * @param array  $list             array of (unquoted) strings
+    * @param string $regexp_delimiter your regular expression delimiter, @see preg_quote()
     * @return string for regular expression
     * @author Milian Wolff <mail@milianw.de>
     * @since 1.0.8
-    * @access private
     */
-    function optimize_regexp_list($list, $regexp_delimiter = '/') {
+    protected function optimize_regexp_list($list, $regexp_delimiter = '/') {
         $regex_chars = array('.', '\\', '+', '-', '*', '?', '[', '^', ']', '$',
             '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter);
         sort($list);
@@ -4695,18 +4657,18 @@ class GeSHi {
         }
         return $regexp_list;
     }
+
     /**
     * this function creates the appropriate regexp string of an token array
     * you should not call this function directly, @see $this->optimize_regexp_list().
     *
-    * @param &$tokens array of tokens
-    * @param $recursed bool to know wether we recursed or not
+    * @param array $tokens   array of tokens
+    * @param bool  $recursed to know wether we recursed or not
     * @return string
     * @author Milian Wolff <mail@milianw.de>
     * @since 1.0.8
-    * @access private
     */
-    function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) {
+    protected function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) {
         $list = '';
         foreach ($tokens as $token => $sub_tokens) {
             $list .= $token;
@@ -4747,11 +4709,11 @@ if (!function_exists('geshi_highlight')) {
     /**
      * Easy way to highlight stuff. Behaves just like highlight_string
      *
-     * @param string The code to highlight
-     * @param string The language to highlight the code in
-     * @param string The path to the language files. You can leave this blank if you need
-     *               as from version 1.0.7 the path should be automatically detected
-     * @param boolean Whether to return the result or to echo
+     * @param string $string   The code to highlight
+     * @param string $language The language to highlight the code in
+     * @param string $path     The path to the language files. You can leave this blank if you need
+     *                         as from version 1.0.7 the path should be automatically detected
+     * @param boolean $return  Whether to return the result or to echo
      * @return string The code highlighted (if $return is true)
      * @since 1.0.2
      */
@@ -4771,4 +4733,3 @@ if (!function_exists('geshi_highlight')) {
         return true;
     }
 }
-
diff --git a/vendor/easybook/geshi/geshi/4cs.php b/vendor/geshi/geshi/src/geshi/4cs.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/4cs.php
rename to vendor/geshi/geshi/src/geshi/4cs.php
index e5a00645c1e4934c05c6cb004f84df11e6c34f91..cae453f66d1bada4c33980726e0eac748b200999 100644
--- a/vendor/easybook/geshi/geshi/4cs.php
+++ b/vendor/geshi/geshi/src/geshi/4cs.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Jason Curl (jason.curl@continental-corporation.com)
  * Copyright: (c) 2009 Jason Curl
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/09/05
  *
  * 4CS language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/6502acme.php b/vendor/geshi/geshi/src/geshi/6502acme.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/6502acme.php
rename to vendor/geshi/geshi/src/geshi/6502acme.php
index 62b7b2994fc81188340ea1b735981c4976f6acea..a11a108fc65db1b7402a71e9d369fdff85a7f105 100644
--- a/vendor/easybook/geshi/geshi/6502acme.php
+++ b/vendor/geshi/geshi/src/geshi/6502acme.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/05/26
  *
  * MOS 6502 (more specifically 6510) ACME Cross Assembler 0.93 by Marco Baye language file for GeSHi.
@@ -226,4 +226,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/6502kickass.php b/vendor/geshi/geshi/src/geshi/6502kickass.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/6502kickass.php
rename to vendor/geshi/geshi/src/geshi/6502kickass.php
index 023a3ff86978edd72227e0aafaa055799ee280b1..9da8f24077536ae6ad8fdea80bab9aae1cc2ff0d 100644
--- a/vendor/easybook/geshi/geshi/6502kickass.php
+++ b/vendor/geshi/geshi/src/geshi/6502kickass.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/06/07
  *
  * MOS 6502 (6510) Kick Assembler 3.13 language file for GeSHi.
@@ -237,4 +237,3 @@ $language_data = array (
             )
         ),
 );
-
diff --git a/vendor/easybook/geshi/geshi/6502tasm.php b/vendor/geshi/geshi/src/geshi/6502tasm.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/6502tasm.php
rename to vendor/geshi/geshi/src/geshi/6502tasm.php
index 1a49aee3677b39cad9cbab32da59034250c9e94f..4ce348f42f805b57a237f5c7adbe41cc79a7cbba 100644
--- a/vendor/easybook/geshi/geshi/6502tasm.php
+++ b/vendor/geshi/geshi/src/geshi/6502tasm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/06/02
  *
  * MOS 6502 (6510) TASM/64TASS (64TASS being the super set of TASM) language file for GeSHi.
@@ -185,4 +185,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/68000devpac.php b/vendor/geshi/geshi/src/geshi/68000devpac.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/68000devpac.php
rename to vendor/geshi/geshi/src/geshi/68000devpac.php
index a8ac8d9e69a8388f79edb22742855d295f291418..96a9d082057d8c3d47c2500d5eabf727dd62da0e 100644
--- a/vendor/easybook/geshi/geshi/68000devpac.php
+++ b/vendor/geshi/geshi/src/geshi/68000devpac.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/06/09
  *
  * Motorola 68000 - HiSoft Devpac ST 2 Assembler language file for GeSHi.
@@ -164,4 +164,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/abap.php b/vendor/geshi/geshi/src/geshi/abap.php
similarity index 96%
rename from vendor/easybook/geshi/geshi/abap.php
rename to vendor/geshi/geshi/src/geshi/abap.php
index 14677a230780a0694e8fe62fcda5c495288f2700..d9df3ea881644d0971a5d5d64da4083ec011de84 100644
--- a/vendor/easybook/geshi/geshi/abap.php
+++ b/vendor/geshi/geshi/src/geshi/abap.php
@@ -7,7 +7,7 @@
  *  - Sandra Rossi (sandra.rossi@gmail.com)
  *  - Jacob Laursen (jlu@kmd.dk)
  * Copyright: (c) 2007 Andres Picazo
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * ABAP language file for GeSHi.
@@ -1326,15 +1326,15 @@ $language_data = array(
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            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;'
+            1 => 'color: #000066; font-weight: bold; zzz:control;', //control statements
+            2 => 'color: #cc4050; font-weight: bold; zzz:data;', //data statements
+            3 => 'color: #005066; font-weight: bold; zzz:statement;', //first token of other statements
+            4 => 'color: #500066; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords")
+            5 => 'color: #005066; font-weight: bold; zzz:statement;',
+            6 => 'color: #000066; font-weight: bold; zzz:control;',
+            7 => 'color: #000066; font-weight: bold; zzz:control;',
+            8 => 'color: #005066; font-weight: bold; zzz:statement;',
+            9 => 'color: #500066; font-weight: bold; zzz:keyword;'
             ),
         'COMMENTS' => array(
             1 => 'color: #808080; font-style: italic;',
@@ -1368,9 +1368,9 @@ $language_data = array(
             )
         ),
     'URLS' => array(
-        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',
+        1 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
+        2 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
+        3 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
         4 => '',
         5 => '',
         6 => '',
@@ -1405,4 +1405,3 @@ $language_data = array(
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/actionscript.php b/vendor/geshi/geshi/src/geshi/actionscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/actionscript.php
rename to vendor/geshi/geshi/src/geshi/actionscript.php
index f64fc640118f07553e0e987d6127773d4eb08cdd..bbafbdfc9455b022a5e0eae90fa6a6c9613d4ac7 100644
--- a/vendor/easybook/geshi/geshi/actionscript.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/20
  *
  * Actionscript language file for GeSHi.
@@ -193,4 +193,3 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/actionscript3.php b/vendor/geshi/geshi/src/geshi/actionscript3.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/actionscript3.php
rename to vendor/geshi/geshi/src/geshi/actionscript3.php
index afe5380c0a144854632ddcf61b76c17fa2d24682..20dcf5d5609483817f687e0ff7c28f454271137e 100644
--- a/vendor/easybook/geshi/geshi/actionscript3.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/11/26
  *
  * ActionScript3 language file for GeSHi.
@@ -469,4 +469,3 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/ada.php b/vendor/geshi/geshi/src/geshi/ada.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/ada.php
rename to vendor/geshi/geshi/src/geshi/ada.php
index 09cc6ea583f5bd980808164ee3c139099c43a1ec..bad8595be93bcc7f68d3169a75f75a1fad8941cf 100644
--- a/vendor/easybook/geshi/geshi/ada.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/29
  *
  * Ada language file for GeSHi.
@@ -94,9 +94,6 @@ $language_data = array (
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;'
             ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
         'STRINGS' => array(
             0 => 'color: #7f007f;'
             ),
@@ -131,4 +128,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/aimms.php b/vendor/geshi/geshi/src/geshi/aimms.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/aimms.php
rename to vendor/geshi/geshi/src/geshi/aimms.php
index f46bdd0bcd7a3ab71a538bcf49570fa6aed0dde1..ea49b8e634020a92f98ccad059d4bd32443610f8 100644
--- a/vendor/easybook/geshi/geshi/aimms.php
+++ b/vendor/geshi/geshi/src/geshi/aimms.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Guido Diepen (guido.diepen@aimms.com)
  * Copyright: (c) 2011 Guido Diepen (http://www.aimms.com)
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2011/05/05
  *
  * AIMMS language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/algol68.php b/vendor/geshi/geshi/src/geshi/algol68.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/algol68.php
rename to vendor/geshi/geshi/src/geshi/algol68.php
index 7383aaeaa1209b066de4a0159cea72e8bff6be1b..f1555c61a94209efac6fa4e3b389c43cabf470c4 100644
--- a/vendor/easybook/geshi/geshi/algol68.php
+++ b/vendor/geshi/geshi/src/geshi/algol68.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
  * Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/04/24
  *
  * ALGOL 68 language file for GeSHi.
@@ -89,14 +89,14 @@ if(!function_exists('geshi_langfile_algol68_vars')) {
         # for some reason ".0 e - 2" is not recognised, but ".0 e + 2" IS!
         # work around: remove spaces between sign and digits! Maybe because
         # of the Unary '-' Operator
-        $sign_="(?:-|\-|[-]|[\-]|\+|)";  # attempts #
+        $sign_="(?:-|\-|[-]|[\-]|\+|)";  # attempts # // FIXME: This should be used or removed. Assignment beneath
 
         $sign_="(?:-\s*|\+\s*|)"; # n.b. sign is followed by white space #
 
         $_int=$sign_.$_dec;
         $il=          $_int;                      # +_9           #
 
-        $GESHI_NUMBER_INT_BASIC='(?:(?<![0-9a-z_\.%])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
+        //$GESHI_NUMBER_INT_BASIC='(?:(?<![0-9a-z_\.%])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
 
         # Define REAL: #
         $prereal=$pre; $postreal=$post;
diff --git a/vendor/easybook/geshi/geshi/apache.php b/vendor/geshi/geshi/src/geshi/apache.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/apache.php
rename to vendor/geshi/geshi/src/geshi/apache.php
index e54aa23abc0454d2dad5a1023daa42754939a230..da1f5dd228761aded345f3271da1874dcbb2dc48 100644
--- a/vendor/easybook/geshi/geshi/apache.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/29/07
  *
  * Apache language file for GeSHi.
@@ -479,4 +479,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/applescript.php b/vendor/geshi/geshi/src/geshi/applescript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/applescript.php
rename to vendor/geshi/geshi/src/geshi/applescript.php
index 23ae9c03d3c63282c404332e0781eb372553ecfd..e71eb327d97fb2dd7cc0b5a85e9e071aa8a9ad41 100644
--- a/vendor/easybook/geshi/geshi/applescript.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/07/20
  *
  * AppleScript language file for GeSHi.
@@ -153,4 +153,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/apt_sources.php b/vendor/geshi/geshi/src/geshi/apt_sources.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/apt_sources.php
rename to vendor/geshi/geshi/src/geshi/apt_sources.php
index 8a22d22f5cd149018eadb2bc2008ea8e0211c38d..49c51b06ea475e44aa996a0afe74baa8397dec7d 100644
--- a/vendor/easybook/geshi/geshi/apt_sources.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/06/17
  *
  * Apt sources.list language file for GeSHi.
@@ -82,7 +82,7 @@ $language_data = array (
             'main', 'restricted', 'preview', 'contrib', 'non-free',
             'commercial', 'universe', 'multiverse'
             )
-    ),
+        ),
     'REGEXPS' => array(
         0 => "(((http|ftp):\/\/|file:\/)[^\s]+)|(cdrom:\[[^\]]*\][^\s]*)",
         ),
@@ -151,4 +151,3 @@ $language_data = array (
     ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/arm.php b/vendor/geshi/geshi/src/geshi/arm.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/arm.php
rename to vendor/geshi/geshi/src/geshi/arm.php
index d224f02b6646df38544bb2c47792ebb2aa9c3975..86b71e1b1cbb23eea1620b191eadd49f26c483c9 100644
--- a/vendor/easybook/geshi/geshi/arm.php
+++ b/vendor/geshi/geshi/src/geshi/arm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Marat Dukhan (mdukhan3.at.gatech.dot.edu)
  * Copyright: (c) Marat Dukhan (mdukhan3.at.gatech.dot.edu)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/10/06
  *
  * ARM Assembler language file for GeSHi.
@@ -3314,4 +3314,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/asm.php b/vendor/geshi/geshi/src/geshi/asm.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/asm.php
rename to vendor/geshi/geshi/src/geshi/asm.php
index 53ce805d347e766124daa4804f9785ed6fd2e950..606f2f4877f2630ad6799d834fd907b7f2c48c17 100644
--- a/vendor/easybook/geshi/geshi/asm.php
+++ b/vendor/geshi/geshi/src/geshi/asm.php
@@ -8,7 +8,7 @@
  *                2009-2011 Benny Baumann (http://qbnz.com/highlighter),
  *                2011 Dennis Yurichev (dennis@conus.info),
  *                2011 Marat Dukhan (mdukhan3.at.gatech.dot.edu)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/27
  *
  * x86 Assembler language file for GeSHi.
@@ -599,4 +599,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/asp.php b/vendor/geshi/geshi/src/geshi/asp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/asp.php
rename to vendor/geshi/geshi/src/geshi/asp.php
index cd69efdf32de8de72ee8d488209550adc8d3d90b..6ba8f98c28aa118c172a7fa766d0b7da57bef24e 100644
--- a/vendor/easybook/geshi/geshi/asp.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/13
  *
  * ASP language file for GeSHi.
@@ -160,4 +160,3 @@ $language_data = array (
         3 => true
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/asymptote.php b/vendor/geshi/geshi/src/geshi/asymptote.php
new file mode 100644
index 0000000000000000000000000000000000000000..a75a6299ed3fead82850709b57634b81c4ac5462
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/asymptote.php
@@ -0,0 +1,1850 @@
+<?php
+/*************************************************************************************
+ * asymptote.php
+ * -------------
+ * Author: Manuel Yguel (manuel.yguel.robotics@gmail.com)
+ * Copyright: (c) 2012 Manuel Yguel (http://manuelyguel.eu)
+ * Release Version: 1.0.9.0
+ * Date Started: 2012/05/24
+ *
+ * asymptote language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/05/24 (1.0.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2012/05/24)
+ * -------------------------
+ * * 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' => 'asymptote',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    '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' => '',
+    '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(
+            'and',
+            'controls',
+            'tension',
+            'atleast',
+            'curl',
+            'if',
+            'else',
+            'while',
+            'for',
+            'do',
+            'return',
+            'break',
+            'continue',
+            'struct',
+            'typedef',
+            'new',
+            'access',
+            'import',
+            'unravel',
+            'from',
+            'include',
+            'quote',
+            'static',
+            'public',
+            'private',
+            'restricted',
+            'this',
+            'explicit',
+            'true',
+            'false',
+            'null',
+            'cycle',
+            'newframe',
+            'operator'
+        ),
+        2 => array(
+            'Braid',
+            'FitResult',
+            'Label',
+            'Legend',
+            'Segment',
+            'Solution',
+            'TreeNode',
+            'abscissa',
+            'arrowhead',
+            'binarytree',
+            'binarytreeNode',
+            'block',
+            'bool',
+            'bool3',
+            'bounds',
+            'bqe',
+            'circle',
+            'conic',
+            'coord',
+            'coordsys',
+            'cputime',
+            'ellipse',
+            'file',
+            'filltype',
+            'frame',
+            'grid3',
+            'guide',
+            'horner',
+            'hsv',
+            'hyperbola',
+            'indexedTransform',
+            'int',
+            'inversion',
+            'key',
+            'light',
+            'line',
+            'linefit',
+            'marginT',
+            'marker',
+            'mass',
+            'object',
+            'pair',
+            'parabola',
+            'path',
+            'path3',
+            'pen',
+            'picture',
+            'point',
+            'position',
+            'projection',
+            'real',
+            'revolution',
+            'scaleT',
+            'scientific',
+            'segment',
+            'side',
+            'slice',
+            'solution',
+            'splitface',
+            'string',
+            'surface',
+            'tensionSpecifier',
+            'ticklocate',
+            'ticksgridT',
+            'tickvalues',
+            'transform',
+            'transformation',
+            'tree',
+            'triangle',
+            'trilinear',
+            'triple',
+            'vector',
+            'vertex',
+            'void'),
+
+        3 => array(
+            'AND',
+            'Arc',
+            'ArcArrow',
+            'ArcArrows',
+            'Arrow',
+            'Arrows',
+            'Automatic',
+            'AvantGarde',
+            'BBox',
+            'BWRainbow',
+            'BWRainbow2',
+            'Bar',
+            'Bars',
+            'BeginArcArrow',
+            'BeginArrow',
+            'BeginBar',
+            'BeginDotMargin',
+            'BeginMargin',
+            'BeginPenMargin',
+            'Blank',
+            'Bookman',
+            'Bottom',
+            'BottomTop',
+            'Bounds',
+            'Break',
+            'Broken',
+            'BrokenLog',
+            'CLZ',
+            'CTZ',
+            'Ceil',
+            'Circle',
+            'CircleBarIntervalMarker',
+            'Cos',
+            'Courier',
+            'CrossIntervalMarker',
+            'DOSendl',
+            'DOSnewl',
+            'DefaultFormat',
+            'DefaultLogFormat',
+            'Degrees',
+            'Dir',
+            'DotMargin',
+            'DotMargins',
+            'Dotted',
+            'Draw',
+            'Drawline',
+            'Embed',
+            'EndArcArrow',
+            'EndArrow',
+            'EndBar',
+            'EndDotMargin',
+            'EndMargin',
+            'EndPenMargin',
+            'Fill',
+            'FillDraw',
+            'Floor',
+            'Format',
+            'Full',
+            'Gaussian',
+            'Gaussrand',
+            'Gaussrandpair',
+            'Gradient',
+            'Grayscale',
+            'Helvetica',
+            'Hermite',
+            'HookHead',
+            'InOutTicks',
+            'InTicks',
+            'Jn',
+            'Landscape',
+            'Left',
+            'LeftRight',
+            'LeftTicks',
+            'Linear',
+            'Link',
+            'Log',
+            'LogFormat',
+            'Margin',
+            'Margins',
+            'Mark',
+            'MidArcArrow',
+            'MidArrow',
+            'NOT',
+            'NewCenturySchoolBook',
+            'NoBox',
+            'NoMargin',
+            'NoModifier',
+            'NoTicks',
+            'NoTicks3',
+            'NoZero',
+            'NoZeroFormat',
+            'None',
+            'OR',
+            'OmitFormat',
+            'OmitTick',
+            'OmitTickInterval',
+            'OmitTickIntervals',
+            'OutTicks',
+            'Ox',
+            'Oy',
+            'Palatino',
+            'PaletteTicks',
+            'Pen',
+            'PenMargin',
+            'PenMargins',
+            'Pentype',
+            'Portrait',
+            'RadialShade',
+            'RadialShadeDraw',
+            'Rainbow',
+            'Range',
+            'Relative',
+            'Right',
+            'RightTicks',
+            'Rotate',
+            'Round',
+            'SQR',
+            'Scale',
+            'ScaleX',
+            'ScaleY',
+            'ScaleZ',
+            'Seascape',
+            'Shift',
+            'Sin',
+            'Slant',
+            'Spline',
+            'StickIntervalMarker',
+            'Straight',
+            'Symbol',
+            'Tan',
+            'TeXify',
+            'Ticks',
+            'Ticks3',
+            'TildeIntervalMarker',
+            'TimesRoman',
+            'Top',
+            'TrueMargin',
+            'UnFill',
+            'UpsideDown',
+            'Wheel',
+            'X',
+            'XEquals',
+            'XOR',
+            'XY',
+            'XYEquals',
+            'XYZero',
+            'XYgrid',
+            'XZEquals',
+            'XZZero',
+            'XZero',
+            'XZgrid',
+            'Y',
+            'YEquals',
+            'YXgrid',
+            'YZ',
+            'YZEquals',
+            'YZZero',
+            'YZero',
+            'YZgrid',
+            'Yn',
+            'Z',
+            'ZX',
+            'ZXgrid',
+            'ZYgrid',
+            'ZapfChancery',
+            'ZapfDingbats',
+            '_begingroup3',
+            '_cputime',
+            '_draw',
+            '_eval',
+            '_image',
+            '_labelpath',
+            '_projection',
+            '_strokepath',
+            '_texpath',
+            'aCos',
+            'aSin',
+            'aTan',
+            'abort',
+            'abs',
+            'accel',
+            'acos',
+            'acosh',
+            'acot',
+            'acsc',
+            'activatequote',
+            'add',
+            'addArrow',
+            'addMargins',
+            'addSaveFunction',
+            'addpenarc',
+            'addpenline',
+            'adjust',
+            'alias',
+            'align',
+            'all',
+            'altitude',
+            'angabscissa',
+            'angle',
+            'angpoint',
+            'animate',
+            'annotate',
+            'anticomplementary',
+            'antipedal',
+            'apply',
+            'approximate',
+            'arc',
+            'arcarrowsize',
+            'arccircle',
+            'arcdir',
+            'arcfromcenter',
+            'arcfromfocus',
+            'arclength',
+            'arcnodesnumber',
+            'arcpoint',
+            'arcsubtended',
+            'arcsubtendedcenter',
+            'arctime',
+            'arctopath',
+            'array',
+            'arrow',
+            'arrow2',
+            'arrowbase',
+            'arrowbasepoints',
+            'arrowsize',
+            'asec',
+            'asin',
+            'asinh',
+            'ask',
+            'assert',
+            'asy',
+            'asycode',
+            'asydir',
+            'asyfigure',
+            'asyfilecode',
+            'asyinclude',
+            'asywrite',
+            'atan',
+            'atan2',
+            'atanh',
+            'atbreakpoint',
+            'atexit',
+            'attach',
+            'attract',
+            'atupdate',
+            'autoformat',
+            'autoscale',
+            'autoscale3',
+            'axes',
+            'axes3',
+            'axialshade',
+            'axis',
+            'axiscoverage',
+            'azimuth',
+            'babel',
+            'bangles',
+            'bar',
+            'barmarksize',
+            'barsize',
+            'baseline',
+            'bbox',
+            'beep',
+            'begin',
+            'beginclip',
+            'begingroup',
+            'beginpoint',
+            'between',
+            'bevel',
+            'bezier',
+            'bezierP',
+            'bezierPP',
+            'bezierPPP',
+            'bezulate',
+            'bibliography',
+            'bibliographystyle',
+            'binomial',
+            'binput',
+            'bins',
+            'bisector',
+            'bisectorpoint',
+            'bispline',
+            'blend',
+            'blockconnector',
+            'boutput',
+            'box',
+            'breakpoint',
+            'breakpoints',
+            'brick',
+            'buildRestoreDefaults',
+            'buildRestoreThunk',
+            'buildcycle',
+            'bulletcolor',
+            'byte',
+            'calculateScaling',
+            'canonical',
+            'canonicalcartesiansystem',
+            'cartesiansystem',
+            'case1',
+            'case2',
+            'case3',
+            'case4',
+            'cbrt',
+            'cd',
+            'ceil',
+            'center',
+            'centerToFocus',
+            'centroid',
+            'cevian',
+            'change2',
+            'changecoordsys',
+            'checkSegment',
+            'checkconditionlength',
+            'checker',
+            'checkincreasing',
+            'checklengths',
+            'checkposition',
+            'checktriangle',
+            'choose',
+            'circlebarframe',
+            'circlemarkradius',
+            'circlenodesnumber',
+            'circumcenter',
+            'circumcircle',
+            'clamped',
+            'clear',
+            'clip',
+            'clipdraw',
+            'close',
+            'cmyk',
+            'code',
+            'colatitude',
+            'collect',
+            'collinear',
+            'color',
+            'colorless',
+            'colors',
+            'colorspace',
+            'comma',
+            'compassmark',
+            'complement',
+            'complementary',
+            'concat',
+            'concurrent',
+            'cone',
+            'conicnodesnumber',
+            'conictype',
+            'conj',
+            'connect',
+            'connected',
+            'connectedindex',
+            'containmentTree',
+            'contains',
+            'contour',
+            'contour3',
+            'contouredges',
+            'controlSpecifier',
+            'convert',
+            'coordinates',
+            'copy',
+            'copyPairOrTriple',
+            'cos',
+            'cosh',
+            'cot',
+            'countIntersections',
+            'crop',
+            'cropcode',
+            'cross',
+            'crossframe',
+            'crosshatch',
+            'crossmarksize',
+            'csc',
+            'cubicroots',
+            'curabscissa',
+            'curlSpecifier',
+            'curpoint',
+            'currentarrow',
+            'currentexitfunction',
+            'currentmomarrow',
+            'currentpolarconicroutine',
+            'curve',
+            'cut',
+            'cutafter',
+            'cutbefore',
+            'cyclic',
+            'cylinder',
+            'deactivatequote',
+            'debugger',
+            'deconstruct',
+            'defaultdir',
+            'defined',
+            'degenerate',
+            'degrees',
+            'delete',
+            'deletepreamble',
+            'determinant',
+            'diagonal',
+            'diamond',
+            'diffdiv',
+            'dir',
+            'dirSpecifier',
+            'dirtime',
+            'display',
+            'distance',
+            'divisors',
+            'do_overpaint',
+            'dotsize',
+            'downcase',
+            'draw',
+            'drawAll',
+            'drawDoubleLine',
+            'drawFermion',
+            'drawGhost',
+            'drawGluon',
+            'drawMomArrow',
+            'drawPRCcylinder',
+            'drawPRCdisk',
+            'drawPRCsphere',
+            'drawPRCtube',
+            'drawPhoton',
+            'drawScalar',
+            'drawVertex',
+            'drawVertexBox',
+            'drawVertexBoxO',
+            'drawVertexBoxX',
+            'drawVertexO',
+            'drawVertexOX',
+            'drawVertexTriangle',
+            'drawVertexTriangleO',
+            'drawVertexX',
+            'drawarrow',
+            'drawarrow2',
+            'drawline',
+            'drawpixel',
+            'drawtick',
+            'duplicate',
+            'elle',
+            'ellipsenodesnumber',
+            'embed',
+            'embed3',
+            'empty',
+            'enclose',
+            'end',
+            'endScript',
+            'endclip',
+            'endgroup',
+            'endgroup3',
+            'endl',
+            'endpoint',
+            'endpoints',
+            'eof',
+            'eol',
+            'equation',
+            'equations',
+            'erase',
+            'erasestep',
+            'erf',
+            'erfc',
+            'error',
+            'errorbar',
+            'errorbars',
+            'eval',
+            'excenter',
+            'excircle',
+            'exit',
+            'exitXasyMode',
+            'exitfunction',
+            'exp',
+            'expfactors',
+            'expi',
+            'expm1',
+            'exradius',
+            'extend',
+            'extension',
+            'extouch',
+            'fabs',
+            'factorial',
+            'fermat',
+            'fft',
+            'fhorner',
+            'figure',
+            'filecode',
+            'fill',
+            'filldraw',
+            'filloutside',
+            'fillrule',
+            'find',
+            'finite',
+            'finiteDifferenceJacobian',
+            'firstcut',
+            'firstframe',
+            'fit',
+            'fit2',
+            'fixedscaling',
+            'floor',
+            'flush',
+            'fmdefaults',
+            'fmod',
+            'focusToCenter',
+            'font',
+            'fontcommand',
+            'fontsize',
+            'foot',
+            'format',
+            'frac',
+            'frequency',
+            'fromCenter',
+            'fromFocus',
+            'fspline',
+            'functionshade',
+            'gamma',
+            'generate_random_backtrace',
+            'generateticks',
+            'gergonne',
+            'getc',
+            'getint',
+            'getpair',
+            'getreal',
+            'getstring',
+            'gettriple',
+            'gluon',
+            'gouraudshade',
+            'graph',
+            'graphic',
+            'gray',
+            'grestore',
+            'grid',
+            'gsave',
+            'halfbox',
+            'hatch',
+            'hdiffdiv',
+            'hermite',
+            'hex',
+            'histogram',
+            'history',
+            'hline',
+            'hprojection',
+            'hyperbolanodesnumber',
+            'hyperlink',
+            'hypot',
+            'identity',
+            'image',
+            'incenter',
+            'incentral',
+            'incircle',
+            'increasing',
+            'incrementposition',
+            'indexedfigure',
+            'initXasyMode',
+            'initdefaults',
+            'input',
+            'inradius',
+            'insert',
+            'inside',
+            'integrate',
+            'interactive',
+            'interior',
+            'interp',
+            'interpolate',
+            'intersect',
+            'intersection',
+            'intersectionpoint',
+            'intersectionpoints',
+            'intersections',
+            'intouch',
+            'inverse',
+            'invisible',
+            'is3D',
+            'isCCW',
+            'isDuplicate',
+            'isogonal',
+            'isogonalconjugate',
+            'isotomic',
+            'isotomicconjugate',
+            'isparabola',
+            'italic',
+            'item',
+            'jobname',
+            'kurtosis',
+            'kurtosisexcess',
+            'label',
+            'labelaxis',
+            'labelmargin',
+            'labelpath',
+            'labels',
+            'labeltick',
+            'labelx',
+            'labelx3',
+            'labely',
+            'labely3',
+            'labelz',
+            'labelz3',
+            'lastcut',
+            'latex',
+            'latitude',
+            'latticeshade',
+            'layer',
+            'layout',
+            'ldexp',
+            'leastsquares',
+            'legend',
+            'legenditem',
+            'length',
+            'lexorder',
+            'lift',
+            'limits',
+            'linear',
+            'linecap',
+            'lineinversion',
+            'linejoin',
+            'linemargin',
+            'lineskip',
+            'linetype',
+            'linewidth',
+            'link',
+            'list',
+            'lm_enorm',
+            'lm_evaluate_default',
+            'lm_lmdif',
+            'lm_lmpar',
+            'lm_minimize',
+            'lm_print_default',
+            'lm_print_quiet',
+            'lm_qrfac',
+            'lm_qrsolv',
+            'locale',
+            'locate',
+            'locatefile',
+            'location',
+            'log',
+            'log10',
+            'log1p',
+            'logaxiscoverage',
+            'longitude',
+            'lookup',
+            'makeNode',
+            'makedraw',
+            'makepen',
+            'map',
+            'margin',
+            'markangle',
+            'markarc',
+            'markinterval',
+            'marknodes',
+            'markrightangle',
+            'markuniform',
+            'masscenter',
+            'massformat',
+            'math',
+            'max',
+            'max3',
+            'maxAfterTransform',
+            'maxbezier',
+            'maxbound',
+            'maxcoords',
+            'maxlength',
+            'maxratio',
+            'maxtimes',
+            'mean',
+            'medial',
+            'median',
+            'midpoint',
+            'min',
+            'min3',
+            'minAfterTransform',
+            'minbezier',
+            'minbound',
+            'minipage',
+            'minratio',
+            'mintimes',
+            'miterlimit',
+            'mktemp',
+            'momArrowPath',
+            'momarrowsize',
+            'monotonic',
+            'multifigure',
+            'nativeformat',
+            'natural',
+            'needshipout',
+            'newl',
+            'newpage',
+            'newslide',
+            'newton',
+            'newtree',
+            'nextframe',
+            'nextnormal',
+            'nextpage',
+            'nib',
+            'nodabscissa',
+            'none',
+            'norm',
+            'normalvideo',
+            'notaknot',
+            'nowarn',
+            'numberpage',
+            'nurb',
+            'offset',
+            'onpath',
+            'opacity',
+            'opposite',
+            'orientation',
+            'origin',
+            'orthic',
+            'orthocentercenter',
+            'outformat',
+            'outline',
+            'outname',
+            'outprefix',
+            'output',
+            'overloadedMessage',
+            'overwrite',
+            'pack',
+            'pad',
+            'pairs',
+            'palette',
+            'parabolanodesnumber',
+            'parallel',
+            'parallelogram',
+            'partialsum',
+            'pattern',
+            'pause',
+            'pdf',
+            'pedal',
+            'periodic',
+            'perp',
+            'perpendicular',
+            'perpendicularmark',
+            'phantom',
+            'phi1',
+            'phi2',
+            'phi3',
+            'photon',
+            'piecewisestraight',
+            'polar',
+            'polarconicroutine',
+            'polargraph',
+            'polygon',
+            'postcontrol',
+            'postscript',
+            'pow10',
+            'ppoint',
+            'prc',
+            'prc0',
+            'precision',
+            'precontrol',
+            'prepend',
+            'printBytecode',
+            'print_random_addresses',
+            'project',
+            'purge',
+            'pwhermite',
+            'quadrant',
+            'quadraticroots',
+            'quantize',
+            'quarticroots',
+            'quotient',
+            'radialshade',
+            'radians',
+            'radicalcenter',
+            'radicalline',
+            'radius',
+            'rand',
+            'randompath',
+            'rd',
+            'readline',
+            'realmult',
+            'realquarticroots',
+            'rectangle',
+            'rectangular',
+            'rectify',
+            'reflect',
+            'relabscissa',
+            'relative',
+            'relativedistance',
+            'reldir',
+            'relpoint',
+            'reltime',
+            'remainder',
+            'remark',
+            'removeDuplicates',
+            'rename',
+            'replace',
+            'report',
+            'resetdefaultpen',
+            'restore',
+            'restoredefaults',
+            'reverse',
+            'reversevideo',
+            'rf',
+            'rfind',
+            'rgb',
+            'rgba',
+            'rgbint',
+            'rms',
+            'rotate',
+            'rotateO',
+            'rotation',
+            'round',
+            'roundbox',
+            'roundedpath',
+            'roundrectangle',
+            'same',
+            'samecoordsys',
+            'sameside',
+            'sample',
+            'save',
+            'savedefaults',
+            'saveline',
+            'scale',
+            'scale3',
+            'scaleO',
+            'scaleless',
+            'search',
+            'searchindex',
+            'searchtree',
+            'sec',
+            'secondaryX',
+            'secondaryY',
+            'seconds',
+            'section',
+            'sector',
+            'seek',
+            'seekeof',
+            'sequence',
+            'setcontour',
+            'setpens',
+            'sgn',
+            'sgnd',
+            'sharpangle',
+            'sharpdegrees',
+            'shift',
+            'shiftless',
+            'shipout',
+            'shipout3',
+            'show',
+            'simeq',
+            'simpson',
+            'sin',
+            'sinh',
+            'size',
+            'size3',
+            'skewness',
+            'skip',
+            'slant',
+            'sleep',
+            'slope',
+            'slopefield',
+            'solve',
+            'solveBVP',
+            'sort',
+            'sourceline',
+            'sphere',
+            'split',
+            'sqrt',
+            'square',
+            'srand',
+            'standardizecoordsys',
+            'startScript',
+            'stdev',
+            'step',
+            'stickframe',
+            'stickmarksize',
+            'stickmarkspace',
+            'stop',
+            'straight',
+            'straightness',
+            'stripdirectory',
+            'stripextension',
+            'stripfile',
+            'stripsuffix',
+            'strokepath',
+            'subdivide',
+            'subitem',
+            'subpath',
+            'substr',
+            'sum',
+            'symmedial',
+            'symmedian',
+            'system',
+            'tab',
+            'tableau',
+            'tan',
+            'tangent',
+            'tangential',
+            'tangents',
+            'tanh',
+            'tell',
+            'tensorshade',
+            'tex',
+            'texcolor',
+            'texify',
+            'texpath',
+            'texpreamble',
+            'texreset',
+            'texshipout',
+            'texsize',
+            'textpath',
+            'thick',
+            'thin',
+            'tick',
+            'tickMax',
+            'tickMax3',
+            'tickMin',
+            'tickMin3',
+            'ticklabelshift',
+            'tildeframe',
+            'tildemarksize',
+            'tile',
+            'tiling',
+            'time',
+            'times',
+            'title',
+            'titlepage',
+            'topbox',
+            'transpose',
+            'trembleFuzz',
+            'triangleAbc',
+            'triangleabc',
+            'triangulate',
+            'tricoef',
+            'tridiagonal',
+            'trim',
+            'truepoint',
+            'tube',
+            'uncycle',
+            'unfill',
+            'uniform',
+            'unique',
+            'unit',
+            'unitrand',
+            'unitsize',
+            'unityroot',
+            'unstraighten',
+            'upcase',
+            'updatefunction',
+            'uperiodic',
+            'upscale',
+            'uptodate',
+            'usepackage',
+            'usersetting',
+            'usetypescript',
+            'usleep',
+            'value',
+            'variance',
+            'variancebiased',
+            'vbox',
+            'vectorfield',
+            'verbatim',
+            'view',
+            'vperiodic',
+            'vprojection',
+            'warn',
+            'warning',
+            'windingnumber',
+            'write',
+            'xaxis',
+            'xaxis3',
+            'xaxis3At',
+            'xaxisAt',
+            'xequals',
+            'xinput',
+            'xlimits',
+            'xoutput',
+            'xpart',
+            'xscale',
+            'xscaleO',
+            'xtick',
+            'xtick3',
+            'xtrans',
+            'yaxis',
+            'yaxis3',
+            'yaxis3At',
+            'yaxisAt',
+            'yequals',
+            'ylimits',
+            'ypart',
+            'yscale',
+            'yscaleO',
+            'ytick',
+            'ytick3',
+            'ytrans',
+            'zaxis3',
+            'zaxis3At',
+            'zero',
+            'zero3',
+            'zlimits',
+            'zpart',
+            'ztick',
+            'ztick3',
+            'ztrans'
+        ),
+
+        4 => array(
+            'AliceBlue',
+            'Align',
+            'Allow',
+            'AntiqueWhite',
+            'Apricot',
+            'Aqua',
+            'Aquamarine',
+            'Aspect',
+            'Azure',
+            'BeginPoint',
+            'Beige',
+            'Bisque',
+            'Bittersweet',
+            'Black',
+            'BlanchedAlmond',
+            'Blue',
+            'BlueGreen',
+            'BlueViolet',
+            'Both',
+            'BrickRed',
+            'Brown',
+            'BurlyWood',
+            'BurntOrange',
+            'CCW',
+            'CW',
+            'CadetBlue',
+            'CarnationPink',
+            'Center',
+            'Centered',
+            'Cerulean',
+            'Chartreuse',
+            'Chocolate',
+            'Coeff',
+            'Coral',
+            'CornflowerBlue',
+            'Cornsilk',
+            'Crimson',
+            'Crop',
+            'Cyan',
+            'Dandelion',
+            'DarkBlue',
+            'DarkCyan',
+            'DarkGoldenrod',
+            'DarkGray',
+            'DarkGreen',
+            'DarkKhaki',
+            'DarkMagenta',
+            'DarkOliveGreen',
+            'DarkOrange',
+            'DarkOrchid',
+            'DarkRed',
+            'DarkSalmon',
+            'DarkSeaGreen',
+            'DarkSlateBlue',
+            'DarkSlateGray',
+            'DarkTurquoise',
+            'DarkViolet',
+            'DeepPink',
+            'DeepSkyBlue',
+            'DefaultHead',
+            'DimGray',
+            'DodgerBlue',
+            'Down',
+            'E',
+            'ENE',
+            'EPS',
+            'ESE',
+            'E_Euler',
+            'E_PC',
+            'E_RK2',
+            'E_RK3BS',
+            'Emerald',
+            'EndPoint',
+            'Euler',
+            'FireBrick',
+            'FloralWhite',
+            'ForestGreen',
+            'Fuchsia',
+            'Gainsboro',
+            'GhostWhite',
+            'Gold',
+            'Goldenrod',
+            'Gray',
+            'Green',
+            'GreenYellow',
+            'Honeydew',
+            'Horizontal',
+            'HotPink',
+            'I',
+            'IgnoreAspect',
+            'IndianRed',
+            'Indigo',
+            'Ivory',
+            'JOIN_IN',
+            'JOIN_OUT',
+            'JungleGreen',
+            'Khaki',
+            'LM_DWARF',
+            'LM_MACHEP',
+            'LM_SQRT_DWARF',
+            'LM_SQRT_GIANT',
+            'LM_USERTOL',
+            'Lavender',
+            'LavenderBlush',
+            'LawnGreen',
+            'LeftJustified',
+            'LeftSide',
+            'LemonChiffon',
+            'LightBlue',
+            'LightCoral',
+            'LightCyan',
+            'LightGoldenrodYellow',
+            'LightGreen',
+            'LightGrey',
+            'LightPink',
+            'LightSalmon',
+            'LightSeaGreen',
+            'LightSkyBlue',
+            'LightSlateGray',
+            'LightSteelBlue',
+            'LightYellow',
+            'Lime',
+            'LimeGreen',
+            'Linen',
+            'Logarithmic',
+            'Magenta',
+            'Mahogany',
+            'MarkFill',
+            'Maroon',
+            'Max',
+            'MediumAquamarine',
+            'MediumBlue',
+            'MediumOrchid',
+            'MediumPurple',
+            'MediumSeaGreen',
+            'MediumSlateBlue',
+            'MediumSpringGreen',
+            'MediumTurquoise',
+            'MediumVioletRed',
+            'Melon',
+            'MidPoint',
+            'MidnightBlue',
+            'Min',
+            'MintCream',
+            'MistyRose',
+            'Moccasin',
+            'Move',
+            'MoveQuiet',
+            'Mulberry',
+            'N',
+            'NE',
+            'NNE',
+            'NNW',
+            'NW',
+            'NavajoWhite',
+            'Navy',
+            'NavyBlue',
+            'NoAlign',
+            'NoCrop',
+            'NoFill',
+            'NoSide',
+            'OldLace',
+            'Olive',
+            'OliveDrab',
+            'OliveGreen',
+            'Orange',
+            'OrangeRed',
+            'Orchid',
+            'PC',
+            'PaleGoldenrod',
+            'PaleGreen',
+            'PaleTurquoise',
+            'PaleVioletRed',
+            'PapayaWhip',
+            'Peach',
+            'PeachPuff',
+            'Periwinkle',
+            'Peru',
+            'PineGreen',
+            'Pink',
+            'Plum',
+            'PowderBlue',
+            'ProcessBlue',
+            'Purple',
+            'RK2',
+            'RK3',
+            'RK3BS',
+            'RK4',
+            'RK5',
+            'RK5DP',
+            'RK5F',
+            'RawSienna',
+            'Red',
+            'RedOrange',
+            'RedViolet',
+            'Rhodamine',
+            'RightJustified',
+            'RightSide',
+            'RosyBrown',
+            'RoyalBlue',
+            'RoyalPurple',
+            'RubineRed',
+            'S',
+            'SE',
+            'SSE',
+            'SSW',
+            'SW',
+            'SaddleBrown',
+            'Salmon',
+            'SandyBrown',
+            'SeaGreen',
+            'Seashell',
+            'Sepia',
+            'Sienna',
+            'Silver',
+            'SimpleHead',
+            'SkyBlue',
+            'SlateBlue',
+            'SlateGray',
+            'Snow',
+            'SpringGreen',
+            'SteelBlue',
+            'Suppress',
+            'SuppressQuiet',
+            'TeXHead',
+            'Teal',
+            'TealBlue',
+            'Thistle',
+            'Ticksize',
+            'Tomato',
+            'Turquoise',
+            'Up',
+            'VERSION',
+            'Value',
+            'Vertical',
+            'Violet',
+            'VioletRed',
+            'W',
+            'WNW',
+            'WSW',
+            'Wheat',
+            'White',
+            'WhiteSmoke',
+            'WildStrawberry',
+            'XYAlign',
+            'YAlign',
+            'Yellow',
+            'YellowGreen',
+            'YellowOrange',
+            'allowstepping',
+            'angularsystem',
+            'animationdelay',
+            'appendsuffix',
+            'arcarrowangle',
+            'arcarrowfactor',
+            'arrow2sizelimit',
+            'arrowangle',
+            'arrowbarb',
+            'arrowdir',
+            'arrowfactor',
+            'arrowhookfactor',
+            'arrowlength',
+            'arrowsizelimit',
+            'arrowtexfactor',
+            'authorpen',
+            'axislabelfactor',
+            'background',
+            'backgroundcolor',
+            'backgroundpen',
+            'barfactor',
+            'barmarksizefactor',
+            'basealign',
+            'baselinetemplate',
+            'beveljoin',
+            'bigvertexpen',
+            'bigvertexsize',
+            'black',
+            'blue',
+            'bm',
+            'bottom',
+            'bp',
+            'brown',
+            'bullet',
+            'byfoci',
+            'byvertices',
+            'camerafactor',
+            'chartreuse',
+            'circlemarkradiusfactor',
+            'circlenodesnumberfactor',
+            'circleprecision',
+            'circlescale',
+            'cm',
+            'codefile',
+            'codepen',
+            'codeskip',
+            'colorPen',
+            'coloredNodes',
+            'coloredSegments',
+            'conditionlength',
+            'conicnodesfactor',
+            'count',
+            'cputimeformat',
+            'crossmarksizefactor',
+            'currentcoordsys',
+            'currentlight',
+            'currentpatterns',
+            'currentpen',
+            'currentpicture',
+            'currentposition',
+            'currentprojection',
+            'curvilinearsystem',
+            'cuttings',
+            'cyan',
+            'darkblue',
+            'darkbrown',
+            'darkcyan',
+            'darkgray',
+            'darkgreen',
+            'darkgrey',
+            'darkmagenta',
+            'darkolive',
+            'darkred',
+            'dashdotted',
+            'dashed',
+            'datepen',
+            'dateskip',
+            'debuggerlines',
+            'debugging',
+            'deepblue',
+            'deepcyan',
+            'deepgray',
+            'deepgreen',
+            'deepgrey',
+            'deepmagenta',
+            'deepred',
+            'default',
+            'defaultControl',
+            'defaultS',
+            'defaultbackpen',
+            'defaultcoordsys',
+            'defaultexcursion',
+            'defaultfilename',
+            'defaultformat',
+            'defaultmassformat',
+            'defaultpen',
+            'diagnostics',
+            'differentlengths',
+            'dot',
+            'dotfactor',
+            'dotframe',
+            'dotted',
+            'doublelinepen',
+            'doublelinespacing',
+            'down',
+            'duplicateFuzz',
+            'edge',
+            'ellipsenodesnumberfactor',
+            'eps',
+            'epsgeo',
+            'epsilon',
+            'evenodd',
+            'expansionfactor',
+            'extendcap',
+            'exterior',
+            'fermionpen',
+            'figureborder',
+            'figuremattpen',
+            'file3',
+            'firstnode',
+            'firststep',
+            'foregroundcolor',
+            'fuchsia',
+            'fuzz',
+            'gapfactor',
+            'ghostpen',
+            'gluonamplitude',
+            'gluonpen',
+            'gluonratio',
+            'green',
+            'grey',
+            'hatchepsilon',
+            'havepagenumber',
+            'heavyblue',
+            'heavycyan',
+            'heavygray',
+            'heavygreen',
+            'heavygrey',
+            'heavymagenta',
+            'heavyred',
+            'hwratio',
+            'hyperbolanodesnumberfactor',
+            'identity4',
+            'ignore',
+            'inXasyMode',
+            'inch',
+            'inches',
+            'includegraphicscommand',
+            'inf',
+            'infinity',
+            'institutionpen',
+            'intMax',
+            'intMin',
+            'invert',
+            'itempen',
+            'itemskip',
+            'itemstep',
+            'landscape',
+            'lastnode',
+            'left',
+            'legendhskip',
+            'legendlinelength',
+            'legendmargin',
+            'legendmarkersize',
+            'legendmaxrelativewidth',
+            'legendvskip',
+            'lightblue',
+            'lightcyan',
+            'lightgray',
+            'lightgreen',
+            'lightgrey',
+            'lightmagenta',
+            'lightolive',
+            'lightred',
+            'lightyellow',
+            'lm_infmsg',
+            'lm_shortmsg',
+            'longdashdotted',
+            'longdashed',
+            'magenta',
+            'magneticRadius',
+            'mantissaBits',
+            'markangleradius',
+            'markangleradiusfactor',
+            'markanglespace',
+            'markanglespacefactor',
+            'mediumblue',
+            'mediumcyan',
+            'mediumgray',
+            'mediumgreen',
+            'mediumgrey',
+            'mediummagenta',
+            'mediumred',
+            'mediumyellow',
+            'middle',
+            'minDistDefault',
+            'minblockheight',
+            'minblockwidth',
+            'mincirclediameter',
+            'minipagemargin',
+            'minipagewidth',
+            'minvertexangle',
+            'miterjoin',
+            'mm',
+            'momarrowfactor',
+            'momarrowlength',
+            'momarrowmargin',
+            'momarrowoffset',
+            'momarrowpen',
+            'monoPen',
+            'morepoints',
+            'nCircle',
+            'newbulletcolor',
+            'ngraph',
+            'nil',
+            'nmesh',
+            'nobasealign',
+            'nodeMarginDefault',
+            'nodesystem',
+            'nomarker',
+            'nopoint',
+            'noprimary',
+            'nullpath',
+            'nullpen',
+            'numarray',
+            'ocgindex',
+            'oldbulletcolor',
+            'olive',
+            'orange',
+            'overpaint',
+            'page',
+            'pageheight',
+            'pagemargin',
+            'pagenumberalign',
+            'pagenumberpen',
+            'pagenumberposition',
+            'pagewidth',
+            'paleblue',
+            'palecyan',
+            'palegray',
+            'palegreen',
+            'palegrey',
+
+            'palemagenta',
+            'palered',
+            'paleyellow',
+            'parabolanodesnumberfactor',
+            'perpfactor',
+            'phi',
+            'photonamplitude',
+            'photonpen',
+            'photonratio',
+            'pi',
+            'pink',
+            'plain',
+            'plain_bounds',
+            'plain_scaling',
+            'plus',
+            'preamblenodes',
+            'pt',
+            'purple',
+            'r3',
+            'r4a',
+            'r4b',
+            'randMax',
+            'realDigits',
+            'realEpsilon',
+            'realMax',
+            'realMin',
+            'red',
+            'relativesystem',
+            'right',
+            'roundcap',
+            'roundjoin',
+            'royalblue',
+            'salmon',
+            'saveFunctions',
+            'scalarpen',
+            'sequencereal',
+            'settings',
+            'shipped',
+            'signedtrailingzero',
+            'solid',
+            'springgreen',
+            'sqrtEpsilon',
+            'squarecap',
+            'squarepen',
+            'startposition',
+            'stdin',
+            'stdout',
+            'stepfactor',
+            'stepfraction',
+            'steppagenumberpen',
+            'stepping',
+            'stickmarksizefactor',
+            'stickmarkspacefactor',
+            'swap',
+            'textpen',
+            'ticksize',
+            'tildemarksizefactor',
+            'tinv',
+            'titlealign',
+            'titlepagepen',
+            'titlepageposition',
+            'titlepen',
+            'titleskip',
+            'top',
+            'trailingzero',
+            'treeLevelStep',
+            'treeMinNodeWidth',
+            'treeNodeStep',
+            'trembleAngle',
+            'trembleFrequency',
+            'trembleRandom',
+            'undefined',
+            'unitcircle',
+            'unitsquare',
+            'up',
+            'urlpen',
+            'urlskip',
+            'version',
+            'vertexpen',
+            'vertexsize',
+            'viewportmargin',
+            'viewportsize',
+            'vline',
+            'white',
+            'wye',
+            'xformStack',
+            'yellow',
+            'ylabelwidth',
+            'zerotickfuzz',
+            'zerowinding'
+        )
+    ),
+    'SYMBOLS' => array(
+        0 => array(
+            '(', ')', '{', '}', '[', ']'
+        ),
+        1 => array('<', '>', '='),
+        2 => array('+', '-', '*', '/', '%'),
+        3 => array('!', '^', '&', '|'),
+        4 => array('?', ':', ';'),
+        5 => array('..')
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #990000;',
+            4 => 'color: #009900; font-weight: bold;'
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #666666;',
+            2 => 'color: #339900;',
+            'MULTI' => 'color: #ff0000; 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: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #008000;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #FF0000;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #0000dd;',
+            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+        ),
+        'METHODS' => array(
+            1 => 'color: #007788;',
+            2 => 'color: #007788;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;',
+            1 => 'color: #000080;',
+            2 => 'color: #000040;',
+            3 => 'color: #000040;',
+            4 => 'color: #008080;',
+            5 => 'color: #009080;'
+        ),
+        'REGEXPS' => array(),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+    ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        2 => '::'
+    ),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])",
+            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
+        )
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/autoconf.php b/vendor/geshi/geshi/src/geshi/autoconf.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/autoconf.php
rename to vendor/geshi/geshi/src/geshi/autoconf.php
index 40bb90f53233ffd38bd02b45ce2f7b61f25f781f..9c1cf125bf0ed7f6d4656ec3ca03548eb3fbfe76 100644
--- a/vendor/easybook/geshi/geshi/autoconf.php
+++ b/vendor/geshi/geshi/src/geshi/autoconf.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Mihai Vasilian (grayasm@gmail.com)
  * Copyright: (c) 2010 Mihai Vasilian
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/01/25
  *
  * autoconf language file for GeSHi.
@@ -508,4 +508,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/autohotkey.php b/vendor/geshi/geshi/src/geshi/autohotkey.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/autohotkey.php
rename to vendor/geshi/geshi/src/geshi/autohotkey.php
index d907927b4017d995a31beff7b92f54f7b2001f6f..4a47d730250a718160c14a412bab490314dc5e55 100644
--- a/vendor/easybook/geshi/geshi/autohotkey.php
+++ b/vendor/geshi/geshi/src/geshi/autohotkey.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Naveen Garg (naveen.garg@gmail.com)
  * Copyright: (c) 2009 Naveen Garg and GeSHi
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/06/11
  *
  * Autohotkey language file for GeSHi.
@@ -369,4 +369,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/autoit.php b/vendor/geshi/geshi/src/geshi/autoit.php
new file mode 100644
index 0000000000000000000000000000000000000000..5742afef5f6153346a05b1af650399fe0255015d
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/autoit.php
@@ -0,0 +1,1888 @@
+<?php
+/*************************************************************************************
+ * autoit.php
+ * --------
+ * Author: big_daddy, guinness & Tlem
+ * Copyright: (c) 2006-2015
+ * Release Version: 1.0.9.0
+ * Date Started: 2006/01/26
+ *
+ * AutoIt: v3.3.14.2
+ * Updated: 2015/09/18
+ *
+ * AutoIt language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * Release 1.0.8.11 (2014/01/03) by guinness
+ * - Added: Split directives so as to point to their specific URL.
+ * - Fixed: #EndRegion not highlighting correctly.
+ * - Fixed: AutoItWrapper directives and settings were incorrectly highlighting.
+ * - Fixed: Highlighting of hex values and complex math values.
+ * - Fixed: Include file name to the correct colour scheme.
+ * - Fixed: Incorrectly highlighting the _ (underscore).
+ * - Fixed: Upper case #include being incorrectly highlighted.
+ * - Fixed: Variables and macros were being incorrectly highlighted.
+ * - Fixed: Generation based on AutoIt_php.ini file to commit only on specific GeSHi change.
+ * Release 1.0.8.1 (2008/09/15) by Tlem
+ * - Added: http://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm
+ * - Fixed: The link on functions will now correctly re-direct to
+ * Release 1.0.7.20 (2006/01/26)
+ * - Initial Release
+ *
+ * TODO:
+ * ----------
+ * - None
+ *
+ * Reference: http://www.autoitscript.com/autoit3/docs/
+ *
+ *************************************************************************************
+ *
+ *     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' => 'AutoIt',
+    'COMMENT_SINGLE' => array(
+        1 => ';',
+        2 => ';~'
+    ),
+    'COMMENT_MULTI' => array(
+        '#comments-start' => '#comments-end',
+        '#cs' => '#ce'),
+    'COMMENT_REGEXP' => array(
+        0 => '/(?<=(i|I)nclude)\s*<.*?>/'
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    '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', 'Null', 'Or', 'ReDim',
+            'Return', 'Select', 'Static', 'Step', 'Switch', 'Then', 'To', 'True',
+            'Until', 'Volatile', 'WEnd', 'While', 'With'
+        ),
+        2 => array(
+            '@AppDataCommonDir', '@AppDataDir', '@AutoItExe', '@AutoItPID',
+            '@AutoItVersion', '@AutoItX64', '@COM_EventObj', '@CommonFilesDir',
+            '@Compiled', '@ComputerName', '@ComSpec', '@CPUArch', '@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', '@IPAddress1',
+            '@IPAddress2', '@IPAddress3', '@IPAddress4', '@KBLayout', '@LF',
+            '@LocalAppDataDir', '@LogonDNSDomain', '@LogonDomain', '@LogonServer',
+            '@MDAY', '@MIN', '@MON', '@MSEC', '@MUILang', '@MyDocumentsDir',
+            '@NumParams', '@OSArch', '@OSBuild', '@OSLang', '@OSServicePack',
+            '@OSType', '@OSVersion', '@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', 'AdlibRegister', 'AdlibUnRegister', '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', 'DllCallAddress',
+            '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', 'FileFlush', 'FileGetAttrib', 'FileGetEncoding',
+            'FileGetLongName', 'FileGetPos', 'FileGetShortcut', 'FileGetShortName',
+            'FileGetSize', 'FileGetTime', 'FileGetVersion', 'FileInstall',
+            'FileMove', 'FileOpen', 'FileOpenDialog', 'FileRead', 'FileReadLine',
+            'FileReadToArray', 'FileRecycle', 'FileRecycleEmpty', 'FileSaveDialog',
+            'FileSelectFolder', 'FileSetAttrib', 'FileSetEnd', 'FileSetPos',
+            'FileSetTime', 'FileWrite', 'FileWriteLine', 'Floor', 'FtpSetProxy',
+            'FuncName', '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', 'GUICtrlSetDefBkColor', 'GUICtrlSetDefColor',
+            'GUICtrlSetFont', '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', 'HttpSetUserAgent',
+            'HWnd', 'InetClose', 'InetGet', 'InetGetInfo', 'InetGetSize', 'InetRead',
+            'IniDelete', 'IniRead', 'IniReadSection', 'IniReadSectionNames',
+            'IniRenameSection', 'IniWrite', 'IniWriteSection', 'InputBox', 'Int',
+            'IsAdmin', 'IsArray', 'IsBinary', 'IsBool', 'IsDeclared', 'IsDllStruct',
+            'IsFloat', 'IsFunc', 'IsHWnd', 'IsInt', 'IsKeyword', 'IsNumber', 'IsObj',
+            'IsPtr', 'IsString', 'Log', 'MemGetStats', 'Mod', 'MouseClick',
+            'MouseClickDrag', 'MouseDown', 'MouseGetCursor', 'MouseGetPos',
+            'MouseMove', 'MouseUp', 'MouseWheel', 'MsgBox', 'Number', 'ObjCreate',
+            'ObjCreateInterface', 'ObjEvent', 'ObjGet', 'ObjName',
+            'OnAutoItExitRegister', 'OnAutoItExitUnRegister', 'Opt', 'Ping',
+            'PixelChecksum', 'PixelGetColor', 'PixelSearch', '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', 'StringFromASCIIArray', 'StringInStr',
+            'StringIsAlNum', 'StringIsAlpha', 'StringIsASCII', 'StringIsDigit',
+            'StringIsFloat', 'StringIsInt', 'StringIsLower', 'StringIsSpace',
+            'StringIsUpper', 'StringIsXDigit', 'StringLeft', 'StringLen',
+            'StringLower', 'StringMid', 'StringRegExp', 'StringRegExpReplace',
+            'StringReplace', 'StringReverse', 'StringRight', 'StringSplit',
+            'StringStripCR', 'StringStripWS', 'StringToASCIIArray',
+            '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(
+            'Array1DToHistogram', 'ArrayAdd', 'ArrayBinarySearch',
+            'ArrayColDelete', 'ArrayColInsert', 'ArrayCombinations',
+            'ArrayConcatenate', 'ArrayDelete', 'ArrayDisplay', 'ArrayExtract',
+            'ArrayFindAll', 'ArrayInsert', 'ArrayMax', 'ArrayMaxIndex', 'ArrayMin',
+            'ArrayMinIndex', 'ArrayPermute', 'ArrayPop', 'ArrayPush',
+            'ArrayReverse', 'ArraySearch', 'ArrayShuffle', 'ArraySort', 'ArraySwap',
+            'ArrayToClip', 'ArrayToString', 'ArrayTranspose', 'ArrayTrim',
+            'ArrayUnique', 'Assert', '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',
+            'ColorGetCOLORREF', 'ColorGetGreen', 'ColorGetRed', 'ColorGetRGB',
+            'ColorSetCOLORREF', 'ColorSetRGB', 'Crypt_DecryptData',
+            'Crypt_DecryptFile', 'Crypt_DeriveKey', 'Crypt_DestroyKey',
+            'Crypt_EncryptData', 'Crypt_EncryptFile', 'Crypt_GenRandom',
+            'Crypt_HashData', 'Crypt_HashFile', 'Crypt_Shutdown', 'Crypt_Startup',
+            'DateAdd', 'DateDayOfWeek', 'DateDaysInMonth', 'DateDiff',
+            'DateIsLeapYear', 'DateIsValid', 'DateTimeFormat', 'DateTimeSplit',
+            'DateToDayOfWeek', 'DateToDayOfWeekISO', 'DateToDayValue',
+            'DateToMonth', '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', 'DayValueToDate',
+            'DebugBugReportEnv', 'DebugCOMError', 'DebugOut', 'DebugReport',
+            'DebugReportEx', 'DebugReportVar', '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', 'Excel_BookAttach', 'Excel_BookClose',
+            'Excel_BookList', 'Excel_BookNew', 'Excel_BookOpen',
+            'Excel_BookOpenText', 'Excel_BookSave', 'Excel_BookSaveAs',
+            'Excel_Close', 'Excel_ColumnToLetter', 'Excel_ColumnToNumber',
+            'Excel_ConvertFormula', 'Excel_Export', 'Excel_FilterGet',
+            'Excel_FilterSet', 'Excel_Open', 'Excel_PictureAdd', 'Excel_Print',
+            'Excel_RangeCopyPaste', 'Excel_RangeDelete', 'Excel_RangeFind',
+            'Excel_RangeInsert', 'Excel_RangeLinkAddRemove', 'Excel_RangeRead',
+            'Excel_RangeReplace', 'Excel_RangeSort', 'Excel_RangeValidate',
+            'Excel_RangeWrite', 'Excel_SheetAdd', 'Excel_SheetCopyMove',
+            'Excel_SheetDelete', 'Excel_SheetList', 'FileCountLines', 'FileCreate',
+            'FileListToArray', 'FileListToArrayRec', 'FilePrint',
+            'FileReadToArray', 'FileWriteFromArray', 'FileWriteLog',
+            'FileWriteToLine', 'FTP_Close', 'FTP_Command', 'FTP_Connect',
+            'FTP_DecodeInternetStatus', 'FTP_DirCreate', 'FTP_DirDelete',
+            'FTP_DirGetCurrent', 'FTP_DirPutContents', 'FTP_DirSetCurrent',
+            'FTP_FileClose', 'FTP_FileDelete', 'FTP_FileGet', 'FTP_FileGetSize',
+            'FTP_FileOpen', 'FTP_FilePut', 'FTP_FileRead', 'FTP_FileRename',
+            'FTP_FileTimeLoHiToStr', 'FTP_FindFileClose', 'FTP_FindFileFirst',
+            'FTP_FindFileNext', 'FTP_GetLastResponseInfo', 'FTP_ListToArray',
+            'FTP_ListToArray2D', 'FTP_ListToArrayEx', 'FTP_Open',
+            'FTP_ProgressDownload', 'FTP_ProgressUpload', 'FTP_SetStatusCallback',
+            'GDIPlus_ArrowCapCreate', 'GDIPlus_ArrowCapDispose',
+            'GDIPlus_ArrowCapGetFillState', 'GDIPlus_ArrowCapGetHeight',
+            'GDIPlus_ArrowCapGetMiddleInset', 'GDIPlus_ArrowCapGetWidth',
+            'GDIPlus_ArrowCapSetFillState', 'GDIPlus_ArrowCapSetHeight',
+            'GDIPlus_ArrowCapSetMiddleInset', 'GDIPlus_ArrowCapSetWidth',
+            'GDIPlus_BitmapApplyEffect', 'GDIPlus_BitmapApplyEffectEx',
+            'GDIPlus_BitmapCloneArea', 'GDIPlus_BitmapConvertFormat',
+            'GDIPlus_BitmapCreateApplyEffect',
+            'GDIPlus_BitmapCreateApplyEffectEx',
+            'GDIPlus_BitmapCreateDIBFromBitmap', 'GDIPlus_BitmapCreateFromFile',
+            'GDIPlus_BitmapCreateFromGraphics',
+            'GDIPlus_BitmapCreateFromHBITMAP', 'GDIPlus_BitmapCreateFromHICON',
+            'GDIPlus_BitmapCreateFromHICON32', 'GDIPlus_BitmapCreateFromMemory',
+            'GDIPlus_BitmapCreateFromResource', 'GDIPlus_BitmapCreateFromScan0',
+            'GDIPlus_BitmapCreateFromStream',
+            'GDIPlus_BitmapCreateHBITMAPFromBitmap', 'GDIPlus_BitmapDispose',
+            'GDIPlus_BitmapGetHistogram', 'GDIPlus_BitmapGetHistogramEx',
+            'GDIPlus_BitmapGetHistogramSize', 'GDIPlus_BitmapGetPixel',
+            'GDIPlus_BitmapLockBits', 'GDIPlus_BitmapSetPixel',
+            'GDIPlus_BitmapUnlockBits', 'GDIPlus_BrushClone',
+            'GDIPlus_BrushCreateSolid', 'GDIPlus_BrushDispose',
+            'GDIPlus_BrushGetSolidColor', 'GDIPlus_BrushGetType',
+            'GDIPlus_BrushSetSolidColor', 'GDIPlus_ColorMatrixCreate',
+            'GDIPlus_ColorMatrixCreateGrayScale',
+            'GDIPlus_ColorMatrixCreateNegative',
+            'GDIPlus_ColorMatrixCreateSaturation',
+            'GDIPlus_ColorMatrixCreateScale',
+            'GDIPlus_ColorMatrixCreateTranslate', 'GDIPlus_CustomLineCapClone',
+            'GDIPlus_CustomLineCapCreate', 'GDIPlus_CustomLineCapDispose',
+            'GDIPlus_CustomLineCapGetStrokeCaps',
+            'GDIPlus_CustomLineCapSetStrokeCaps', 'GDIPlus_Decoders',
+            'GDIPlus_DecodersGetCount', 'GDIPlus_DecodersGetSize',
+            'GDIPlus_DrawImageFX', 'GDIPlus_DrawImageFXEx',
+            'GDIPlus_DrawImagePoints', 'GDIPlus_EffectCreate',
+            'GDIPlus_EffectCreateBlur', 'GDIPlus_EffectCreateBrightnessContrast',
+            'GDIPlus_EffectCreateColorBalance', 'GDIPlus_EffectCreateColorCurve',
+            'GDIPlus_EffectCreateColorLUT', 'GDIPlus_EffectCreateColorMatrix',
+            'GDIPlus_EffectCreateHueSaturationLightness',
+            'GDIPlus_EffectCreateLevels', 'GDIPlus_EffectCreateRedEyeCorrection',
+            'GDIPlus_EffectCreateSharpen', 'GDIPlus_EffectCreateTint',
+            'GDIPlus_EffectDispose', 'GDIPlus_EffectGetParameters',
+            'GDIPlus_EffectSetParameters', 'GDIPlus_Encoders',
+            'GDIPlus_EncodersGetCLSID', 'GDIPlus_EncodersGetCount',
+            'GDIPlus_EncodersGetParamList', 'GDIPlus_EncodersGetParamListSize',
+            'GDIPlus_EncodersGetSize', 'GDIPlus_FontCreate',
+            'GDIPlus_FontDispose', 'GDIPlus_FontFamilyCreate',
+            'GDIPlus_FontFamilyCreateFromCollection',
+            'GDIPlus_FontFamilyDispose', 'GDIPlus_FontFamilyGetCellAscent',
+            'GDIPlus_FontFamilyGetCellDescent', 'GDIPlus_FontFamilyGetEmHeight',
+            'GDIPlus_FontFamilyGetLineSpacing', 'GDIPlus_FontGetHeight',
+            'GDIPlus_FontPrivateAddFont', 'GDIPlus_FontPrivateAddMemoryFont',
+            'GDIPlus_FontPrivateCollectionDispose',
+            'GDIPlus_FontPrivateCreateCollection', 'GDIPlus_GraphicsClear',
+            'GDIPlus_GraphicsCreateFromHDC', 'GDIPlus_GraphicsCreateFromHWND',
+            'GDIPlus_GraphicsDispose', 'GDIPlus_GraphicsDrawArc',
+            'GDIPlus_GraphicsDrawBezier', 'GDIPlus_GraphicsDrawClosedCurve',
+            'GDIPlus_GraphicsDrawClosedCurve2', 'GDIPlus_GraphicsDrawCurve',
+            'GDIPlus_GraphicsDrawCurve2', 'GDIPlus_GraphicsDrawEllipse',
+            'GDIPlus_GraphicsDrawImage', 'GDIPlus_GraphicsDrawImagePointsRect',
+            'GDIPlus_GraphicsDrawImageRect', 'GDIPlus_GraphicsDrawImageRectRect',
+            'GDIPlus_GraphicsDrawLine', 'GDIPlus_GraphicsDrawPath',
+            'GDIPlus_GraphicsDrawPie', 'GDIPlus_GraphicsDrawPolygon',
+            'GDIPlus_GraphicsDrawRect', 'GDIPlus_GraphicsDrawString',
+            'GDIPlus_GraphicsDrawStringEx', 'GDIPlus_GraphicsFillClosedCurve',
+            'GDIPlus_GraphicsFillClosedCurve2', 'GDIPlus_GraphicsFillEllipse',
+            'GDIPlus_GraphicsFillPath', 'GDIPlus_GraphicsFillPie',
+            'GDIPlus_GraphicsFillPolygon', 'GDIPlus_GraphicsFillRect',
+            'GDIPlus_GraphicsFillRegion', 'GDIPlus_GraphicsGetCompositingMode',
+            'GDIPlus_GraphicsGetCompositingQuality', 'GDIPlus_GraphicsGetDC',
+            'GDIPlus_GraphicsGetInterpolationMode',
+            'GDIPlus_GraphicsGetSmoothingMode', 'GDIPlus_GraphicsGetTransform',
+            'GDIPlus_GraphicsMeasureCharacterRanges',
+            'GDIPlus_GraphicsMeasureString', 'GDIPlus_GraphicsReleaseDC',
+            'GDIPlus_GraphicsResetClip', 'GDIPlus_GraphicsResetTransform',
+            'GDIPlus_GraphicsRestore', 'GDIPlus_GraphicsRotateTransform',
+            'GDIPlus_GraphicsSave', 'GDIPlus_GraphicsScaleTransform',
+            'GDIPlus_GraphicsSetClipPath', 'GDIPlus_GraphicsSetClipRect',
+            'GDIPlus_GraphicsSetClipRegion',
+            'GDIPlus_GraphicsSetCompositingMode',
+            'GDIPlus_GraphicsSetCompositingQuality',
+            'GDIPlus_GraphicsSetInterpolationMode',
+            'GDIPlus_GraphicsSetPixelOffsetMode',
+            'GDIPlus_GraphicsSetSmoothingMode',
+            'GDIPlus_GraphicsSetTextRenderingHint',
+            'GDIPlus_GraphicsSetTransform', 'GDIPlus_GraphicsTransformPoints',
+            'GDIPlus_GraphicsTranslateTransform', 'GDIPlus_HatchBrushCreate',
+            'GDIPlus_HICONCreateFromBitmap', 'GDIPlus_ImageAttributesCreate',
+            'GDIPlus_ImageAttributesDispose',
+            'GDIPlus_ImageAttributesSetColorKeys',
+            'GDIPlus_ImageAttributesSetColorMatrix', 'GDIPlus_ImageDispose',
+            'GDIPlus_ImageGetDimension', 'GDIPlus_ImageGetFlags',
+            'GDIPlus_ImageGetGraphicsContext', 'GDIPlus_ImageGetHeight',
+            'GDIPlus_ImageGetHorizontalResolution',
+            'GDIPlus_ImageGetPixelFormat', 'GDIPlus_ImageGetRawFormat',
+            'GDIPlus_ImageGetThumbnail', 'GDIPlus_ImageGetType',
+            'GDIPlus_ImageGetVerticalResolution', 'GDIPlus_ImageGetWidth',
+            'GDIPlus_ImageLoadFromFile', 'GDIPlus_ImageLoadFromStream',
+            'GDIPlus_ImageResize', 'GDIPlus_ImageRotateFlip',
+            'GDIPlus_ImageSaveToFile', 'GDIPlus_ImageSaveToFileEx',
+            'GDIPlus_ImageSaveToStream', 'GDIPlus_ImageScale',
+            'GDIPlus_LineBrushCreate', 'GDIPlus_LineBrushCreateFromRect',
+            'GDIPlus_LineBrushCreateFromRectWithAngle',
+            'GDIPlus_LineBrushGetColors', 'GDIPlus_LineBrushGetRect',
+            'GDIPlus_LineBrushMultiplyTransform',
+            'GDIPlus_LineBrushResetTransform', 'GDIPlus_LineBrushSetBlend',
+            'GDIPlus_LineBrushSetColors', 'GDIPlus_LineBrushSetGammaCorrection',
+            'GDIPlus_LineBrushSetLinearBlend', 'GDIPlus_LineBrushSetPresetBlend',
+            'GDIPlus_LineBrushSetSigmaBlend', 'GDIPlus_LineBrushSetTransform',
+            'GDIPlus_MatrixClone', 'GDIPlus_MatrixCreate',
+            'GDIPlus_MatrixDispose', 'GDIPlus_MatrixGetElements',
+            'GDIPlus_MatrixInvert', 'GDIPlus_MatrixMultiply',
+            'GDIPlus_MatrixRotate', 'GDIPlus_MatrixScale',
+            'GDIPlus_MatrixSetElements', 'GDIPlus_MatrixShear',
+            'GDIPlus_MatrixTransformPoints', 'GDIPlus_MatrixTranslate',
+            'GDIPlus_PaletteInitialize', 'GDIPlus_ParamAdd', 'GDIPlus_ParamInit',
+            'GDIPlus_ParamSize', 'GDIPlus_PathAddArc', 'GDIPlus_PathAddBezier',
+            'GDIPlus_PathAddClosedCurve', 'GDIPlus_PathAddClosedCurve2',
+            'GDIPlus_PathAddCurve', 'GDIPlus_PathAddCurve2',
+            'GDIPlus_PathAddCurve3', 'GDIPlus_PathAddEllipse',
+            'GDIPlus_PathAddLine', 'GDIPlus_PathAddLine2', 'GDIPlus_PathAddPath',
+            'GDIPlus_PathAddPie', 'GDIPlus_PathAddPolygon',
+            'GDIPlus_PathAddRectangle', 'GDIPlus_PathAddString',
+            'GDIPlus_PathBrushCreate', 'GDIPlus_PathBrushCreateFromPath',
+            'GDIPlus_PathBrushGetCenterPoint', 'GDIPlus_PathBrushGetFocusScales',
+            'GDIPlus_PathBrushGetPointCount', 'GDIPlus_PathBrushGetRect',
+            'GDIPlus_PathBrushGetWrapMode', 'GDIPlus_PathBrushMultiplyTransform',
+            'GDIPlus_PathBrushResetTransform', 'GDIPlus_PathBrushSetBlend',
+            'GDIPlus_PathBrushSetCenterColor', 'GDIPlus_PathBrushSetCenterPoint',
+            'GDIPlus_PathBrushSetFocusScales',
+            'GDIPlus_PathBrushSetGammaCorrection',
+            'GDIPlus_PathBrushSetLinearBlend', 'GDIPlus_PathBrushSetPresetBlend',
+            'GDIPlus_PathBrushSetSigmaBlend',
+            'GDIPlus_PathBrushSetSurroundColor',
+            'GDIPlus_PathBrushSetSurroundColorsWithCount',
+            'GDIPlus_PathBrushSetTransform', 'GDIPlus_PathBrushSetWrapMode',
+            'GDIPlus_PathClone', 'GDIPlus_PathCloseFigure', 'GDIPlus_PathCreate',
+            'GDIPlus_PathCreate2', 'GDIPlus_PathDispose', 'GDIPlus_PathFlatten',
+            'GDIPlus_PathGetData', 'GDIPlus_PathGetFillMode',
+            'GDIPlus_PathGetLastPoint', 'GDIPlus_PathGetPointCount',
+            'GDIPlus_PathGetPoints', 'GDIPlus_PathGetWorldBounds',
+            'GDIPlus_PathIsOutlineVisiblePoint', 'GDIPlus_PathIsVisiblePoint',
+            'GDIPlus_PathIterCreate', 'GDIPlus_PathIterDispose',
+            'GDIPlus_PathIterGetSubpathCount', 'GDIPlus_PathIterNextMarkerPath',
+            'GDIPlus_PathIterNextSubpathPath', 'GDIPlus_PathIterRewind',
+            'GDIPlus_PathReset', 'GDIPlus_PathReverse', 'GDIPlus_PathSetFillMode',
+            'GDIPlus_PathSetMarker', 'GDIPlus_PathStartFigure',
+            'GDIPlus_PathTransform', 'GDIPlus_PathWarp', 'GDIPlus_PathWiden',
+            'GDIPlus_PathWindingModeOutline', 'GDIPlus_PenCreate',
+            'GDIPlus_PenCreate2', 'GDIPlus_PenDispose', 'GDIPlus_PenGetAlignment',
+            'GDIPlus_PenGetColor', 'GDIPlus_PenGetCustomEndCap',
+            'GDIPlus_PenGetDashCap', 'GDIPlus_PenGetDashStyle',
+            'GDIPlus_PenGetEndCap', 'GDIPlus_PenGetMiterLimit',
+            'GDIPlus_PenGetWidth', 'GDIPlus_PenSetAlignment',
+            'GDIPlus_PenSetColor', 'GDIPlus_PenSetCustomEndCap',
+            'GDIPlus_PenSetDashCap', 'GDIPlus_PenSetDashStyle',
+            'GDIPlus_PenSetEndCap', 'GDIPlus_PenSetLineCap',
+            'GDIPlus_PenSetLineJoin', 'GDIPlus_PenSetMiterLimit',
+            'GDIPlus_PenSetStartCap', 'GDIPlus_PenSetWidth',
+            'GDIPlus_RectFCreate', 'GDIPlus_RegionClone',
+            'GDIPlus_RegionCombinePath', 'GDIPlus_RegionCombineRect',
+            'GDIPlus_RegionCombineRegion', 'GDIPlus_RegionCreate',
+            'GDIPlus_RegionCreateFromPath', 'GDIPlus_RegionCreateFromRect',
+            'GDIPlus_RegionDispose', 'GDIPlus_RegionGetBounds',
+            'GDIPlus_RegionGetHRgn', 'GDIPlus_RegionTransform',
+            'GDIPlus_RegionTranslate', 'GDIPlus_Shutdown', 'GDIPlus_Startup',
+            'GDIPlus_StringFormatCreate', 'GDIPlus_StringFormatDispose',
+            'GDIPlus_StringFormatGetMeasurableCharacterRangeCount',
+            'GDIPlus_StringFormatSetAlign', 'GDIPlus_StringFormatSetLineAlign',
+            'GDIPlus_StringFormatSetMeasurableCharacterRanges',
+            'GDIPlus_TextureCreate', 'GDIPlus_TextureCreate2',
+            'GDIPlus_TextureCreateIA', 'GetIP', 'GUICtrlAVI_Close',
+            'GUICtrlAVI_Create', 'GUICtrlAVI_Destroy', 'GUICtrlAVI_IsPlaying',
+            '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_GetNote',
+            'GUICtrlButton_GetNoteLength', 'GUICtrlButton_GetSplitInfo',
+            'GUICtrlButton_GetState', 'GUICtrlButton_GetText',
+            'GUICtrlButton_GetTextMargin', 'GUICtrlButton_SetCheck',
+            'GUICtrlButton_SetDontClick', 'GUICtrlButton_SetFocus',
+            'GUICtrlButton_SetImage', 'GUICtrlButton_SetImageList',
+            'GUICtrlButton_SetNote', 'GUICtrlButton_SetShield',
+            'GUICtrlButton_SetSize', 'GUICtrlButton_SetSplitInfo',
+            'GUICtrlButton_SetState', 'GUICtrlButton_SetStyle',
+            'GUICtrlButton_SetText', 'GUICtrlButton_SetTextMargin',
+            'GUICtrlButton_Show', '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_GetUnicode', '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_SetUnicode', 'GUICtrlComboBoxEx_ShowDropDown',
+            '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_GetCueBanner', '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_SetCueBanner',
+            'GUICtrlComboBox_SetCurSel', 'GUICtrlComboBox_SetDroppedWidth',
+            'GUICtrlComboBox_SetEditSel', 'GUICtrlComboBox_SetEditText',
+            'GUICtrlComboBox_SetExtendedUI',
+            'GUICtrlComboBox_SetHorizontalExtent',
+            'GUICtrlComboBox_SetItemHeight', 'GUICtrlComboBox_SetMinVisible',
+            'GUICtrlComboBox_SetTopIndex', 'GUICtrlComboBox_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_GetCueBanner', '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_SetCueBanner',
+            '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_ClickItem', '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_GetFocusedGroup', 'GUICtrlListView_GetGroupCount',
+            'GUICtrlListView_GetGroupInfo',
+            'GUICtrlListView_GetGroupInfoByIndex',
+            'GUICtrlListView_GetGroupRect',
+            '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_CalculatePopupWindowPosition',
+            '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_GetCalendarBorder',
+            'GUICtrlMonthCal_GetCalendarCount', '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_SetCalendarBorder',
+            '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_GetBarInfo', '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_SetBarInfo',
+            'GUICtrlRebar_SetBKColor', 'GUICtrlRebar_SetColorScheme',
+            'GUICtrlRebar_SetTextColor', 'GUICtrlRebar_SetToolTips',
+            'GUICtrlRebar_SetUnicodeFormat', 'GUICtrlRebar_ShowBand',
+            'GUICtrlRichEdit_AppendText', 'GUICtrlRichEdit_AutoDetectURL',
+            'GUICtrlRichEdit_CanPaste', 'GUICtrlRichEdit_CanPasteSpecial',
+            'GUICtrlRichEdit_CanRedo', 'GUICtrlRichEdit_CanUndo',
+            'GUICtrlRichEdit_ChangeFontSize', 'GUICtrlRichEdit_Copy',
+            'GUICtrlRichEdit_Create', 'GUICtrlRichEdit_Cut',
+            'GUICtrlRichEdit_Deselect', 'GUICtrlRichEdit_Destroy',
+            'GUICtrlRichEdit_EmptyUndoBuffer', 'GUICtrlRichEdit_FindText',
+            'GUICtrlRichEdit_FindTextInRange', 'GUICtrlRichEdit_GetBkColor',
+            'GUICtrlRichEdit_GetCharAttributes',
+            'GUICtrlRichEdit_GetCharBkColor', 'GUICtrlRichEdit_GetCharColor',
+            'GUICtrlRichEdit_GetCharPosFromXY',
+            'GUICtrlRichEdit_GetCharPosOfNextWord',
+            'GUICtrlRichEdit_GetCharPosOfPreviousWord',
+            'GUICtrlRichEdit_GetCharWordBreakInfo',
+            'GUICtrlRichEdit_GetFirstCharPosOnLine', 'GUICtrlRichEdit_GetFont',
+            'GUICtrlRichEdit_GetLineCount', 'GUICtrlRichEdit_GetLineLength',
+            'GUICtrlRichEdit_GetLineNumberFromCharPos',
+            'GUICtrlRichEdit_GetNextRedo', 'GUICtrlRichEdit_GetNextUndo',
+            'GUICtrlRichEdit_GetNumberOfFirstVisibleLine',
+            'GUICtrlRichEdit_GetParaAlignment',
+            'GUICtrlRichEdit_GetParaAttributes', 'GUICtrlRichEdit_GetParaBorder',
+            'GUICtrlRichEdit_GetParaIndents', 'GUICtrlRichEdit_GetParaNumbering',
+            'GUICtrlRichEdit_GetParaShading', 'GUICtrlRichEdit_GetParaSpacing',
+            'GUICtrlRichEdit_GetParaTabStops', 'GUICtrlRichEdit_GetPasswordChar',
+            'GUICtrlRichEdit_GetRECT', 'GUICtrlRichEdit_GetScrollPos',
+            'GUICtrlRichEdit_GetSel', 'GUICtrlRichEdit_GetSelAA',
+            'GUICtrlRichEdit_GetSelText', 'GUICtrlRichEdit_GetSpaceUnit',
+            'GUICtrlRichEdit_GetText', 'GUICtrlRichEdit_GetTextInLine',
+            'GUICtrlRichEdit_GetTextInRange', 'GUICtrlRichEdit_GetTextLength',
+            'GUICtrlRichEdit_GetVersion', 'GUICtrlRichEdit_GetXYFromCharPos',
+            'GUICtrlRichEdit_GetZoom', 'GUICtrlRichEdit_GotoCharPos',
+            'GUICtrlRichEdit_HideSelection', 'GUICtrlRichEdit_InsertText',
+            'GUICtrlRichEdit_IsModified', 'GUICtrlRichEdit_IsTextSelected',
+            'GUICtrlRichEdit_Paste', 'GUICtrlRichEdit_PasteSpecial',
+            'GUICtrlRichEdit_PauseRedraw', 'GUICtrlRichEdit_Redo',
+            'GUICtrlRichEdit_ReplaceText', 'GUICtrlRichEdit_ResumeRedraw',
+            'GUICtrlRichEdit_ScrollLineOrPage', 'GUICtrlRichEdit_ScrollLines',
+            'GUICtrlRichEdit_ScrollToCaret', 'GUICtrlRichEdit_SetBkColor',
+            'GUICtrlRichEdit_SetCharAttributes',
+            'GUICtrlRichEdit_SetCharBkColor', 'GUICtrlRichEdit_SetCharColor',
+            'GUICtrlRichEdit_SetEventMask', 'GUICtrlRichEdit_SetFont',
+            'GUICtrlRichEdit_SetLimitOnText', 'GUICtrlRichEdit_SetModified',
+            'GUICtrlRichEdit_SetParaAlignment',
+            'GUICtrlRichEdit_SetParaAttributes', 'GUICtrlRichEdit_SetParaBorder',
+            'GUICtrlRichEdit_SetParaIndents', 'GUICtrlRichEdit_SetParaNumbering',
+            'GUICtrlRichEdit_SetParaShading', 'GUICtrlRichEdit_SetParaSpacing',
+            'GUICtrlRichEdit_SetParaTabStops', 'GUICtrlRichEdit_SetPasswordChar',
+            'GUICtrlRichEdit_SetReadOnly', 'GUICtrlRichEdit_SetRECT',
+            'GUICtrlRichEdit_SetScrollPos', 'GUICtrlRichEdit_SetSel',
+            'GUICtrlRichEdit_SetSpaceUnit', 'GUICtrlRichEdit_SetTabStops',
+            'GUICtrlRichEdit_SetText', 'GUICtrlRichEdit_SetUndoLimit',
+            'GUICtrlRichEdit_SetZoom', 'GUICtrlRichEdit_StreamFromFile',
+            'GUICtrlRichEdit_StreamFromVar', 'GUICtrlRichEdit_StreamToFile',
+            'GUICtrlRichEdit_StreamToVar', 'GUICtrlRichEdit_Undo',
+            'GUICtrlSlider_ClearSel', 'GUICtrlSlider_ClearTics',
+            'GUICtrlSlider_Create', 'GUICtrlSlider_Destroy',
+            'GUICtrlSlider_GetBuddy', 'GUICtrlSlider_GetChannelRect',
+            'GUICtrlSlider_GetChannelRectEx', 'GUICtrlSlider_GetLineSize',
+            'GUICtrlSlider_GetLogicalTics', 'GUICtrlSlider_GetNumTics',
+            'GUICtrlSlider_GetPageSize', 'GUICtrlSlider_GetPos',
+            '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_ActivateTab', 'GUICtrlTab_ClickTab', '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_Deactivate',
+            '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_Update', 'GUIToolTip_UpdateTipText', 'HexToString',
+            'IEAction', 'IEAttach', 'IEBodyReadHTML', 'IEBodyReadText',
+            'IEBodyWriteHTML', 'IECreate', 'IECreateEmbedded', 'IEDocGetObj',
+            'IEDocInsertHTML', 'IEDocInsertText', 'IEDocReadHTML',
+            'IEDocWriteHTML', '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', 'IE_Example', 'IE_Introduction',
+            'IE_VersionInfo', 'INetExplorerCapable', 'INetGetSource', 'INetMail',
+            'INetSmtpMail', 'IsPressed', 'MathCheckDiv', 'Max', 'MemGlobalAlloc',
+            'MemGlobalFree', 'MemGlobalLock', 'MemGlobalSize', 'MemGlobalUnlock',
+            'MemMoveMemory', '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', 'PathGetRelative', 'PathMake',
+            'PathSplit', 'ProcessGetName', 'ProcessGetPriority', 'Radian',
+            'ReplaceStringInFile', 'RunDos', 'ScreenCapture_Capture',
+            'ScreenCapture_CaptureWnd', 'ScreenCapture_SaveImage',
+            'ScreenCapture_SetBMPFormat', 'ScreenCapture_SetJPGQuality',
+            'ScreenCapture_SetTIFColorDepth', 'ScreenCapture_SetTIFCompression',
+            'Security__AdjustTokenPrivileges',
+            'Security__CreateProcessWithToken', 'Security__DuplicateTokenEx',
+            '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__SetTokenInformation', '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_FastEncode', 'SQLite_FastEscape',
+            'SQLite_FetchData', 'SQLite_FetchNames', 'SQLite_GetTable',
+            'SQLite_GetTable2d', 'SQLite_LastInsertRowID', 'SQLite_LibVersion',
+            'SQLite_Open', 'SQLite_Query', 'SQLite_QueryFinalize',
+            'SQLite_QueryReset', 'SQLite_QuerySingleRow', 'SQLite_SafeMode',
+            'SQLite_SetTimeout', 'SQLite_Shutdown', 'SQLite_SQLiteExe',
+            'SQLite_Startup', 'SQLite_TotalChanges', 'StringBetween',
+            'StringExplode', 'StringInsert', 'StringProper', 'StringRepeat',
+            'StringTitleCase', 'StringToHex', 'TCPIpToName', 'TempFile',
+            'TicksToTime', 'Timer_Diff', 'Timer_GetIdleTime', 'Timer_GetTimerID',
+            'Timer_Init', 'Timer_KillAllTimers', 'Timer_KillTimer',
+            'Timer_SetTimer', 'TimeToTicks', 'VersionCompare', 'viClose',
+            'viExecCommand', 'viFindGpib', 'viGpibBusReset', 'viGTL',
+            'viInteractiveControl', 'viOpen', 'viSetAttribute', 'viSetTimeout',
+            'WeekNumberISO', 'WinAPI_AbortPath', 'WinAPI_ActivateKeyboardLayout',
+            'WinAPI_AddClipboardFormatListener', 'WinAPI_AddFontMemResourceEx',
+            'WinAPI_AddFontResourceEx', 'WinAPI_AddIconOverlay',
+            'WinAPI_AddIconTransparency', 'WinAPI_AddMRUString',
+            'WinAPI_AdjustBitmap', 'WinAPI_AdjustTokenPrivileges',
+            'WinAPI_AdjustWindowRectEx', 'WinAPI_AlphaBlend', 'WinAPI_AngleArc',
+            'WinAPI_AnimateWindow', 'WinAPI_Arc', 'WinAPI_ArcTo',
+            'WinAPI_ArrayToStruct', 'WinAPI_AssignProcessToJobObject',
+            'WinAPI_AssocGetPerceivedType', 'WinAPI_AssocQueryString',
+            'WinAPI_AttachConsole', 'WinAPI_AttachThreadInput',
+            'WinAPI_BackupRead', 'WinAPI_BackupReadAbort', 'WinAPI_BackupSeek',
+            'WinAPI_BackupWrite', 'WinAPI_BackupWriteAbort', 'WinAPI_Beep',
+            'WinAPI_BeginBufferedPaint', 'WinAPI_BeginDeferWindowPos',
+            'WinAPI_BeginPaint', 'WinAPI_BeginPath', 'WinAPI_BeginUpdateResource',
+            'WinAPI_BitBlt', 'WinAPI_BringWindowToTop',
+            'WinAPI_BroadcastSystemMessage', 'WinAPI_BrowseForFolderDlg',
+            'WinAPI_BufferedPaintClear', 'WinAPI_BufferedPaintInit',
+            'WinAPI_BufferedPaintSetAlpha', 'WinAPI_BufferedPaintUnInit',
+            'WinAPI_CallNextHookEx', 'WinAPI_CallWindowProc',
+            'WinAPI_CallWindowProcW', 'WinAPI_CascadeWindows',
+            'WinAPI_ChangeWindowMessageFilterEx', 'WinAPI_CharToOem',
+            'WinAPI_ChildWindowFromPointEx', 'WinAPI_ClientToScreen',
+            'WinAPI_ClipCursor', 'WinAPI_CloseDesktop', 'WinAPI_CloseEnhMetaFile',
+            'WinAPI_CloseFigure', 'WinAPI_CloseHandle', 'WinAPI_CloseThemeData',
+            'WinAPI_CloseWindow', 'WinAPI_CloseWindowStation',
+            'WinAPI_CLSIDFromProgID', 'WinAPI_CoInitialize',
+            'WinAPI_ColorAdjustLuma', 'WinAPI_ColorHLSToRGB',
+            'WinAPI_ColorRGBToHLS', 'WinAPI_CombineRgn',
+            'WinAPI_CombineTransform', 'WinAPI_CommandLineToArgv',
+            'WinAPI_CommDlgExtendedError', 'WinAPI_CommDlgExtendedErrorEx',
+            'WinAPI_CompareString', 'WinAPI_CompressBitmapBits',
+            'WinAPI_CompressBuffer', 'WinAPI_ComputeCrc32',
+            'WinAPI_ConfirmCredentials', 'WinAPI_CopyBitmap', 'WinAPI_CopyCursor',
+            'WinAPI_CopyEnhMetaFile', 'WinAPI_CopyFileEx', 'WinAPI_CopyIcon',
+            'WinAPI_CopyImage', 'WinAPI_CopyRect', 'WinAPI_CopyStruct',
+            'WinAPI_CoTaskMemAlloc', 'WinAPI_CoTaskMemFree',
+            'WinAPI_CoTaskMemRealloc', 'WinAPI_CoUninitialize',
+            'WinAPI_Create32BitHBITMAP', 'WinAPI_Create32BitHICON',
+            'WinAPI_CreateANDBitmap', 'WinAPI_CreateBitmap',
+            'WinAPI_CreateBitmapIndirect', 'WinAPI_CreateBrushIndirect',
+            'WinAPI_CreateBuffer', 'WinAPI_CreateBufferFromStruct',
+            'WinAPI_CreateCaret', 'WinAPI_CreateColorAdjustment',
+            'WinAPI_CreateCompatibleBitmap', 'WinAPI_CreateCompatibleBitmapEx',
+            'WinAPI_CreateCompatibleDC', 'WinAPI_CreateDesktop',
+            'WinAPI_CreateDIB', 'WinAPI_CreateDIBColorTable',
+            'WinAPI_CreateDIBitmap', 'WinAPI_CreateDIBSection',
+            'WinAPI_CreateDirectory', 'WinAPI_CreateDirectoryEx',
+            'WinAPI_CreateEllipticRgn', 'WinAPI_CreateEmptyIcon',
+            'WinAPI_CreateEnhMetaFile', 'WinAPI_CreateEvent', 'WinAPI_CreateFile',
+            'WinAPI_CreateFileEx', 'WinAPI_CreateFileMapping',
+            'WinAPI_CreateFont', 'WinAPI_CreateFontEx',
+            'WinAPI_CreateFontIndirect', 'WinAPI_CreateGUID',
+            'WinAPI_CreateHardLink', 'WinAPI_CreateIcon',
+            'WinAPI_CreateIconFromResourceEx', 'WinAPI_CreateIconIndirect',
+            'WinAPI_CreateJobObject', 'WinAPI_CreateMargins',
+            'WinAPI_CreateMRUList', 'WinAPI_CreateMutex', 'WinAPI_CreateNullRgn',
+            'WinAPI_CreateNumberFormatInfo', 'WinAPI_CreateObjectID',
+            'WinAPI_CreatePen', 'WinAPI_CreatePoint', 'WinAPI_CreatePolygonRgn',
+            'WinAPI_CreateProcess', 'WinAPI_CreateProcessWithToken',
+            'WinAPI_CreateRect', 'WinAPI_CreateRectEx', 'WinAPI_CreateRectRgn',
+            'WinAPI_CreateRectRgnIndirect', 'WinAPI_CreateRoundRectRgn',
+            'WinAPI_CreateSemaphore', 'WinAPI_CreateSize',
+            'WinAPI_CreateSolidBitmap', 'WinAPI_CreateSolidBrush',
+            'WinAPI_CreateStreamOnHGlobal', 'WinAPI_CreateString',
+            'WinAPI_CreateSymbolicLink', 'WinAPI_CreateTransform',
+            'WinAPI_CreateWindowEx', 'WinAPI_CreateWindowStation',
+            'WinAPI_DecompressBuffer', 'WinAPI_DecryptFile',
+            'WinAPI_DeferWindowPos', 'WinAPI_DefineDosDevice',
+            'WinAPI_DefRawInputProc', 'WinAPI_DefSubclassProc',
+            'WinAPI_DefWindowProc', 'WinAPI_DefWindowProcW', 'WinAPI_DeleteDC',
+            'WinAPI_DeleteEnhMetaFile', 'WinAPI_DeleteFile',
+            'WinAPI_DeleteObject', 'WinAPI_DeleteObjectID',
+            'WinAPI_DeleteVolumeMountPoint', 'WinAPI_DeregisterShellHookWindow',
+            'WinAPI_DestroyCaret', 'WinAPI_DestroyCursor', 'WinAPI_DestroyIcon',
+            'WinAPI_DestroyWindow', 'WinAPI_DeviceIoControl',
+            'WinAPI_DisplayStruct', 'WinAPI_DllGetVersion', 'WinAPI_DllInstall',
+            'WinAPI_DllUninstall', 'WinAPI_DPtoLP', 'WinAPI_DragAcceptFiles',
+            'WinAPI_DragFinish', 'WinAPI_DragQueryFileEx',
+            'WinAPI_DragQueryPoint', 'WinAPI_DrawAnimatedRects',
+            'WinAPI_DrawBitmap', 'WinAPI_DrawEdge', 'WinAPI_DrawFocusRect',
+            'WinAPI_DrawFrameControl', 'WinAPI_DrawIcon', 'WinAPI_DrawIconEx',
+            'WinAPI_DrawLine', 'WinAPI_DrawShadowText', 'WinAPI_DrawText',
+            'WinAPI_DrawThemeBackground', 'WinAPI_DrawThemeEdge',
+            'WinAPI_DrawThemeIcon', 'WinAPI_DrawThemeParentBackground',
+            'WinAPI_DrawThemeText', 'WinAPI_DrawThemeTextEx',
+            'WinAPI_DuplicateEncryptionInfoFile', 'WinAPI_DuplicateHandle',
+            'WinAPI_DuplicateTokenEx', 'WinAPI_DwmDefWindowProc',
+            'WinAPI_DwmEnableBlurBehindWindow', 'WinAPI_DwmEnableComposition',
+            'WinAPI_DwmExtendFrameIntoClientArea',
+            'WinAPI_DwmGetColorizationColor',
+            'WinAPI_DwmGetColorizationParameters',
+            'WinAPI_DwmGetWindowAttribute', 'WinAPI_DwmInvalidateIconicBitmaps',
+            'WinAPI_DwmIsCompositionEnabled',
+            'WinAPI_DwmQueryThumbnailSourceSize', 'WinAPI_DwmRegisterThumbnail',
+            'WinAPI_DwmSetColorizationParameters',
+            'WinAPI_DwmSetIconicLivePreviewBitmap',
+            'WinAPI_DwmSetIconicThumbnail', 'WinAPI_DwmSetWindowAttribute',
+            'WinAPI_DwmUnregisterThumbnail',
+            'WinAPI_DwmUpdateThumbnailProperties', 'WinAPI_DWordToFloat',
+            'WinAPI_DWordToInt', 'WinAPI_EjectMedia', 'WinAPI_Ellipse',
+            'WinAPI_EmptyWorkingSet', 'WinAPI_EnableWindow', 'WinAPI_EncryptFile',
+            'WinAPI_EncryptionDisable', 'WinAPI_EndBufferedPaint',
+            'WinAPI_EndDeferWindowPos', 'WinAPI_EndPaint', 'WinAPI_EndPath',
+            'WinAPI_EndUpdateResource', 'WinAPI_EnumChildProcess',
+            'WinAPI_EnumChildWindows', 'WinAPI_EnumDesktops',
+            'WinAPI_EnumDesktopWindows', 'WinAPI_EnumDeviceDrivers',
+            'WinAPI_EnumDisplayDevices', 'WinAPI_EnumDisplayMonitors',
+            'WinAPI_EnumDisplaySettings', 'WinAPI_EnumDllProc',
+            'WinAPI_EnumFiles', 'WinAPI_EnumFileStreams',
+            'WinAPI_EnumFontFamilies', 'WinAPI_EnumHardLinks',
+            'WinAPI_EnumMRUList', 'WinAPI_EnumPageFiles',
+            'WinAPI_EnumProcessHandles', 'WinAPI_EnumProcessModules',
+            'WinAPI_EnumProcessThreads', 'WinAPI_EnumProcessWindows',
+            'WinAPI_EnumRawInputDevices', 'WinAPI_EnumResourceLanguages',
+            'WinAPI_EnumResourceNames', 'WinAPI_EnumResourceTypes',
+            'WinAPI_EnumSystemGeoID', 'WinAPI_EnumSystemLocales',
+            'WinAPI_EnumUILanguages', 'WinAPI_EnumWindows',
+            'WinAPI_EnumWindowsPopup', 'WinAPI_EnumWindowStations',
+            'WinAPI_EnumWindowsTop', 'WinAPI_EqualMemory', 'WinAPI_EqualRect',
+            'WinAPI_EqualRgn', 'WinAPI_ExcludeClipRect',
+            'WinAPI_ExpandEnvironmentStrings', 'WinAPI_ExtCreatePen',
+            'WinAPI_ExtCreateRegion', 'WinAPI_ExtFloodFill', 'WinAPI_ExtractIcon',
+            'WinAPI_ExtractIconEx', 'WinAPI_ExtSelectClipRgn',
+            'WinAPI_FatalAppExit', 'WinAPI_FatalExit',
+            'WinAPI_FileEncryptionStatus', 'WinAPI_FileExists',
+            'WinAPI_FileIconInit', 'WinAPI_FileInUse', 'WinAPI_FillMemory',
+            'WinAPI_FillPath', 'WinAPI_FillRect', 'WinAPI_FillRgn',
+            'WinAPI_FindClose', 'WinAPI_FindCloseChangeNotification',
+            'WinAPI_FindExecutable', 'WinAPI_FindFirstChangeNotification',
+            'WinAPI_FindFirstFile', 'WinAPI_FindFirstFileName',
+            'WinAPI_FindFirstStream', 'WinAPI_FindNextChangeNotification',
+            'WinAPI_FindNextFile', 'WinAPI_FindNextFileName',
+            'WinAPI_FindNextStream', 'WinAPI_FindResource',
+            'WinAPI_FindResourceEx', 'WinAPI_FindTextDlg', 'WinAPI_FindWindow',
+            'WinAPI_FlashWindow', 'WinAPI_FlashWindowEx', 'WinAPI_FlattenPath',
+            'WinAPI_FloatToDWord', 'WinAPI_FloatToInt', 'WinAPI_FlushFileBuffers',
+            'WinAPI_FlushFRBuffer', 'WinAPI_FlushViewOfFile',
+            'WinAPI_FormatDriveDlg', 'WinAPI_FormatMessage', 'WinAPI_FrameRect',
+            'WinAPI_FrameRgn', 'WinAPI_FreeLibrary', 'WinAPI_FreeMemory',
+            'WinAPI_FreeMRUList', 'WinAPI_FreeResource', 'WinAPI_GdiComment',
+            'WinAPI_GetActiveWindow', 'WinAPI_GetAllUsersProfileDirectory',
+            'WinAPI_GetAncestor', 'WinAPI_GetApplicationRestartSettings',
+            'WinAPI_GetArcDirection', 'WinAPI_GetAsyncKeyState',
+            'WinAPI_GetBinaryType', 'WinAPI_GetBitmapBits',
+            'WinAPI_GetBitmapDimension', 'WinAPI_GetBitmapDimensionEx',
+            'WinAPI_GetBkColor', 'WinAPI_GetBkMode', 'WinAPI_GetBoundsRect',
+            'WinAPI_GetBrushOrg', 'WinAPI_GetBufferedPaintBits',
+            'WinAPI_GetBufferedPaintDC', 'WinAPI_GetBufferedPaintTargetDC',
+            'WinAPI_GetBufferedPaintTargetRect', 'WinAPI_GetBValue',
+            'WinAPI_GetCaretBlinkTime', 'WinAPI_GetCaretPos', 'WinAPI_GetCDType',
+            'WinAPI_GetClassInfoEx', 'WinAPI_GetClassLongEx',
+            'WinAPI_GetClassName', 'WinAPI_GetClientHeight',
+            'WinAPI_GetClientRect', 'WinAPI_GetClientWidth',
+            'WinAPI_GetClipboardSequenceNumber', 'WinAPI_GetClipBox',
+            'WinAPI_GetClipCursor', 'WinAPI_GetClipRgn',
+            'WinAPI_GetColorAdjustment', 'WinAPI_GetCompressedFileSize',
+            'WinAPI_GetCompression', 'WinAPI_GetConnectedDlg',
+            'WinAPI_GetCurrentDirectory', 'WinAPI_GetCurrentHwProfile',
+            'WinAPI_GetCurrentObject', 'WinAPI_GetCurrentPosition',
+            'WinAPI_GetCurrentProcess',
+            'WinAPI_GetCurrentProcessExplicitAppUserModelID',
+            'WinAPI_GetCurrentProcessID', 'WinAPI_GetCurrentThemeName',
+            'WinAPI_GetCurrentThread', 'WinAPI_GetCurrentThreadId',
+            'WinAPI_GetCursor', 'WinAPI_GetCursorInfo', 'WinAPI_GetDateFormat',
+            'WinAPI_GetDC', 'WinAPI_GetDCEx', 'WinAPI_GetDefaultPrinter',
+            'WinAPI_GetDefaultUserProfileDirectory', 'WinAPI_GetDesktopWindow',
+            'WinAPI_GetDeviceCaps', 'WinAPI_GetDeviceDriverBaseName',
+            'WinAPI_GetDeviceDriverFileName', 'WinAPI_GetDeviceGammaRamp',
+            'WinAPI_GetDIBColorTable', 'WinAPI_GetDIBits',
+            'WinAPI_GetDiskFreeSpaceEx', 'WinAPI_GetDlgCtrlID',
+            'WinAPI_GetDlgItem', 'WinAPI_GetDllDirectory',
+            'WinAPI_GetDriveBusType', 'WinAPI_GetDriveGeometryEx',
+            'WinAPI_GetDriveNumber', 'WinAPI_GetDriveType',
+            'WinAPI_GetDurationFormat', 'WinAPI_GetEffectiveClientRect',
+            'WinAPI_GetEnhMetaFile', 'WinAPI_GetEnhMetaFileBits',
+            'WinAPI_GetEnhMetaFileDescription', 'WinAPI_GetEnhMetaFileDimension',
+            'WinAPI_GetEnhMetaFileHeader', 'WinAPI_GetErrorMessage',
+            'WinAPI_GetErrorMode', 'WinAPI_GetExitCodeProcess',
+            'WinAPI_GetExtended', 'WinAPI_GetFileAttributes', 'WinAPI_GetFileID',
+            'WinAPI_GetFileInformationByHandle',
+            'WinAPI_GetFileInformationByHandleEx', 'WinAPI_GetFilePointerEx',
+            'WinAPI_GetFileSizeEx', 'WinAPI_GetFileSizeOnDisk',
+            'WinAPI_GetFileTitle', 'WinAPI_GetFileType',
+            'WinAPI_GetFileVersionInfo', 'WinAPI_GetFinalPathNameByHandle',
+            'WinAPI_GetFinalPathNameByHandleEx', 'WinAPI_GetFocus',
+            'WinAPI_GetFontMemoryResourceInfo', 'WinAPI_GetFontName',
+            'WinAPI_GetFontResourceInfo', 'WinAPI_GetForegroundWindow',
+            'WinAPI_GetFRBuffer', 'WinAPI_GetFullPathName', 'WinAPI_GetGeoInfo',
+            'WinAPI_GetGlyphOutline', 'WinAPI_GetGraphicsMode',
+            'WinAPI_GetGuiResources', 'WinAPI_GetGUIThreadInfo',
+            'WinAPI_GetGValue', 'WinAPI_GetHandleInformation',
+            'WinAPI_GetHGlobalFromStream', 'WinAPI_GetIconDimension',
+            'WinAPI_GetIconInfo', 'WinAPI_GetIconInfoEx', 'WinAPI_GetIdleTime',
+            'WinAPI_GetKeyboardLayout', 'WinAPI_GetKeyboardLayoutList',
+            'WinAPI_GetKeyboardState', 'WinAPI_GetKeyboardType',
+            'WinAPI_GetKeyNameText', 'WinAPI_GetKeyState',
+            'WinAPI_GetLastActivePopup', 'WinAPI_GetLastError',
+            'WinAPI_GetLastErrorMessage', 'WinAPI_GetLayeredWindowAttributes',
+            'WinAPI_GetLocaleInfo', 'WinAPI_GetLogicalDrives',
+            'WinAPI_GetMapMode', 'WinAPI_GetMemorySize',
+            'WinAPI_GetMessageExtraInfo', 'WinAPI_GetModuleFileNameEx',
+            'WinAPI_GetModuleHandle', 'WinAPI_GetModuleHandleEx',
+            'WinAPI_GetModuleInformation', 'WinAPI_GetMonitorInfo',
+            'WinAPI_GetMousePos', 'WinAPI_GetMousePosX', 'WinAPI_GetMousePosY',
+            'WinAPI_GetMUILanguage', 'WinAPI_GetNumberFormat', 'WinAPI_GetObject',
+            'WinAPI_GetObjectID', 'WinAPI_GetObjectInfoByHandle',
+            'WinAPI_GetObjectNameByHandle', 'WinAPI_GetObjectType',
+            'WinAPI_GetOpenFileName', 'WinAPI_GetOutlineTextMetrics',
+            'WinAPI_GetOverlappedResult', 'WinAPI_GetParent',
+            'WinAPI_GetParentProcess', 'WinAPI_GetPerformanceInfo',
+            'WinAPI_GetPEType', 'WinAPI_GetPhysicallyInstalledSystemMemory',
+            'WinAPI_GetPixel', 'WinAPI_GetPolyFillMode', 'WinAPI_GetPosFromRect',
+            'WinAPI_GetPriorityClass', 'WinAPI_GetProcAddress',
+            'WinAPI_GetProcessAffinityMask', 'WinAPI_GetProcessCommandLine',
+            'WinAPI_GetProcessFileName', 'WinAPI_GetProcessHandleCount',
+            'WinAPI_GetProcessID', 'WinAPI_GetProcessIoCounters',
+            'WinAPI_GetProcessMemoryInfo', 'WinAPI_GetProcessName',
+            'WinAPI_GetProcessShutdownParameters', 'WinAPI_GetProcessTimes',
+            'WinAPI_GetProcessUser', 'WinAPI_GetProcessWindowStation',
+            'WinAPI_GetProcessWorkingDirectory', 'WinAPI_GetProfilesDirectory',
+            'WinAPI_GetPwrCapabilities', 'WinAPI_GetRawInputBuffer',
+            'WinAPI_GetRawInputBufferLength', 'WinAPI_GetRawInputData',
+            'WinAPI_GetRawInputDeviceInfo', 'WinAPI_GetRegionData',
+            'WinAPI_GetRegisteredRawInputDevices',
+            'WinAPI_GetRegKeyNameByHandle', 'WinAPI_GetRgnBox', 'WinAPI_GetROP2',
+            'WinAPI_GetRValue', 'WinAPI_GetSaveFileName', 'WinAPI_GetShellWindow',
+            'WinAPI_GetStartupInfo', 'WinAPI_GetStdHandle',
+            'WinAPI_GetStockObject', 'WinAPI_GetStretchBltMode',
+            'WinAPI_GetString', 'WinAPI_GetSysColor', 'WinAPI_GetSysColorBrush',
+            'WinAPI_GetSystemDefaultLangID', 'WinAPI_GetSystemDefaultLCID',
+            'WinAPI_GetSystemDefaultUILanguage', 'WinAPI_GetSystemDEPPolicy',
+            'WinAPI_GetSystemInfo', 'WinAPI_GetSystemMetrics',
+            'WinAPI_GetSystemPowerStatus', 'WinAPI_GetSystemTimes',
+            'WinAPI_GetSystemWow64Directory', 'WinAPI_GetTabbedTextExtent',
+            'WinAPI_GetTempFileName', 'WinAPI_GetTextAlign',
+            'WinAPI_GetTextCharacterExtra', 'WinAPI_GetTextColor',
+            'WinAPI_GetTextExtentPoint32', 'WinAPI_GetTextFace',
+            'WinAPI_GetTextMetrics', 'WinAPI_GetThemeAppProperties',
+            'WinAPI_GetThemeBackgroundContentRect',
+            'WinAPI_GetThemeBackgroundExtent', 'WinAPI_GetThemeBackgroundRegion',
+            'WinAPI_GetThemeBitmap', 'WinAPI_GetThemeBool',
+            'WinAPI_GetThemeColor', 'WinAPI_GetThemeDocumentationProperty',
+            'WinAPI_GetThemeEnumValue', 'WinAPI_GetThemeFilename',
+            'WinAPI_GetThemeFont', 'WinAPI_GetThemeInt', 'WinAPI_GetThemeMargins',
+            'WinAPI_GetThemeMetric', 'WinAPI_GetThemePartSize',
+            'WinAPI_GetThemePosition', 'WinAPI_GetThemePropertyOrigin',
+            'WinAPI_GetThemeRect', 'WinAPI_GetThemeString',
+            'WinAPI_GetThemeSysBool', 'WinAPI_GetThemeSysColor',
+            'WinAPI_GetThemeSysColorBrush', 'WinAPI_GetThemeSysFont',
+            'WinAPI_GetThemeSysInt', 'WinAPI_GetThemeSysSize',
+            'WinAPI_GetThemeSysString', 'WinAPI_GetThemeTextExtent',
+            'WinAPI_GetThemeTextMetrics', 'WinAPI_GetThemeTransitionDuration',
+            'WinAPI_GetThreadDesktop', 'WinAPI_GetThreadErrorMode',
+            'WinAPI_GetThreadLocale', 'WinAPI_GetThreadUILanguage',
+            'WinAPI_GetTickCount', 'WinAPI_GetTickCount64',
+            'WinAPI_GetTimeFormat', 'WinAPI_GetTopWindow',
+            'WinAPI_GetUDFColorMode', 'WinAPI_GetUpdateRect',
+            'WinAPI_GetUpdateRgn', 'WinAPI_GetUserDefaultLangID',
+            'WinAPI_GetUserDefaultLCID', 'WinAPI_GetUserDefaultUILanguage',
+            'WinAPI_GetUserGeoID', 'WinAPI_GetUserObjectInformation',
+            'WinAPI_GetVersion', 'WinAPI_GetVersionEx',
+            'WinAPI_GetVolumeInformation', 'WinAPI_GetVolumeInformationByHandle',
+            'WinAPI_GetVolumeNameForVolumeMountPoint', 'WinAPI_GetWindow',
+            'WinAPI_GetWindowDC', 'WinAPI_GetWindowDisplayAffinity',
+            'WinAPI_GetWindowExt', 'WinAPI_GetWindowFileName',
+            'WinAPI_GetWindowHeight', 'WinAPI_GetWindowInfo',
+            'WinAPI_GetWindowLong', 'WinAPI_GetWindowOrg',
+            'WinAPI_GetWindowPlacement', 'WinAPI_GetWindowRect',
+            'WinAPI_GetWindowRgn', 'WinAPI_GetWindowRgnBox',
+            'WinAPI_GetWindowSubclass', 'WinAPI_GetWindowText',
+            'WinAPI_GetWindowTheme', 'WinAPI_GetWindowThreadProcessId',
+            'WinAPI_GetWindowWidth', 'WinAPI_GetWorkArea',
+            'WinAPI_GetWorldTransform', 'WinAPI_GetXYFromPoint',
+            'WinAPI_GlobalMemoryStatus', 'WinAPI_GradientFill',
+            'WinAPI_GUIDFromString', 'WinAPI_GUIDFromStringEx', 'WinAPI_HashData',
+            'WinAPI_HashString', 'WinAPI_HiByte', 'WinAPI_HideCaret',
+            'WinAPI_HiDWord', 'WinAPI_HiWord', 'WinAPI_InflateRect',
+            'WinAPI_InitMUILanguage', 'WinAPI_InProcess',
+            'WinAPI_IntersectClipRect', 'WinAPI_IntersectRect',
+            'WinAPI_IntToDWord', 'WinAPI_IntToFloat', 'WinAPI_InvalidateRect',
+            'WinAPI_InvalidateRgn', 'WinAPI_InvertANDBitmap',
+            'WinAPI_InvertColor', 'WinAPI_InvertRect', 'WinAPI_InvertRgn',
+            'WinAPI_IOCTL', 'WinAPI_IsAlphaBitmap', 'WinAPI_IsBadCodePtr',
+            'WinAPI_IsBadReadPtr', 'WinAPI_IsBadStringPtr',
+            'WinAPI_IsBadWritePtr', 'WinAPI_IsChild', 'WinAPI_IsClassName',
+            'WinAPI_IsDoorOpen', 'WinAPI_IsElevated', 'WinAPI_IsHungAppWindow',
+            'WinAPI_IsIconic', 'WinAPI_IsInternetConnected',
+            'WinAPI_IsLoadKBLayout', 'WinAPI_IsMemory',
+            'WinAPI_IsNameInExpression', 'WinAPI_IsNetworkAlive',
+            'WinAPI_IsPathShared', 'WinAPI_IsProcessInJob',
+            'WinAPI_IsProcessorFeaturePresent', 'WinAPI_IsRectEmpty',
+            'WinAPI_IsThemeActive',
+            'WinAPI_IsThemeBackgroundPartiallyTransparent',
+            'WinAPI_IsThemePartDefined', 'WinAPI_IsValidLocale',
+            'WinAPI_IsWindow', 'WinAPI_IsWindowEnabled', 'WinAPI_IsWindowUnicode',
+            'WinAPI_IsWindowVisible', 'WinAPI_IsWow64Process',
+            'WinAPI_IsWritable', 'WinAPI_IsZoomed', 'WinAPI_Keybd_Event',
+            'WinAPI_KillTimer', 'WinAPI_LineDDA', 'WinAPI_LineTo',
+            'WinAPI_LoadBitmap', 'WinAPI_LoadCursor', 'WinAPI_LoadCursorFromFile',
+            'WinAPI_LoadIcon', 'WinAPI_LoadIconMetric',
+            'WinAPI_LoadIconWithScaleDown', 'WinAPI_LoadImage',
+            'WinAPI_LoadIndirectString', 'WinAPI_LoadKeyboardLayout',
+            'WinAPI_LoadLibrary', 'WinAPI_LoadLibraryEx', 'WinAPI_LoadMedia',
+            'WinAPI_LoadResource', 'WinAPI_LoadShell32Icon', 'WinAPI_LoadString',
+            'WinAPI_LoadStringEx', 'WinAPI_LoByte', 'WinAPI_LocalFree',
+            'WinAPI_LockDevice', 'WinAPI_LockFile', 'WinAPI_LockResource',
+            'WinAPI_LockWindowUpdate', 'WinAPI_LockWorkStation', 'WinAPI_LoDWord',
+            'WinAPI_LongMid', 'WinAPI_LookupIconIdFromDirectoryEx',
+            'WinAPI_LoWord', 'WinAPI_LPtoDP', 'WinAPI_MAKELANGID',
+            'WinAPI_MAKELCID', 'WinAPI_MakeLong', 'WinAPI_MakeQWord',
+            'WinAPI_MakeWord', 'WinAPI_MapViewOfFile', 'WinAPI_MapVirtualKey',
+            'WinAPI_MaskBlt', 'WinAPI_MessageBeep', 'WinAPI_MessageBoxCheck',
+            'WinAPI_MessageBoxIndirect', 'WinAPI_MirrorIcon',
+            'WinAPI_ModifyWorldTransform', 'WinAPI_MonitorFromPoint',
+            'WinAPI_MonitorFromRect', 'WinAPI_MonitorFromWindow',
+            'WinAPI_Mouse_Event', 'WinAPI_MoveFileEx', 'WinAPI_MoveMemory',
+            'WinAPI_MoveTo', 'WinAPI_MoveToEx', 'WinAPI_MoveWindow',
+            'WinAPI_MsgBox', 'WinAPI_MulDiv', 'WinAPI_MultiByteToWideChar',
+            'WinAPI_MultiByteToWideCharEx', 'WinAPI_NtStatusToDosError',
+            'WinAPI_OemToChar', 'WinAPI_OffsetClipRgn', 'WinAPI_OffsetPoints',
+            'WinAPI_OffsetRect', 'WinAPI_OffsetRgn', 'WinAPI_OffsetWindowOrg',
+            'WinAPI_OpenDesktop', 'WinAPI_OpenFileById', 'WinAPI_OpenFileDlg',
+            'WinAPI_OpenFileMapping', 'WinAPI_OpenIcon',
+            'WinAPI_OpenInputDesktop', 'WinAPI_OpenJobObject', 'WinAPI_OpenMutex',
+            'WinAPI_OpenProcess', 'WinAPI_OpenProcessToken',
+            'WinAPI_OpenSemaphore', 'WinAPI_OpenThemeData',
+            'WinAPI_OpenWindowStation', 'WinAPI_PageSetupDlg',
+            'WinAPI_PaintDesktop', 'WinAPI_PaintRgn', 'WinAPI_ParseURL',
+            'WinAPI_ParseUserName', 'WinAPI_PatBlt', 'WinAPI_PathAddBackslash',
+            'WinAPI_PathAddExtension', 'WinAPI_PathAppend',
+            'WinAPI_PathBuildRoot', 'WinAPI_PathCanonicalize',
+            'WinAPI_PathCommonPrefix', 'WinAPI_PathCompactPath',
+            'WinAPI_PathCompactPathEx', 'WinAPI_PathCreateFromUrl',
+            'WinAPI_PathFindExtension', 'WinAPI_PathFindFileName',
+            'WinAPI_PathFindNextComponent', 'WinAPI_PathFindOnPath',
+            'WinAPI_PathGetArgs', 'WinAPI_PathGetCharType',
+            'WinAPI_PathGetDriveNumber', 'WinAPI_PathIsContentType',
+            'WinAPI_PathIsDirectory', 'WinAPI_PathIsDirectoryEmpty',
+            'WinAPI_PathIsExe', 'WinAPI_PathIsFileSpec',
+            'WinAPI_PathIsLFNFileSpec', 'WinAPI_PathIsRelative',
+            'WinAPI_PathIsRoot', 'WinAPI_PathIsSameRoot',
+            'WinAPI_PathIsSystemFolder', 'WinAPI_PathIsUNC',
+            'WinAPI_PathIsUNCServer', 'WinAPI_PathIsUNCServerShare',
+            'WinAPI_PathMakeSystemFolder', 'WinAPI_PathMatchSpec',
+            'WinAPI_PathParseIconLocation', 'WinAPI_PathRelativePathTo',
+            'WinAPI_PathRemoveArgs', 'WinAPI_PathRemoveBackslash',
+            'WinAPI_PathRemoveExtension', 'WinAPI_PathRemoveFileSpec',
+            'WinAPI_PathRenameExtension', 'WinAPI_PathSearchAndQualify',
+            'WinAPI_PathSkipRoot', 'WinAPI_PathStripPath',
+            'WinAPI_PathStripToRoot', 'WinAPI_PathToRegion',
+            'WinAPI_PathUndecorate', 'WinAPI_PathUnExpandEnvStrings',
+            'WinAPI_PathUnmakeSystemFolder', 'WinAPI_PathUnquoteSpaces',
+            'WinAPI_PathYetAnotherMakeUniqueName', 'WinAPI_PickIconDlg',
+            'WinAPI_PlayEnhMetaFile', 'WinAPI_PlaySound', 'WinAPI_PlgBlt',
+            'WinAPI_PointFromRect', 'WinAPI_PolyBezier', 'WinAPI_PolyBezierTo',
+            'WinAPI_PolyDraw', 'WinAPI_Polygon', 'WinAPI_PostMessage',
+            'WinAPI_PrimaryLangId', 'WinAPI_PrintDlg', 'WinAPI_PrintDlgEx',
+            'WinAPI_PrintWindow', 'WinAPI_ProgIDFromCLSID', 'WinAPI_PtInRect',
+            'WinAPI_PtInRectEx', 'WinAPI_PtInRegion', 'WinAPI_PtVisible',
+            'WinAPI_QueryDosDevice', 'WinAPI_QueryInformationJobObject',
+            'WinAPI_QueryPerformanceCounter', 'WinAPI_QueryPerformanceFrequency',
+            'WinAPI_RadialGradientFill', 'WinAPI_ReadDirectoryChanges',
+            'WinAPI_ReadFile', 'WinAPI_ReadProcessMemory', 'WinAPI_Rectangle',
+            'WinAPI_RectInRegion', 'WinAPI_RectIsEmpty', 'WinAPI_RectVisible',
+            'WinAPI_RedrawWindow', 'WinAPI_RegCloseKey',
+            'WinAPI_RegConnectRegistry', 'WinAPI_RegCopyTree',
+            'WinAPI_RegCopyTreeEx', 'WinAPI_RegCreateKey',
+            'WinAPI_RegDeleteEmptyKey', 'WinAPI_RegDeleteKey',
+            'WinAPI_RegDeleteKeyValue', 'WinAPI_RegDeleteTree',
+            'WinAPI_RegDeleteTreeEx', 'WinAPI_RegDeleteValue',
+            'WinAPI_RegDisableReflectionKey', 'WinAPI_RegDuplicateHKey',
+            'WinAPI_RegEnableReflectionKey', 'WinAPI_RegEnumKey',
+            'WinAPI_RegEnumValue', 'WinAPI_RegFlushKey',
+            'WinAPI_RegisterApplicationRestart', 'WinAPI_RegisterClass',
+            'WinAPI_RegisterClassEx', 'WinAPI_RegisterHotKey',
+            'WinAPI_RegisterPowerSettingNotification',
+            'WinAPI_RegisterRawInputDevices', 'WinAPI_RegisterShellHookWindow',
+            'WinAPI_RegisterWindowMessage', 'WinAPI_RegLoadMUIString',
+            'WinAPI_RegNotifyChangeKeyValue', 'WinAPI_RegOpenKey',
+            'WinAPI_RegQueryInfoKey', 'WinAPI_RegQueryLastWriteTime',
+            'WinAPI_RegQueryMultipleValues', 'WinAPI_RegQueryReflectionKey',
+            'WinAPI_RegQueryValue', 'WinAPI_RegRestoreKey', 'WinAPI_RegSaveKey',
+            'WinAPI_RegSetValue', 'WinAPI_ReleaseCapture', 'WinAPI_ReleaseDC',
+            'WinAPI_ReleaseMutex', 'WinAPI_ReleaseSemaphore',
+            'WinAPI_ReleaseStream', 'WinAPI_RemoveClipboardFormatListener',
+            'WinAPI_RemoveDirectory', 'WinAPI_RemoveFontMemResourceEx',
+            'WinAPI_RemoveFontResourceEx', 'WinAPI_RemoveWindowSubclass',
+            'WinAPI_ReOpenFile', 'WinAPI_ReplaceFile', 'WinAPI_ReplaceTextDlg',
+            'WinAPI_ResetEvent', 'WinAPI_RestartDlg', 'WinAPI_RestoreDC',
+            'WinAPI_RGB', 'WinAPI_RotatePoints', 'WinAPI_RoundRect',
+            'WinAPI_SaveDC', 'WinAPI_SaveFileDlg', 'WinAPI_SaveHBITMAPToFile',
+            'WinAPI_SaveHICONToFile', 'WinAPI_ScaleWindowExt',
+            'WinAPI_ScreenToClient', 'WinAPI_SearchPath', 'WinAPI_SelectClipPath',
+            'WinAPI_SelectClipRgn', 'WinAPI_SelectObject',
+            'WinAPI_SendMessageTimeout', 'WinAPI_SetActiveWindow',
+            'WinAPI_SetArcDirection', 'WinAPI_SetBitmapBits',
+            'WinAPI_SetBitmapDimensionEx', 'WinAPI_SetBkColor',
+            'WinAPI_SetBkMode', 'WinAPI_SetBoundsRect', 'WinAPI_SetBrushOrg',
+            'WinAPI_SetCapture', 'WinAPI_SetCaretBlinkTime', 'WinAPI_SetCaretPos',
+            'WinAPI_SetClassLongEx', 'WinAPI_SetColorAdjustment',
+            'WinAPI_SetCompression', 'WinAPI_SetCurrentDirectory',
+            'WinAPI_SetCurrentProcessExplicitAppUserModelID', 'WinAPI_SetCursor',
+            'WinAPI_SetDCBrushColor', 'WinAPI_SetDCPenColor',
+            'WinAPI_SetDefaultPrinter', 'WinAPI_SetDeviceGammaRamp',
+            'WinAPI_SetDIBColorTable', 'WinAPI_SetDIBits',
+            'WinAPI_SetDIBitsToDevice', 'WinAPI_SetDllDirectory',
+            'WinAPI_SetEndOfFile', 'WinAPI_SetEnhMetaFileBits',
+            'WinAPI_SetErrorMode', 'WinAPI_SetEvent', 'WinAPI_SetFileAttributes',
+            'WinAPI_SetFileInformationByHandleEx', 'WinAPI_SetFilePointer',
+            'WinAPI_SetFilePointerEx', 'WinAPI_SetFileShortName',
+            'WinAPI_SetFileValidData', 'WinAPI_SetFocus', 'WinAPI_SetFont',
+            'WinAPI_SetForegroundWindow', 'WinAPI_SetFRBuffer',
+            'WinAPI_SetGraphicsMode', 'WinAPI_SetHandleInformation',
+            'WinAPI_SetInformationJobObject', 'WinAPI_SetKeyboardLayout',
+            'WinAPI_SetKeyboardState', 'WinAPI_SetLastError',
+            'WinAPI_SetLayeredWindowAttributes', 'WinAPI_SetLocaleInfo',
+            'WinAPI_SetMapMode', 'WinAPI_SetMessageExtraInfo', 'WinAPI_SetParent',
+            'WinAPI_SetPixel', 'WinAPI_SetPolyFillMode',
+            'WinAPI_SetPriorityClass', 'WinAPI_SetProcessAffinityMask',
+            'WinAPI_SetProcessShutdownParameters',
+            'WinAPI_SetProcessWindowStation', 'WinAPI_SetRectRgn',
+            'WinAPI_SetROP2', 'WinAPI_SetSearchPathMode',
+            'WinAPI_SetStretchBltMode', 'WinAPI_SetSysColors',
+            'WinAPI_SetSystemCursor', 'WinAPI_SetTextAlign',
+            'WinAPI_SetTextCharacterExtra', 'WinAPI_SetTextColor',
+            'WinAPI_SetTextJustification', 'WinAPI_SetThemeAppProperties',
+            'WinAPI_SetThreadDesktop', 'WinAPI_SetThreadErrorMode',
+            'WinAPI_SetThreadExecutionState', 'WinAPI_SetThreadLocale',
+            'WinAPI_SetThreadUILanguage', 'WinAPI_SetTimer',
+            'WinAPI_SetUDFColorMode', 'WinAPI_SetUserGeoID',
+            'WinAPI_SetUserObjectInformation', 'WinAPI_SetVolumeMountPoint',
+            'WinAPI_SetWindowDisplayAffinity', 'WinAPI_SetWindowExt',
+            'WinAPI_SetWindowLong', 'WinAPI_SetWindowOrg',
+            'WinAPI_SetWindowPlacement', 'WinAPI_SetWindowPos',
+            'WinAPI_SetWindowRgn', 'WinAPI_SetWindowsHookEx',
+            'WinAPI_SetWindowSubclass', 'WinAPI_SetWindowText',
+            'WinAPI_SetWindowTheme', 'WinAPI_SetWinEventHook',
+            'WinAPI_SetWorldTransform', 'WinAPI_SfcIsFileProtected',
+            'WinAPI_SfcIsKeyProtected', 'WinAPI_ShellAboutDlg',
+            'WinAPI_ShellAddToRecentDocs', 'WinAPI_ShellChangeNotify',
+            'WinAPI_ShellChangeNotifyDeregister',
+            'WinAPI_ShellChangeNotifyRegister', 'WinAPI_ShellCreateDirectory',
+            'WinAPI_ShellEmptyRecycleBin', 'WinAPI_ShellExecute',
+            'WinAPI_ShellExecuteEx', 'WinAPI_ShellExtractAssociatedIcon',
+            'WinAPI_ShellExtractIcon', 'WinAPI_ShellFileOperation',
+            'WinAPI_ShellFlushSFCache', 'WinAPI_ShellGetFileInfo',
+            'WinAPI_ShellGetIconOverlayIndex', 'WinAPI_ShellGetImageList',
+            'WinAPI_ShellGetKnownFolderIDList', 'WinAPI_ShellGetKnownFolderPath',
+            'WinAPI_ShellGetLocalizedName', 'WinAPI_ShellGetPathFromIDList',
+            'WinAPI_ShellGetSetFolderCustomSettings', 'WinAPI_ShellGetSettings',
+            'WinAPI_ShellGetSpecialFolderLocation',
+            'WinAPI_ShellGetSpecialFolderPath', 'WinAPI_ShellGetStockIconInfo',
+            'WinAPI_ShellILCreateFromPath', 'WinAPI_ShellNotifyIcon',
+            'WinAPI_ShellNotifyIconGetRect', 'WinAPI_ShellObjectProperties',
+            'WinAPI_ShellOpenFolderAndSelectItems', 'WinAPI_ShellOpenWithDlg',
+            'WinAPI_ShellQueryRecycleBin',
+            'WinAPI_ShellQueryUserNotificationState',
+            'WinAPI_ShellRemoveLocalizedName', 'WinAPI_ShellRestricted',
+            'WinAPI_ShellSetKnownFolderPath', 'WinAPI_ShellSetLocalizedName',
+            'WinAPI_ShellSetSettings', 'WinAPI_ShellStartNetConnectionDlg',
+            'WinAPI_ShellUpdateImage', 'WinAPI_ShellUserAuthenticationDlg',
+            'WinAPI_ShellUserAuthenticationDlgEx', 'WinAPI_ShortToWord',
+            'WinAPI_ShowCaret', 'WinAPI_ShowCursor', 'WinAPI_ShowError',
+            'WinAPI_ShowLastError', 'WinAPI_ShowMsg', 'WinAPI_ShowOwnedPopups',
+            'WinAPI_ShowWindow', 'WinAPI_ShutdownBlockReasonCreate',
+            'WinAPI_ShutdownBlockReasonDestroy',
+            'WinAPI_ShutdownBlockReasonQuery', 'WinAPI_SizeOfResource',
+            'WinAPI_StretchBlt', 'WinAPI_StretchDIBits',
+            'WinAPI_StrFormatByteSize', 'WinAPI_StrFormatByteSizeEx',
+            'WinAPI_StrFormatKBSize', 'WinAPI_StrFromTimeInterval',
+            'WinAPI_StringFromGUID', 'WinAPI_StringLenA', 'WinAPI_StringLenW',
+            'WinAPI_StrLen', 'WinAPI_StrokeAndFillPath', 'WinAPI_StrokePath',
+            'WinAPI_StructToArray', 'WinAPI_SubLangId', 'WinAPI_SubtractRect',
+            'WinAPI_SwapDWord', 'WinAPI_SwapQWord', 'WinAPI_SwapWord',
+            'WinAPI_SwitchColor', 'WinAPI_SwitchDesktop',
+            'WinAPI_SwitchToThisWindow', 'WinAPI_SystemParametersInfo',
+            'WinAPI_TabbedTextOut', 'WinAPI_TerminateJobObject',
+            'WinAPI_TerminateProcess', 'WinAPI_TextOut', 'WinAPI_TileWindows',
+            'WinAPI_TrackMouseEvent', 'WinAPI_TransparentBlt',
+            'WinAPI_TwipsPerPixelX', 'WinAPI_TwipsPerPixelY',
+            'WinAPI_UnhookWindowsHookEx', 'WinAPI_UnhookWinEvent',
+            'WinAPI_UnionRect', 'WinAPI_UnionStruct', 'WinAPI_UniqueHardwareID',
+            'WinAPI_UnloadKeyboardLayout', 'WinAPI_UnlockFile',
+            'WinAPI_UnmapViewOfFile', 'WinAPI_UnregisterApplicationRestart',
+            'WinAPI_UnregisterClass', 'WinAPI_UnregisterHotKey',
+            'WinAPI_UnregisterPowerSettingNotification',
+            'WinAPI_UpdateLayeredWindow', 'WinAPI_UpdateLayeredWindowEx',
+            'WinAPI_UpdateLayeredWindowIndirect', 'WinAPI_UpdateResource',
+            'WinAPI_UpdateWindow', 'WinAPI_UrlApplyScheme',
+            'WinAPI_UrlCanonicalize', 'WinAPI_UrlCombine', 'WinAPI_UrlCompare',
+            'WinAPI_UrlCreateFromPath', 'WinAPI_UrlFixup', 'WinAPI_UrlGetPart',
+            'WinAPI_UrlHash', 'WinAPI_UrlIs', 'WinAPI_UserHandleGrantAccess',
+            'WinAPI_ValidateRect', 'WinAPI_ValidateRgn', 'WinAPI_VerQueryRoot',
+            'WinAPI_VerQueryValue', 'WinAPI_VerQueryValueEx',
+            'WinAPI_WaitForInputIdle', 'WinAPI_WaitForMultipleObjects',
+            'WinAPI_WaitForSingleObject', 'WinAPI_WideCharToMultiByte',
+            'WinAPI_WidenPath', 'WinAPI_WindowFromDC', 'WinAPI_WindowFromPoint',
+            'WinAPI_WordToShort', 'WinAPI_Wow64EnableWow64FsRedirection',
+            'WinAPI_WriteConsole', 'WinAPI_WriteFile',
+            'WinAPI_WriteProcessMemory', 'WinAPI_ZeroMemory',
+            '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_Create',
+            'Word_DocAdd', 'Word_DocAttach', 'Word_DocClose', 'Word_DocExport',
+            'Word_DocFind', 'Word_DocFindReplace', 'Word_DocGet',
+            'Word_DocLinkAdd', 'Word_DocLinkGet', 'Word_DocOpen',
+            'Word_DocPictureAdd', 'Word_DocPrint', 'Word_DocRangeSet',
+            'Word_DocSave', 'Word_DocSaveAs', 'Word_DocTableRead',
+            'Word_DocTableWrite', 'Word_Quit'
+        ),
+        5 => array(
+            'ce', 'comments-end', 'comments-start', 'cs'
+        ),
+        6 => array(
+            'Au3Stripper_Ignore_Funcs', 'Au3Stripper_Ignore_Variables',
+            'Au3Stripper_Off', 'Au3Stripper_On', 'Au3Stripper_Parameters',
+            'AutoIt3Wrapper_Add_Constants', 'AutoIt3Wrapper_Au3Check_Parameters',
+            'AutoIt3Wrapper_Au3Check_Stop_OnWarning', 'AutoIt3Wrapper_Aut2Exe',
+            'AutoIt3Wrapper_AutoIt3', 'AutoIt3Wrapper_AutoIt3Dir',
+            'AutoIt3Wrapper_Change2CUI', 'AutoIt3Wrapper_Compile_Both',
+            'AutoIt3Wrapper_Compression', 'AutoIt3Wrapper_EndIf',
+            'AutoIt3Wrapper_Icon', 'AutoIt3Wrapper_If_Compile',
+            'AutoIt3Wrapper_If_Run', 'AutoIt3Wrapper_Jump_To_First_Error',
+            'AutoIt3Wrapper_OutFile', 'AutoIt3Wrapper_OutFile_Type',
+            'AutoIt3Wrapper_OutFile_X64', 'AutoIt3Wrapper_PlugIn_Funcs',
+            'AutoIt3Wrapper_Res_Comment', 'Autoit3Wrapper_Res_Compatibility',
+            '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_ProductVersion',
+            'AutoIt3Wrapper_Res_requestedExecutionLevel',
+            'AutoIt3Wrapper_Res_SaveSource', 'AutoIt3Wrapper_Run_After',
+            'AutoIt3Wrapper_Run_Au3Check', 'AutoIt3Wrapper_Run_Au3Stripper',
+            'AutoIt3Wrapper_Run_Before', 'AutoIt3Wrapper_Run_Debug_Mode',
+            'AutoIt3Wrapper_Run_SciTE_Minimized',
+            'AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized',
+            'AutoIt3Wrapper_Run_Tidy', 'AutoIt3Wrapper_ShowProgress',
+            'AutoIt3Wrapper_Testing', 'AutoIt3Wrapper_Tidy_Stop_OnError',
+            'AutoIt3Wrapper_UPX_Parameters', 'AutoIt3Wrapper_UseUPX',
+            'AutoIt3Wrapper_UseX64', 'AutoIt3Wrapper_Version',
+            'AutoIt3Wrapper_Versioning', 'AutoIt3Wrapper_Versioning_Parameters',
+            'Tidy_Off', 'Tidy_On', 'Tidy_Parameters', 'EndRegion', 'Region'
+        ),
+        7 => array(
+            'APPSKEY', 'BACKSPACE', 'BROWSER_BACK', 'BROWSER_FAVORITES',
+            'BROWSER_FORWARD', 'BROWSER_HOME', 'BROWSER_REFRESH', 'BROWSER_SEARCH',
+            'BROWSER_STOP', 'BS', 'CAPSLOCK', 'DEL', 'DELETE', 'DOWN', 'END', 'ENTER',
+            'ESC', 'ESCAPE', 'F1', 'F10', 'F11', 'F12', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7',
+            'F8', 'F9', 'HOME', 'INS', 'INSERT', 'LAUNCH_APP1', 'LAUNCH_APP2',
+            'LAUNCH_MAIL', 'LAUNCH_MEDIA', 'LEFT', 'MEDIA_NEXT', 'MEDIA_PLAY_PAUSE',
+            'MEDIA_PREV', 'MEDIA_STOP', 'NUMLOCK', 'NUMPAD0', 'NUMPAD1', 'NUMPAD2',
+            'NUMPAD3', 'NUMPAD4', 'NUMPAD5', 'NUMPAD6', 'NUMPAD7', 'NUMPAD8',
+            'NUMPAD9', 'NUMPADADD', 'NUMPADDIV', 'NUMPADDOT', 'NUMPADENTER',
+            'NUMPADMULT', 'NUMPADSUB', 'PAUSE', 'PGDN', 'PGUP', 'PRINTSCREEN',
+            'RIGHT', 'SCROLLLOCK', 'SLEEP', 'SPACE', 'TAB', 'UP', 'VOLUME_DOWN',
+            'VOLUME_MUTE', 'VOLUME_UP'
+        ),
+        8 => array(
+            'include', 'include-once', 'NoTrayIcon', 'OnAutoItStartRegister',
+            'RequireAdmin'
+        ),
+        9 => array(
+            'pragma'
+        ),
+        10 => array(
+            'forcedef', 'forceref', 'ignorefunc'
+        ),
+    ),
+    'SYMBOLS' => array(
+        0 => array('(', ')', '[', ']',
+            '+', '-', '*', '/', '&', '^', ':', '?',
+            '=', '==', '+=', '-=', '*=', '/=', '&=',
+            '<', '<=', '>', '>=',
+            ',', '.'
+        ),
+        1 => array('_' // Undersore for continuation of strings.
+        ),
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false,
+        7 => false,
+        8 => false,
+        9 => false,
+        10 => false
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000FF;', // Keywords
+            2 => 'color: #808000;', // Macros
+            3 => 'color: #000090;', // Native Functions
+            4 => 'color: #0080FF;', // UDF Functions
+            5 => 'color: #808000;', // Comments
+            6 => 'color: #DC143C;', // Directives
+            7 => 'color: #5A5A5A;', // Keylist
+            8 => 'color: #808000;', // PreProcessor
+            9 => 'color: #DC143C;', // Pragma
+            10 => 'color: #DC143C;' // Au3Check
+        ),
+        'COMMENTS' => array(
+            0 => 'color: #FF0000; font-style: italic',
+            1 => 'color: #008000; font-style: italic;',
+            2 => 'color: #008000; font-style: italic;',
+            'MULTI' => 'color: #008000; font-style: italic;',
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #FF8000;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #FF0000;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #0000FF;'
+        ),
+        'METHODS' => array(
+            1 => 'color: #FF0000;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #FF8000;',
+            1 => 'color: #000000;'
+        ),
+        'REGEXPS' => array(
+            0 => 'color: #5A5A5A;', // Variables
+            1 => 'color: #5A5A5A;' // Keylist
+        ),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => 'https://www.autoitscript.com/autoit3/docs/keywords.htm', // Keywords
+        2 => 'https://www.autoitscript.com/autoit3/docs/macros.htm#{FNAME}', // Macros
+        3 => 'https://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm', // Native Functions
+        4 => 'https://www.autoitscript.com/autoit3/docs/libfunctions/_{FNAME}.htm', // UDF Functions
+        5 => 'https://www.autoitscript.com/autoit3/docs/keywords/comments-start.htm', // Comments
+        6 => 'https://www.autoitscript.com/autoit3/scite/docs/AutoIt3Wrapper.html', // Directives
+        7 => 'https://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm#KeysList', // Keylist
+        8 => 'https://www.autoitscript.com/autoit3/docs/keywords/{FNAME}.htm', // PreProcessor
+        9 => 'https://www.autoitscript.com/autoit3/docs/keywords/{FNAME}.htm', // Pragma
+        10 => 'https://www.autoitscript.com/autoit3/docs/intro/au3check.htm' // Au3Check
+    ),
+    '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,
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+    ),
+    'REGEXPS' => array(
+        0 => '\$[a-zA-Z0-9_]*', // Variables
+        1 => '\\{[a-zA-Z0-9_]+\\}' // Keylist
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true,
+        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)\#',
+                'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
+            ),
+            8 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)\#',
+                'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
+            ),
+            9 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)\#',
+                'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
+            ),
+            10 => array(
+                'DISALLOWED_BEFORE' => '(?<!\w)\#',
+                'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
+            )
+        )
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/avisynth.php b/vendor/geshi/geshi/src/geshi/avisynth.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/avisynth.php
rename to vendor/geshi/geshi/src/geshi/avisynth.php
index 8ddceede0c976627e2c9a5376768f8b555fd32ea..cbd8a1207061a0d800913a067359dc0ab0223ab2 100644
--- a/vendor/easybook/geshi/geshi/avisynth.php
+++ b/vendor/geshi/geshi/src/geshi/avisynth.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Ryan Jones (sciguyryan@gmail.com)
  * Copyright: (c) 2008 Ryan Jones
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/10/08
  *
  * AviSynth language file for GeSHi.
@@ -191,4 +191,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/awk.php b/vendor/geshi/geshi/src/geshi/awk.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/awk.php
rename to vendor/geshi/geshi/src/geshi/awk.php
index 46fe49f8780f4b18c0b4b7357d660fad7edae714..e94e64f32fb30867c87aa07255377ba28fa43d41 100644
--- a/vendor/easybook/geshi/geshi/awk.php
+++ b/vendor/geshi/geshi/src/geshi/awk.php
@@ -4,7 +4,7 @@
  * -------
  * Author: George Pollard (porges@porg.es)
  * Copyright: (c) 2009 George Pollard
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/01/28
  *
  * Awk language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/bascomavr.php b/vendor/geshi/geshi/src/geshi/bascomavr.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/bascomavr.php
rename to vendor/geshi/geshi/src/geshi/bascomavr.php
index 5fc562baa49755955ed28d5b7e4424898c25338e..96ec609081d31d63ecfc0fb2e6519ecd5f7b616b 100644
--- a/vendor/easybook/geshi/geshi/bascomavr.php
+++ b/vendor/geshi/geshi/src/geshi/bascomavr.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: aquaticus.info
  * Copyright: (c) 2008 aquaticus.info
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/01/09
  *
  * BASCOM AVR language file for GeSHi.
@@ -181,4 +181,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/bash.php b/vendor/geshi/geshi/src/geshi/bash.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/bash.php
rename to vendor/geshi/geshi/src/geshi/bash.php
index 495bb9d769843ed62f08a38dc2415cb40fe971ef..d9752155d042dd8731dacefcf2949a449b28e5a3 100644
--- a/vendor/easybook/geshi/geshi/bash.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/20
  *
  * BASH language file for GeSHi.
@@ -169,7 +169,7 @@ $language_data = array (
             'false', 'fbset', 'fdisk', 'ffmpeg', 'fgconsole','fgrep', 'file',
             'find', 'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser',
 
-            'g++', 'gawk', 'gc','gcc', 'gdb', 'getent', 'getkeycodes',
+            'g++', 'gawk', 'gc','gcc', 'gdb', 'gdisk', 'getent', 'getkeycodes',
             'getopt', 'gettext', 'gettextize', 'gimp', 'gimp-remote',
             'gimptool', 'gmake', 'gocr', 'grep', 'groups', 'gs', 'gunzip',
             'gzexe', 'gzip',
@@ -185,7 +185,7 @@ $language_data = array (
             'git difftool--helper', 'git diff-tree', 'git fast-export',
             'git fast-import', 'git fetch', 'git fetch-pack',
             'git filter-branch', 'git fmt-merge-msg', 'git for-each-ref',
-            'git format-patch', 'git fsck', 'git fsck-objects', 'git gc',
+            'git format-patch', 'git fsck', 'git fsck-objects', 'git gc', 'git gui',
             'git get-tar-commit-id', 'git grep', 'git hash-object', 'git help',
             'git http-backend', 'git http-fetch', 'git http-push',
             'git imap-send', 'git index-pack', 'git init', 'git init-db',
@@ -470,4 +470,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/basic4gl.php b/vendor/geshi/geshi/src/geshi/basic4gl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/basic4gl.php
rename to vendor/geshi/geshi/src/geshi/basic4gl.php
index 112fb6967ca61a24e83511825a497a6da14ec4e8..499428f8b877d830eb4ad3ddb85aa11ae757c367 100644
--- a/vendor/easybook/geshi/geshi/basic4gl.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/09/15
  *
  * Basic4GL language file for GeSHi.
diff --git a/vendor/geshi/geshi/src/geshi/batch.php b/vendor/geshi/geshi/src/geshi/batch.php
new file mode 100644
index 0000000000000000000000000000000000000000..03a972e8dca5be42e05bd59b18f2af439d38b63b
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/batch.php
@@ -0,0 +1,228 @@
+<?php
+/*************************************************************************************
+ * batch.php
+ * ------------
+ * Author: FraidZZ ( fraidzz [@] bk.ru )
+ * Copyright: (c) 2015 FraidZZ ( http://vk.com/fraidzz , http://www.cyberforum.ru/members/340557.html )
+ * Release Version: 1.0.9.0
+ * Date Started: 2015/03/28
+ *
+ * Windows batch file 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' => 'Windows Batch file',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        100 => '/(?:^|[&|])\\s*(?:rem|::)[^\\n]*/msi',
+        101 => '/[\\/-]\\S*/si',
+        102 => '/^\s*:[^:]\\S*/msi',
+        103 => '/(?:([%!])[^"\'~ ][^"\' ]*\\1|%%?(?:~[dpnxsatz]*)?[^"\'])/si'
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        100 => '/(?:([%!])\\S+\\1|%%(?:~[dpnxsatz]*)?[^"\'])/si'
+    ),
+    'KEYWORDS' => array(
+        1 => array(
+            'echo',
+            'set',
+            'for',
+            'if',
+            'exit',
+            'else',
+            'do',
+            'not',
+            'defined',
+            'exist'
+        ),
+        2 => array(
+            "ASSOC",
+            "ATTRIB",
+            "BREAK",
+            "BCDEDIT",
+            "CACLS",
+            "CD",
+            "CHCP",
+            "CHDIR",
+            "CHKDSK",
+            "CHKNTFS",
+            "CLS",
+            "CMD",
+            "COLOR",
+            "COMP",
+            "COMPACT",
+            "CONVERT",
+            "COPY",
+            "DATE",
+            "DEL",
+            "DIR",
+            "DISKCOMP",
+            "DISKCOPY",
+            "DISKPART",
+            "DOSKEY",
+            "DRIVERQUERY",
+            "ECHO",
+            "ENDLOCAL",
+            "ERASE",
+            "EXIT",
+            "FC",
+            "FIND",
+            "FINDSTR",
+            "FOR",
+            "FORMAT",
+            "FSUTIL",
+            "FTYPE",
+            "GPRESULT",
+            "GRAFTABL",
+            "HELP",
+            "ICACLS",
+            "IF",
+            "LABEL",
+            "MD",
+            "MKDIR",
+            "MKLINK",
+            "MODE",
+            "MORE",
+            "MOVE",
+            "OPENFILES",
+            "PATH",
+            "PAUSE",
+            "POPD",
+            "PRINT",
+            "PROMPT",
+            "PUSHD",
+            "RD",
+            "RECOVER",
+            "REN",
+            "RENAME",
+            "REPLACE",
+            "RMDIR",
+            "ROBOCOPY",
+            "SET",
+            "SETLOCAL",
+            "SC",
+            "SCHTASKS",
+            "SHIFT",
+            "SHUTDOWN",
+            "SORT",
+            "START",
+            "SUBST",
+            "SYSTEMINFO",
+            "TASKLIST",
+            "TASKKILL",
+            "TIME",
+            "TITLE",
+            "TREE",
+            "TYPE",
+            "VER",
+            "VERIFY",
+            "VOL",
+            "XCOPY",
+            "WMIC",
+            "CSCRIPT"
+        ),
+        3 => array(
+            "enabledelayedexpansion",
+            "enableextensions"
+        )
+    ),
+    'SYMBOLS' => array(
+        '(',
+        ')',
+        '+',
+        '-',
+        '~',
+        '^',
+        '@',
+        '&',
+        '*',
+        '|',
+        '/',
+        '<',
+        '>'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #800080; font-weight: bold;',
+            2 => 'color: #0080FF; font-weight: bold;',
+            3 => 'color: #0000FF; font-weight: bold;'
+        ),
+        'COMMENTS' => array(
+            101 => 'color: #44aa44; font-weight: bold;',
+            100 => 'color: #888888;',
+            102 => 'color: #990000; font-weight: bold;',
+            103 => 'color: #000099; font-weight: bold;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+        ),
+        'ESCAPE_CHAR' => array(
+            100 => 'color: #000099; font-weight: bold;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66; font-weight: bold;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;',
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+        ),
+        'METHODS' => array(
+            0 => 'color: #006600;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #44aa44; font-weight: bold;'
+        ),
+        'REGEXPS' => array(
+            0 => 'color: #990000; font-weight: bold',
+            1 => 'color: #800080; font-weight: bold;'
+        ),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        0 => array(
+            GESHI_SEARCH => "((?:goto|call)\\s*)(\\S+)",
+            GESHI_REPLACE => "\\2",
+            GESHI_BEFORE => "\\1",
+            GESHI_MODIFIERS => "si",
+            GESHI_AFTER => ""
+        ),
+        1 => "goto|call"
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/bf.php b/vendor/geshi/geshi/src/geshi/bf.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/bf.php
rename to vendor/geshi/geshi/src/geshi/bf.php
index be95bc77557440a92e0723d92aafa58e00945de7..06fddfec40d504996966cc80f5f2c192b50dde26 100644
--- a/vendor/easybook/geshi/geshi/bf.php
+++ b/vendor/geshi/geshi/src/geshi/bf.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/31
  *
  * Brainfuck language file for GeSHi.
@@ -111,4 +111,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/biblatex.php b/vendor/geshi/geshi/src/geshi/biblatex.php
new file mode 100644
index 0000000000000000000000000000000000000000..8500cb61f9e631c301a31f9c947252e33367b761
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/biblatex.php
@@ -0,0 +1,200 @@
+<?php
+/********************************************************************************
+ * bibtex.php
+ * -----
+ * Author: Maïeul Rouquette from
+ * Quinn Taylor (quinntaylor@mac.com)
+ * Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.9.0
+ * Date Started: 2009/04/29
+ *
+ * BibLaTeX language file for GeSHi.
+ *
+ * CHANGES
+ * 2015/12/29 (1.0.8.13) Biblatex parser
+ * CHANGES
+ * -------
+ * 2009/04/29 (1.0.8.4)
+ *  -  First Release
+ *
+ * TODO
+ * -------------------------
+ *  - Add regex for matching and replacing URLs with corresponding hyperlinks
+ *  - Add regex for matching more LaTeX commands that may be embedded in BibTeX
+ *    (Someone who understands regex better than I should borrow from latex.php)
+ ********************************************************************************
+ *
+ *     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
+ *
+ *
+*******************************************************************************/
+
+// http://en.wikipedia.org/wiki/BibTeX
+// http://www.fb10.uni-bremen.de/anglistik/langpro/bibliographies/jacobsen-bibtex.html
+
+$language_data = array (
+    'LANG_NAME' => 'BibTeX',
+    'OOLANG' => false,
+    'COMMENT_SINGLE' => array(
+        1 => '%%'
+        ),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        0 => array(
+            '@comment','@preamble','@string'
+            ),
+        // Standard entry types
+        1 => array(
+            '@article','@book','@booklet','@conference','@inbook',
+            '@incollection','@inproceedings','@manual','@mastersthesis',
+            '@misc','@phdthesis','@proceedings','@techreport','@unpublished'
+            ),
+        // Custom entry types
+        2 => array(
+            '@collection','@patent','@webpage'
+            ),
+        // Standard entry field names
+        3 => array(
+            'address','annote','author','booktitle','chapter','crossref',
+            'edition','editor','howpublished','institution','journal','key',
+            'month','note','number','organization','pages','publisher','school',
+            'series','title','type','volume','year',
+            ),
+        // Custom entry field names
+        4 => array(
+            'abstract','affiliation','chaptername','cited-by','cites',
+            'contents','copyright','date-added','date-modified','doi','eprint',
+            'isbn','issn','keywords','language','lccn','lib-congress',
+            'location','price','rating','read','size','source','url',
+            )
+        ),
+    'URLS' => array(
+        0 => '',
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'SYMBOLS' => array(
+        '{', '}', '#', '=', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        GESHI_COMMENTS => false,
+        ),
+    // Define the colors for the groups listed above
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #C02020;', // Standard entry types
+            2 => 'color: #C02020;', // Custom entry types
+            3 => 'color: #C08020;', // Standard entry field names
+            4 => 'color: #C08020;'  // Custom entry field names
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #2C922C; font-style: italic;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #2020C0;'
+            ),
+        'SYMBOLS' => array(
+            0 =>  'color: #E02020;'
+            ),
+        'REGEXPS' => array(
+            1 => 'color: #2020C0;', // {...}
+            2 => 'color: #C08020;',  // BibDesk fields
+            3 => 'color: #800000;',   // LaTeX commands
+            4 => 'color: #C08020;', // Custom entry field (biblatex)
+            5 => 'color: #C02020;', // Custom entry types (biblatex)
+            ),
+        'ESCAPE_CHAR' => array(
+            0 =>  'color: #000000; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 =>  'color: #E02020;'
+            ),
+        'NUMBERS' => array(
+            ),
+        'METHODS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'REGEXPS' => array(
+        // {parameters}
+        1 => array(
+            GESHI_SEARCH => "(?<=\\{)(?:\\{(?R)\\}|[^\\{\\}])*(?=\\})",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => 's',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        2 => array(
+            GESHI_SEARCH => "\bBdsk-(File|Url)-\d+",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => 'Us',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        3 => array(
+            GESHI_SEARCH => "\\\\[A-Za-z0-9]*+",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => 'Us',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        4 => array(
+            GESHI_SEARCH => "([A-z]+)\s+=",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => 'Us',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        5 => array(
+            GESHI_SEARCH => "@([A-z])+",
+            GESHI_REPLACE => '\0',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'NUMBERS' => GESHI_NEVER
+            ),
+        'KEYWORDS' => array(
+            3 => array(
+                'DISALLOWED_AFTER' => '(?=\s*=)'
+                ),
+            4 => array(
+                'DISALLOWED_AFTER' => '(?=\s*=)'
+                ),
+            )
+        )
+    );
diff --git a/vendor/easybook/geshi/geshi/bibtex.php b/vendor/geshi/geshi/src/geshi/bibtex.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/bibtex.php
rename to vendor/geshi/geshi/src/geshi/bibtex.php
index 862c637f6d86d7690cb67f29efa043bada24eb3e..169011eebc67f297e9a6c21971272aa93ffc4a07 100644
--- a/vendor/easybook/geshi/geshi/bibtex.php
+++ b/vendor/geshi/geshi/src/geshi/bibtex.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Quinn Taylor (quinntaylor@mac.com)
  * Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/04/29
  *
  * BibTeX language file for GeSHi.
@@ -179,4 +179,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/blitzbasic.php b/vendor/geshi/geshi/src/geshi/blitzbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/blitzbasic.php
rename to vendor/geshi/geshi/src/geshi/blitzbasic.php
index c90f45bfa958ac5fc92fde27cd532098a013cc7b..6311e8ad6f4f68953b776eb37df16dc4d0259697 100644
--- a/vendor/easybook/geshi/geshi/blitzbasic.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 16.10.2005
  *
  * BlitzBasic language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/bnf.php b/vendor/geshi/geshi/src/geshi/bnf.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/bnf.php
rename to vendor/geshi/geshi/src/geshi/bnf.php
index 0bf95f165301e1dc7d9ce94926dad34792b5d85f..fafd94fa7876702272e0c752b8350c41c2b7627f 100644
--- a/vendor/easybook/geshi/geshi/bnf.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/09/28
  *
  * BNF (Backus-Naur form) language file for GeSHi.
@@ -115,4 +115,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/boo.php b/vendor/geshi/geshi/src/geshi/boo.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/boo.php
rename to vendor/geshi/geshi/src/geshi/boo.php
index 15944f42a0a3faa153856922d27596400fb92d83..19c8378f9716d5e8fd1532161fd309abb435e538 100644
--- a/vendor/easybook/geshi/geshi/boo.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/09/10
  *
  * Boo language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/c.php b/vendor/geshi/geshi/src/geshi/c.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/c.php
rename to vendor/geshi/geshi/src/geshi/c.php
index ce8e9b7704f75200a522d3d95e5e7f294b11a1db..75e1c27171a563bc04497c5217e453d0e89582e7 100644
--- a/vendor/easybook/geshi/geshi/c.php
+++ b/vendor/geshi/geshi/src/geshi/c.php
@@ -7,7 +7,7 @@
  *  - Jack Lloyd (lloyd@randombit.net)
  *  - Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * C language file for GeSHi.
@@ -277,4 +277,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/c_loadrunner.php b/vendor/geshi/geshi/src/geshi/c_loadrunner.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/c_loadrunner.php
rename to vendor/geshi/geshi/src/geshi/c_loadrunner.php
index 1dc3380d3ed7ab10c8feaa5c6838ae5d7f2fda02..c1559bc726a28bee098a0a7afbe77206845aa8c9 100644
--- a/vendor/easybook/geshi/geshi/c_loadrunner.php
+++ b/vendor/geshi/geshi/src/geshi/c_loadrunner.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Stuart Moncrieff (stuart at myloadtest dot com)
  * Copyright: (c) 2010 Stuart Moncrieff (http://www.myloadtest.com/loadrunner-syntax-highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010-07-25
  *
  * C (for LoadRunner) language file for GeSHi.
@@ -319,4 +319,3 @@ $language_data = array (
     // Note that if you are using <pre> tags for your code, then the browser chooses how many spaces your tabs will translate to.
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/c_mac.php b/vendor/geshi/geshi/src/geshi/c_mac.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/c_mac.php
rename to vendor/geshi/geshi/src/geshi/c_mac.php
index ca7fe6ce9a20ef8cc153509a5b638b33b8c2333b..dc0318417c7a45d9a560092472965e1030ef04a2 100644
--- a/vendor/easybook/geshi/geshi/c_mac.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * C for Macs language file for GeSHi.
@@ -223,4 +223,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/c_winapi.php b/vendor/geshi/geshi/src/geshi/c_winapi.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/c_winapi.php
rename to vendor/geshi/geshi/src/geshi/c_winapi.php
index 1252e7b92bbaff2272325967133ff8f9ed9f613a..37db047a560fbbeef87293952c26a6d97bd85992 100644
--- a/vendor/easybook/geshi/geshi/c_winapi.php
+++ b/vendor/geshi/geshi/src/geshi/c_winapi.php
@@ -7,7 +7,7 @@
  *  - Jack Lloyd (lloyd@randombit.net)
  *  - Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2012 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/08/12
  *
  * C (WinAPI) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/caddcl.php b/vendor/geshi/geshi/src/geshi/caddcl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/caddcl.php
rename to vendor/geshi/geshi/src/geshi/caddcl.php
index 0135a7aec99a5c2c5706e3a84569ad155dbbd422..6a205f97228b305fe051866600a3286372d9229f 100644
--- a/vendor/easybook/geshi/geshi/caddcl.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * CAD DCL (Dialog Control Language) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/cadlisp.php b/vendor/geshi/geshi/src/geshi/cadlisp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cadlisp.php
rename to vendor/geshi/geshi/src/geshi/cadlisp.php
index 41d72ca278c5b8337afb54f005f803bb6772c026..97ac8edc720b648f41235a3e1a420862ac639085 100644
--- a/vendor/easybook/geshi/geshi/cadlisp.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * AutoCAD/IntelliCAD Lisp language file for GeSHi.
diff --git a/vendor/geshi/geshi/src/geshi/ceylon.php b/vendor/geshi/geshi/src/geshi/ceylon.php
new file mode 100644
index 0000000000000000000000000000000000000000..1c806d3779e863a58b4713710cb0ffcb4a19e989
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/ceylon.php
@@ -0,0 +1,171 @@
+<?php
+/*************************************************************************************
+ * ceylon.php
+ * ----------
+ * Author: Lucas Werkmeister (mail@lucaswerkmeister.de)
+ * Copyright: (c) 2015 Lucas Werkmeister (http://lucaswerkmeister.de)
+ * Release Version: 1.0.9.0
+ * Date Started: 2015-01-08
+ *
+ * Ceylon language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ *
+ * TODO (updated 2015-06-19)
+ * ------------------
+ * * Regexes match and break help URLs, so those are commented out for now
+ * * Ceylon supports nested block comments
+ * * The Ceylon compiler correctly parses
+ *       "\{FICTITIOUS CHARACTER WITH " IN NAME}"
+ *   as a single string literal.
+ *   (However, that's not really important
+ *   since Unicode character names never contain quotes.)
+ *
+ *************************************************************************************
+ *
+ *     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' => 'Ceylon',
+    'COMMENT_SINGLE' => array(1 => '//', 2 => '#!'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        /*
+         * 1. regular line comments (see COMMENT_SINGLE)
+         * 2. shebang line comments (see COMMENT_SINGLE)
+         * 3. strings (including string templates)
+         */
+        3 => '/(?:"|``).*?(?:``|")/'
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        /*
+         * 1. lexer keywords (class, else, etc.)
+         * 2. language modifiers (shared, formal, etc.)
+         * 3. language doc modifiers (doc, see, etc.)
+         */
+        1 => array(
+            'assembly', 'module', 'package', 'import',
+            'alias', 'class', 'interface', 'object', 'given',
+            'value', 'assign', 'void', 'function',
+            'new', 'of', 'extends', 'satisfies', 'abstracts',
+            'in', 'out',
+            'return', 'break', 'continue', 'throw', 'assert',
+            'dynamic',
+            'if', 'else', 'switch', 'case',
+            'for', 'while', 'try', 'catch', 'finally',
+            'then', 'let',
+            'this', 'outer', 'super',
+            'is', 'exists', 'nonempty'
+        ),
+        2 => array(
+            'shared', 'abstract', 'formal', 'default', 'actual',
+            'variable', 'late', 'native', 'deprecated',
+            'final', 'sealed', 'annotation', 'small'
+        ),
+        3 => array(
+            'doc', 'by', 'license', 'see', 'throws', 'tagged'
+        )
+    ),
+    'SYMBOLS' => array(
+        ',', ';', '...', '{', '}', '[', ']', '`', '?.', '*.',
+        '?', '-&gt;', '=&gt;',
+        '**', '++', '--', '..', ':', '&&', '||',
+        '+=', '-=', '*=', '/=', '%=', '|=', '&=', '~=', '||=', '&&=',
+        '+', '-', '*', '/', '%', '^',
+        '~', '&', '|', '===', '==', '=', '!=', '!',
+        '&lt;=&gt;', '&lt;=', '&gt;=',
+        '&lt;', '&gt;',
+        '.'
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'font-weight:bold;color:#4C4C4C;',
+            2 => 'color:#39C',
+            3 => 'color:#39C'
+        ),
+        'COMMENTS' => array(
+            1 => 'color:darkgray;',
+            2 => 'color:darkgray;',
+            3 => 'color:blue',
+            'MULTI' => 'color:darkgray;'
+        ),
+        'STRINGS' => array(
+            0 => 'color:blue;'
+        ),
+        'REGEXPS' => array(
+            1 => 'color:#639;',
+            2 => 'color:#039;',
+            3 => 'color:#906;'
+        ),
+        'ESCAPE_CHAR' => array(),
+        'BRACKETS' => array(),
+        'NUMBERS' => array(),
+        'METHODS' => array(),
+        'SYMBOLS' => array(),
+        'SCRIPT' => array()
+    ),
+    'REGEXPS' => array(
+        /*
+         * 1. qualified lidentifiers
+         * 2. lidentifiers
+         * 3. uidentifiers
+         *
+         * All of these contain various lookahead and -behind to ensure
+         * that we don't match various stuff that GeSHi escapes
+         * (for instance, we see semicolons as <SEMI>).
+         */
+        1 => array(
+            GESHI_SEARCH => '\\b((\?|\*)?\.[[:space:]]*)([[:lower:]][[:alnum:]]*|\\\\i[[:alnum:]]*)\\b',
+            GESHI_REPLACE => '\\3',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => ''
+        ),
+        2 => array(
+            GESHI_SEARCH => '(?<![|<>&![:alnum:]])([[:lower:]][[:alnum:]]*|\\\\i[[:alnum:]]*)(?![>[:alnum:]])',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+        ),
+        3 => array(
+            GESHI_SEARCH => '(?<![|<>&![:alnum:]])([[:upper:]][[:alnum:]]*|\\\\I[[:alnum:]]*)(?![>[:alnum:]])',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+        )
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'URLS' => array(
+        1 => '',
+        2 => '', 3 => '' // the real URLs are commented out because syntax highlighting breaks them
+//      2 => 'https://modules.ceylon-lang.org/repo/1/ceylon/language/1.1.0/module-doc/api/index.html#{FNAME}',
+//      3 => 'https://modules.ceylon-lang.org/repo/1/ceylon/language/1.1.0/module-doc/api/index.html#{FNAME}',
+    ),
+    'CASE_SENSITIVE' => array(1 => true, 2 => true, 3 => true),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/cfdg.php b/vendor/geshi/geshi/src/geshi/cfdg.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cfdg.php
rename to vendor/geshi/geshi/src/geshi/cfdg.php
index eeb7c2f3d4ed5ae1dde11878a70f0bf7483fbf0f..7ad658df51ded31eb67281e5678bd98f4bd86c73 100644
--- a/vendor/easybook/geshi/geshi/cfdg.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/03/11
  *
  * CFDG language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/cfm.php b/vendor/geshi/geshi/src/geshi/cfm.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cfm.php
rename to vendor/geshi/geshi/src/geshi/cfm.php
index 8829ace4d2fddf1386c326333d05493e6cd6cadd..7f98c33bf3982d61b4fcbb4d8a1a73426f0c5a3d 100644
--- a/vendor/easybook/geshi/geshi/cfm.php
+++ b/vendor/geshi/geshi/src/geshi/cfm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Diego
  * Copyright: (c) 2006 Diego
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/02/25
  *
  * ColdFusion language file for GeSHi.
@@ -295,4 +295,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/chaiscript.php b/vendor/geshi/geshi/src/geshi/chaiscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/chaiscript.php
rename to vendor/geshi/geshi/src/geshi/chaiscript.php
index b3ce86f6ed6860a30df358108dec87a12174d56b..13570c90064f0a6bc2e9a8fdb50a268fb993f91b 100644
--- a/vendor/easybook/geshi/geshi/chaiscript.php
+++ b/vendor/geshi/geshi/src/geshi/chaiscript.php
@@ -6,7 +6,7 @@
  * Copyright: (c) 2010 Jason Turner (lefticus@gmail.com),
  *            (c) 2009 Jonathan Turner,
  *            (c) 2004 Ben Keen (ben.keen@gmail.com), Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/07/03
  *
  * ChaiScript language file for GeSHi.
@@ -136,4 +136,3 @@ $language_data = array (
         1 => true
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/chapel.php b/vendor/geshi/geshi/src/geshi/chapel.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/chapel.php
rename to vendor/geshi/geshi/src/geshi/chapel.php
index d0e50e6149ee8de4fce484e687081f757875dd85..d0436348ce1eaec2c9f037178eb074252e3f0ad2 100644
--- a/vendor/easybook/geshi/geshi/chapel.php
+++ b/vendor/geshi/geshi/src/geshi/chapel.php
@@ -4,14 +4,14 @@
  * -----
  * Author: Richard Molitor (richard.molitor@student.kit.edu)
  * Copyright: (c) 2013 Richard Molitor
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2013/06/22
  *
  * Chapel language file for GeSHi.
  *
  * CHANGES
  * -------
- * 2013/06/22 (1.0.8.12)
+ * 2013/06/22 (1.0.8.13)
  *   -  First Release
  *
  * TODO (updated 2013/06/22)
diff --git a/vendor/easybook/geshi/geshi/cil.php b/vendor/geshi/geshi/src/geshi/cil.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cil.php
rename to vendor/geshi/geshi/src/geshi/cil.php
index a108f2498c6293728fd90b3b5b8b86f718e33bfc..82a2052fdc3c247c39ba582c03632d5237621940 100644
--- a/vendor/easybook/geshi/geshi/cil.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/10/24
  *
  * CIL (Common Intermediate Language) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/clojure.php b/vendor/geshi/geshi/src/geshi/clojure.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/clojure.php
rename to vendor/geshi/geshi/src/geshi/clojure.php
index 0e8f8edbb13afff5879c11c971ba83645338822d..0a5d1dd4cf67c5762529dd9036fccfc0dcc0875b 100644
--- a/vendor/easybook/geshi/geshi/clojure.php
+++ b/vendor/geshi/geshi/src/geshi/clojure.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Jess Johnson (jess@grok-code.com)
  * Copyright: (c) 2009 Jess Johnson (http://grok-code.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/09/20
  *
  * Clojure language file for GeSHi.
@@ -130,4 +130,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/cmake.php b/vendor/geshi/geshi/src/geshi/cmake.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cmake.php
rename to vendor/geshi/geshi/src/geshi/cmake.php
index 01630eb8901134767811db4040cd28fccbde894d..cebf147a28d322c475993f55b4ad7a9d592a12ff 100644
--- a/vendor/easybook/geshi/geshi/cmake.php
+++ b/vendor/geshi/geshi/src/geshi/cmake.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Daniel Nelson (danieln@eng.utah.edu)
  * Copyright: (c) 2009 Daniel Nelson
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/04/06
  *
  * CMake language file for GeSHi.
@@ -177,4 +177,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/cobol.php b/vendor/geshi/geshi/src/geshi/cobol.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cobol.php
rename to vendor/geshi/geshi/src/geshi/cobol.php
index 1280a4c7e9962c50c7d82deece311614c042272d..990551a55d6ec42398030c4333b0dfd75245723d 100644
--- a/vendor/easybook/geshi/geshi/cobol.php
+++ b/vendor/geshi/geshi/src/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.12
+ * Release Version: 1.0.9.0
  * Date Started: 2007/07/02
  *
  * COBOL language file for GeSHi.
@@ -16,13 +16,13 @@
  *
  * CHANGES
  * -------
- * 2013/11/17 (1.0.8.12)
+ * 2013/11/17 (1.0.8.13)
  *  -  Changed compiler directives to be handled like comments.
  *  -  Fixed bug where keywords in identifiers were highlighted.
- * 2013/08/19 (1.0.8.12)
+ * 2013/08/19 (1.0.8.13)
  *  -  Added more intrinsic functions, reserved words, and compiler directives
  *     from the (upcoming) standard.
- * 2013/07/07 (1.0.8.12)
+ * 2013/07/07 (1.0.8.13)
  *  -  Added more reserved words, compiler directives and intrinsic functions.
  *  -  Added modern comment syntax and corrected the other one.
  *  -  Set OOLANG to true and added an object splitter.
diff --git a/vendor/easybook/geshi/geshi/coffeescript.php b/vendor/geshi/geshi/src/geshi/coffeescript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/coffeescript.php
rename to vendor/geshi/geshi/src/geshi/coffeescript.php
index 40b7e0881f63b8c2cbc08717abce616f42efb72e..9656668dfacef3ba8a56646a1f55608c77de3d62 100644
--- a/vendor/easybook/geshi/geshi/coffeescript.php
+++ b/vendor/geshi/geshi/src/geshi/coffeescript.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Trevor Burnham (trevorburnham@gmail.com)
  * Copyright: (c) 2010 Trevor Burnham (http://iterative.ly)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/06/08
  *
  * CoffeeScript language file for GeSHi.
@@ -142,4 +142,3 @@ $language_data = array (
         0 => true
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/cpp-qt.php b/vendor/geshi/geshi/src/geshi/cpp-qt.php
new file mode 100644
index 0000000000000000000000000000000000000000..40b7e5aa1827e49a297c03a7f395b1c4e06265f3
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/cpp-qt.php
@@ -0,0 +1,622 @@
+<?php
+/*************************************************************************************
+ * cpp.php
+ * -------
+ * Author: Iulian M
+ * Copyright: (c) 2006 Iulian M
+ * Release Version: 1.0.9.0
+ * Date Started: 2004/09/27
+ *
+ * C++ (with Qt extensions) language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2009/06/28 (1.0.8.4)
+ *   -  Updated list of Keywords from Qt 4.5
+ *
+ * 2008/05/23 (1.0.7.22)
+ *   -  Added description of extra language features (SF#1970248)
+ *
+ * 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' => 'C++ (Qt)',
+    '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',
+        //C++ 11 string literal extensions
+        3 => '/(?:L|u8?|U)(?=")/',
+        //C++ 11 string literal extensions (raw)
+        4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms'
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    '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}#"
+        ),
+    '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', 'delete', 'new', 'this'
+            ),
+        2 => array(
+            'NULL', 'false', 'break', 'true', 'enum', 'errno', 'EDOM',
+            'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
+            'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
+            'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
+            'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
+            'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
+            'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
+            'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
+            'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
+            'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam',
+            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
+            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
+            'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
+            'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
+            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' ,
+            'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS',
+            'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK',
+            'SIGNAL', 'SLOT', 'emit'
+            ),
+        3 => array(
+            'cin', 'cerr', 'clog', 'cout',
+            'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
+            'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
+            'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
+            'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
+            'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
+            'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
+            'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
+            'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
+            'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
+            'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
+            'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
+            'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
+            'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
+            'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
+            'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
+            'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
+            'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
+            'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
+            'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
+            ),
+        4 => array(
+            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
+            'register', 'short', 'shortint', 'signed', 'static', 'struct',
+            'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
+            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
+            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
+
+            'int8', 'int16', 'int32', 'int64',
+            'uint8', 'uint16', 'uint32', 'uint64',
+
+            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
+            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
+
+            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
+            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
+
+            'int8_t', 'int16_t', 'int32_t', 'int64_t',
+            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
+
+            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
+            ),
+        5 => array(
+            'Q_INT8', 'Q_INT16', 'Q_INT32', 'Q_INT64', 'Q_LLONG', 'Q_LONG',
+            'Q_UINT8', 'Q_UINT16', 'Q_UINT32', 'Q_UINT64', 'Q_ULLONG', 'Q_ULONG',
+
+            'QAbstractAnimation', 'QAbstractButton', 'QAbstractEventDispatcher',
+            'QAbstractExtensionFactory', 'QAbstractExtensionManager',
+            'QAbstractFormBuilder', 'QAbstractGraphicsShapeItem',
+            'QAbstractItemDelegate', 'QAbstractItemModel', 'QAbstractItemView',
+            'QAbstractListModel', 'QAbstractMessageHandler',
+            'QAbstractNativeEventFilter', 'QAbstractNetworkCache',
+            'QAbstractOpenGLFunctions', 'QAbstractPlanarVideoBuffer',
+            'QAbstractPrintDialog', 'QAbstractProxyModel', 'QAbstractScrollArea',
+            'QAbstractSlider', 'QAbstractSocket', 'QAbstractSpinBox',
+            'QAbstractState', 'QAbstractTableModel',
+            'QAbstractTextDocumentLayout', 'QAbstractTransition',
+            'QAbstractUriResolver', 'QAbstractVideoBuffer',
+            'QAbstractVideoSurface', 'QAbstractXmlNodeModel',
+            'QAbstractXmlReceiver', 'QAccelerometer', 'QAccelerometerFilter',
+            'QAccelerometerReading', 'QAccessible', 'QAccessibleActionInterface',
+            'QAccessibleEditableTextInterface', 'QAccessibleEvent',
+            'QAccessibleInterface', 'QAccessibleObject', 'QAccessiblePlugin',
+            'QAccessibleStateChangeEvent', 'QAccessibleTableCellInterface',
+            'QAccessibleTableInterface', 'QAccessibleTableModelChangeEvent',
+            'QAccessibleTextCursorEvent', 'QAccessibleTextInsertEvent',
+            'QAccessibleTextInterface', 'QAccessibleTextRemoveEvent',
+            'QAccessibleTextSelectionEvent', 'QAccessibleTextUpdateEvent',
+            'QAccessibleValueChangeEvent', 'QAccessibleValueInterface',
+            'QAccessibleWidget', 'QAction', 'QActionEvent', 'QActionGroup',
+            'QAltimeter', 'QAltimeterFilter', 'QAltimeterReading',
+            'QAmbientLightFilter','QAmbientLightReading', 'QAmbientLightSensor',
+            'QAmbientTemperatureFilter', 'QAmbientTemperatureReading',
+            'QAmbientTemperatureSensor', 'QAndroidActivityResultReceiver',
+            'QAndroidJniEnvironment', 'QAndroidJniObject', 'QAnimationGroup',
+            'QApplication', 'QAssociativeIterable', 'QAtomicInt',
+            'QAtomicInteger', 'QAtomicPointer', 'QAudioBuffer', 'QAudioDecoder',
+            'QAudioDecoderControl', 'QAudioDeviceInfo', 'QAudioEncoderSettings',
+            'QAudioEncoderSettingsControl', 'QAudioFormat', 'QAudioInput',
+            'QAudioInputSelectorControl', 'QAudioOutput',
+            'QAudioOutputSelectorControl', 'QAudioProbe', 'QAudioRecorder',
+            'QAuthenticator', 'QAxAggregated', 'QAxBase', 'QAxBindable',
+            'QAxFactory', 'QAxObject', 'QAxScript', 'QAxScriptEngine',
+            'QAxScriptManager', 'QAxSelect', 'QAxWidget', 'QBackingStore',
+            'QBasicTimer', 'QBitArray', 'QBitmap', 'QBluetoothAddress',
+            'QBluetoothDeviceDiscoveryAgent', 'QBluetoothDeviceInfo',
+            'QBluetoothHostInfo', 'QBluetoothLocalDevice', 'QBluetoothServer',
+            'QBluetoothServiceDiscoveryAgent', 'QBluetoothServiceInfo',
+            'QBluetoothSocket', 'QBluetoothTransferManager',
+            'QBluetoothTransferReply', 'QBluetoothTransferRequest',
+            'QBluetoothUuid', 'QBoxLayout', 'QBrush', 'QBuffer', 'QButtonGroup',
+            'QByteArray', 'QByteArrayList', 'QByteArrayMatcher', 'QCache',
+            'QCalendarWidget', 'QCamera', 'QCameraCaptureBufferFormatControl',
+            'QCameraCaptureDestinationControl', 'QCameraControl',
+            'QCameraExposure', 'QCameraExposureControl', 'QCameraFeedbackControl',
+            'QCameraFlashControl', 'QCameraFocus', 'QCameraFocusControl',
+            'QCameraFocusZone', 'QCameraImageCapture',
+            'QCameraImageCaptureControl', 'QCameraImageProcessing',
+            'QCameraImageProcessingControl', 'QCameraInfo', 'QCameraInfoControl',
+            'QCameraLocksControl', 'QCameraViewfinder',
+            'QCameraViewfinderSettingsControl', 'QCameraZoomControl', 'QChar',
+            'QCheckBox', 'QChildEvent', 'QClipboard', 'QCloseEvent',
+            'QCocoaNativeContext', 'QCollator', 'QCollatorSortKey', 'QColor',
+            'QColorDialog', 'QColormap', 'QColumnView', 'QComboBox',
+            'QCommandLineOption', 'QCommandLineParser', 'QCommandLinkButton',
+            'QCommonStyle', 'QCompass', 'QCompassFilter', 'QCompassReading',
+            'QCompleter', 'QConicalGradient', 'QContextMenuEvent',
+            'QContiguousCache', 'QCoreApplication', 'QCryptographicHash',
+            'QCursor', 'QDBusAbstractAdaptor', 'QDBusAbstractInterface',
+            'QDBusArgument', 'QDBusConnection', 'QDBusConnectionInterface',
+            'QDBusContext', 'QDBusError', 'QDBusInterface', 'QDBusMessage',
+            'QDBusObjectPath', 'QDBusPendingCall', 'QDBusPendingCallWatcher',
+            'QDBusPendingReply', 'QDBusReply', 'QDBusServer',
+            'QDBusServiceWatcher', 'QDBusSignature', 'QDBusUnixFileDescriptor',
+            'QDBusVariant', 'QDBusVirtualObject', 'QDataStream',
+            'QDataWidgetMapper', 'QDate', 'QDateEdit', 'QDateTime',
+            'QDateTimeEdit', 'QDebug', 'QDebugStateSaver',
+            'QDesignerActionEditorInterface', 'QDesignerContainerExtension',
+            'QDesignerCustomWidgetCollectionInterface',
+            'QDesignerCustomWidgetInterface',
+            'QDesignerDynamicPropertySheetExtension',
+            'QDesignerFormEditorInterface', 'QDesignerFormWindowCursorInterface',
+            'QDesignerFormWindowInterface', 'QDesignerFormWindowManagerInterface',
+            'QDesignerMemberSheetExtension', 'QDesignerObjectInspectorInterface',
+            'QDesignerPropertyEditorInterface', 'QDesignerPropertySheetExtension',
+            'QDesignerTaskMenuExtension', 'QDesignerWidgetBoxInterface',
+            'QDesktopServices', 'QDesktopWidget', 'QDial', 'QDialog',
+            'QDialogButtonBox', 'QDir', 'QDirIterator', 'QDirModel',
+            'QDistanceFilter', 'QDistanceReading', 'QDistanceSensor',
+            'QDnsDomainNameRecord', 'QDnsHostAddressRecord', 'QDnsLookup',
+            'QDnsMailExchangeRecord', 'QDnsServiceRecord', 'QDnsTextRecord',
+            'QDockWidget', 'QDomAttr', 'QDomCDATASection', 'QDomCharacterData',
+            'QDomComment', 'QDomDocument', 'QDomDocumentFragment',
+            'QDomDocumentType', 'QDomElement', 'QDomEntity', 'QDomEntityReference',
+            'QDomImplementation', 'QDomNamedNodeMap', 'QDomNode', 'QDomNodeList',
+            'QDomNotation', 'QDomProcessingInstruction', 'QDomText',
+            'QDoubleSpinBox', 'QDoubleValidator', 'QDrag', 'QDragEnterEvent',
+            'QDragLeaveEvent', 'QDragMoveEvent', 'QDropEvent',
+            'QDynamicPropertyChangeEvent', 'EnginioClient',
+            'EnginioClientConnection', 'EnginioIdentity', 'EnginioModel',
+            'EnginioOAuth2Authentication', 'EnginioReply', 'QEGLNativeContext',
+            'QEasingCurve', 'QEglFSFunctions', 'QElapsedTimer',
+            'QEnableSharedFromThis', 'QEnterEvent', 'QErrorMessage', 'QEvent',
+            'QEventLoop', 'QEventLoopLocker', 'QEventTransition', 'QException',
+            'QExplicitlySharedDataPointer', 'QExposeEvent', 'QExtensionFactory',
+            'QExtensionManager', 'QFile', 'QFileDevice', 'QFileDialog',
+            'QFileIconProvider', 'QFileInfo', 'QFileOpenEvent', 'QFileSelector',
+            'QFileSystemModel', 'QFileSystemWatcher', 'QFinalState', 'QFlag',
+            'QFlags', 'QFocusEvent', 'QFocusFrame', 'QFont', 'QFontComboBox',
+            'QFontDatabase', 'QFontDialog', 'QFontInfo', 'QFontMetrics',
+            'QFontMetricsF', 'QFormBuilder', 'QFormLayout', 'QFrame', 'QFuture',
+            'QFutureIterator', 'QFutureSynchronizer', 'QFutureWatcher',
+            'QGLBuffer', 'QGLColormap', 'QGLContext', 'QGLFormat',
+            'QGLFramebufferObject', 'QGLFramebufferObjectFormat', 'QGLFunctions',
+            'QGLPixelBuffer', 'QGLShader', 'QGLShaderProgram', 'QGLWidget',
+            'QGLXNativeContext', 'QGenericArgument', 'QGenericMatrix',
+            'QGenericPlugin', 'QGenericPluginFactory', 'QGenericReturnArgument',
+            'QGeoAddress', 'QGeoAreaMonitorInfo', 'QGeoAreaMonitorSource',
+            'QGeoCircle', 'QGeoCodeReply', 'QGeoCodingManager',
+            'QGeoCodingManagerEngine', 'QGeoCoordinate', 'QGeoLocation',
+            'QGeoManeuver', 'QGeoPositionInfo', 'QGeoPositionInfoSource',
+            'QGeoPositionInfoSourceFactory', 'QGeoRectangle', 'QGeoRoute',
+            'QGeoRouteReply', 'QGeoRouteRequest', 'QGeoRouteSegment',
+            'QGeoRoutingManager', 'QGeoRoutingManagerEngine',
+            'QGeoSatelliteInfo', 'QGeoSatelliteInfoSource',
+            'QGeoServiceProvider', 'QGeoServiceProviderFactory', 'QGeoShape',
+            'QGesture', 'QGestureEvent', 'QGestureRecognizer', 'QGlobalStatic',
+            'QGlyphRun', 'QGradient', 'QGraphicsAnchor', 'QGraphicsAnchorLayout',
+            'QGraphicsBlurEffect', 'QGraphicsColorizeEffect',
+            'QGraphicsDropShadowEffect', 'QGraphicsEffect',
+            'QGraphicsEllipseItem', 'QGraphicsGridLayout', 'QGraphicsItem',
+            'QGraphicsItemAnimation', 'QGraphicsItemGroup', 'QGraphicsLayout',
+            'QGraphicsLayoutItem', 'QGraphicsLineItem', 'QGraphicsLinearLayout',
+            'QGraphicsObject', 'QGraphicsOpacityEffect', 'QGraphicsPathItem',
+            'QGraphicsPixmapItem', 'QGraphicsPolygonItem',
+            'QGraphicsProxyWidget', 'QGraphicsRectItem', 'QGraphicsRotation',
+            'QGraphicsScale', 'QGraphicsScene', 'QGraphicsSceneContextMenuEvent',
+            'QGraphicsSceneDragDropEvent', 'QGraphicsSceneEvent',
+            'QGraphicsSceneHelpEvent', 'QGraphicsSceneHoverEvent',
+            'QGraphicsSceneMouseEvent', 'QGraphicsSceneMoveEvent',
+            'QGraphicsSceneResizeEvent', 'QGraphicsSceneWheelEvent',
+            'QGraphicsSimpleTextItem', 'QGraphicsSvgItem', 'QGraphicsTextItem',
+            'QGraphicsTransform', 'QGraphicsVideoItem', 'QGraphicsView',
+            'QGraphicsWebView', 'QGraphicsWidget', 'QGridLayout', 'QGroupBox',
+            'QGuiApplication', 'QGyroscope', 'QGyroscopeFilter',
+            'QGyroscopeReading', 'QHBoxLayout', 'QHash', 'QHashIterator',
+            'QHeaderView', 'QHelpContentItem', 'QHelpContentModel',
+            'QHelpContentWidget', 'QHelpEngine', 'QHelpEngineCore', 'QHelpEvent',
+            'QHelpIndexModel', 'QHelpIndexWidget', 'QHelpSearchEngine',
+            'QHelpSearchQuery', 'QHelpSearchQueryWidget',
+            'QHelpSearchResultWidget', 'QHideEvent', 'QHistoryState',
+            'QHolsterFilter', 'QHolsterReading', 'QHolsterSensor',
+            'QHostAddress', 'QHostInfo', 'QHoverEvent', 'QHttpMultiPart',
+            'QHttpPart', 'QIODevice', 'QIRProximityFilter', 'QIRProximityReading',
+            'QIRProximitySensor', 'QIcon', 'QIconDragEvent', 'QIconEngine',
+            'QIconEnginePlugin', 'QIdentityProxyModel', 'QImage',
+            'QImageEncoderControl', 'QImageEncoderSettings', 'QImageIOHandler',
+            'QImageIOPlugin', 'QImageReader', 'QImageWriter', 'QInputDialog',
+            'QInputEvent', 'QInputMethod', 'QInputMethodEvent',
+            'QInputMethodQueryEvent', 'QIntValidator', 'QItemDelegate',
+            'QItemEditorCreator', 'QItemEditorCreatorBase', 'QItemEditorFactory',
+            'QItemSelection', 'QItemSelectionModel', 'QItemSelectionRange',
+            'QJSEngine', 'QJSValue', 'QJSValueIterator', 'QJsonArray',
+            'QJsonDocument', 'QJsonObject', 'QJsonParseError', 'QJsonValue',
+            'QKeyEvent', 'QKeyEventTransition', 'QKeySequence', 'QKeySequenceEdit',
+            'QLCDNumber', 'QLabel', 'QLatin1Char', 'QLatin1String', 'QLayout',
+            'QLayoutItem', 'QLibrary', 'QLibraryInfo', 'QLightFilter',
+            'QLightReading', 'QLightSensor', 'QLine', 'QLineEdit', 'QLineF',
+            'QLinearGradient', 'QLinkedList', 'QLinkedListIterator', 'QList',
+            'QListIterator', 'QListView', 'QListWidget', 'QListWidgetItem',
+            'QLocalServer', 'QLocalSocket', 'QLocale', 'QLockFile',
+            'QLoggingCategory', 'QLowEnergyCharacteristic',
+            'QLowEnergyController', 'QLowEnergyDescriptor', 'QLowEnergyService',
+            'QMacCocoaViewContainer', 'QMacNativeWidget', 'QMacPasteboardMime',
+            'QMacToolBar', 'QMacToolBarItem', 'QMagnetometer',
+            'QMagnetometerFilter', 'QMagnetometerReading', 'QMainWindow', 'QMap',
+            'QMapIterator', 'QMargins', 'QMarginsF', 'QMaskGenerator', 'QMatrix',
+            'QMatrix4x4', 'QMdiArea', 'QMdiSubWindow', 'QMediaAudioProbeControl',
+            'QMediaAvailabilityControl', 'QMediaBindableInterface',
+            'QMediaContainerControl', 'QMediaContent', 'QMediaControl',
+            'QMediaGaplessPlaybackControl', 'QMediaNetworkAccessControl',
+            'QMediaObject', 'QMediaPlayer', 'QMediaPlayerControl',
+            'QMediaPlaylist', 'QMediaRecorder', 'QMediaRecorderControl',
+            'QMediaResource', 'QMediaService', 'QMediaServiceCameraInfoInterface',
+            'QMediaServiceFeaturesInterface', 'QMediaServiceProviderPlugin',
+            'QMediaServiceSupportedDevicesInterface',
+            'QMediaServiceSupportedFormatsInterface', 'QMediaStreamsControl',
+            'QMediaTimeInterval', 'QMediaTimeRange', 'QMediaVideoProbeControl',
+            'QMenu', 'QMenuBar', 'QMessageAuthenticationCode', 'QMessageBox',
+            'QMessageLogContext', 'QMessageLogger', 'QMetaClassInfo',
+            'QMetaDataReaderControl', 'QMetaDataWriterControl', 'QMetaEnum',
+            'QMetaMethod', 'QMetaObject', 'QMetaProperty', 'QMetaType',
+            'QMimeData', 'QMimeDatabase', 'QMimeType', 'QModelIndex',
+            'QMouseEvent', 'QMouseEventTransition', 'QMoveEvent', 'QMovie',
+            'QMultiHash', 'QMultiMap', 'QMutableHashIterator',
+            'QMutableLinkedListIterator', 'QMutableListIterator',
+            'QMutableMapIterator', 'QMutableSetIterator',
+            'QMutableVectorIterator', 'QMutex', 'QMutexLocker',
+            'QNativeGestureEvent', 'QNdefFilter', 'QNdefMessage',
+            'QNdefNfcSmartPosterRecord', 'QNdefNfcTextRecord',
+            'QNdefNfcUriRecord', 'QNdefRecord', 'QNearFieldManager',
+            'QNearFieldShareManager', 'QNearFieldShareTarget', 'QNearFieldTarget',
+            'QNetworkAccessManager', 'QNetworkAddressEntry',
+            'QNetworkCacheMetaData', 'QNetworkConfiguration',
+            'QNetworkConfigurationManager', 'QNetworkCookie', 'QNetworkCookieJar',
+            'QNetworkDiskCache', 'QNetworkInterface', 'QNetworkProxy',
+            'QNetworkProxyFactory', 'QNetworkProxyQuery', 'QNetworkReply',
+            'QNetworkRequest', 'QNetworkSession', 'QNmeaPositionInfoSource',
+            'QObject', 'QObjectCleanupHandler', 'QOffscreenSurface',
+            'QOpenGLBuffer', 'QOpenGLContext', 'QOpenGLContextGroup',
+            'QOpenGLDebugLogger', 'QOpenGLDebugMessage',
+            'QOpenGLFramebufferObject', 'QOpenGLFramebufferObjectFormat',
+            'QOpenGLFunctions', 'QOpenGLFunctions_1_0', 'QOpenGLFunctions_1_1',
+            'QOpenGLFunctions_1_2', 'QOpenGLFunctions_1_3', 'QOpenGLFunctions_1_4',
+            'QOpenGLFunctions_1_5', 'QOpenGLFunctions_2_0', 'QOpenGLFunctions_2_1',
+            'QOpenGLFunctions_3_0', 'QOpenGLFunctions_3_1',
+            'QOpenGLFunctions_3_2_Compatibility', 'QOpenGLFunctions_3_2_Core',
+            'QOpenGLFunctions_3_3_Compatibility', 'QOpenGLFunctions_3_3_Core',
+            'QOpenGLFunctions_4_0_Compatibility', 'QOpenGLFunctions_4_0_Core',
+            'QOpenGLFunctions_4_1_Compatibility', 'QOpenGLFunctions_4_1_Core',
+            'QOpenGLFunctions_4_2_Compatibility', 'QOpenGLFunctions_4_2_Core',
+            'QOpenGLFunctions_4_3_Compatibility', 'QOpenGLFunctions_4_3_Core',
+            'QOpenGLFunctions_ES2', 'QOpenGLPaintDevice',
+            'QOpenGLPixelTransferOptions', 'QOpenGLShader',
+            'QOpenGLShaderProgram', 'QOpenGLTexture', 'QOpenGLTimeMonitor',
+            'QOpenGLTimerQuery', 'QOpenGLVersionProfile',
+            'QOpenGLVertexArrayObject', 'QOpenGLWidget', 'QOpenGLWindow',
+            'QOrientationFilter', 'QOrientationReading', 'QOrientationSensor',
+            'QPageLayout', 'QPageSetupDialog', 'QPageSize', 'QPagedPaintDevice',
+            'QPaintDevice', 'QPaintDeviceWindow', 'QPaintEngine',
+            'QPaintEngineState', 'QPaintEvent', 'QPainter', 'QPainterPath',
+            'QPainterPathStroker', 'QPair', 'QPalette', 'QPanGesture',
+            'QParallelAnimationGroup', 'QPauseAnimation', 'QPdfWriter', 'QPen',
+            'QPersistentModelIndex', 'QPicture', 'QPictureFormatPlugin',
+            'QPictureIO', 'QPinchGesture', 'QPixelFormat', 'QPixmap',
+            'QPixmapCache', 'QPlace', 'QPlaceAttribute', 'QPlaceCategory',
+            'QPlaceContactDetail', 'QPlaceContent', 'QPlaceContentReply',
+            'QPlaceContentRequest', 'QPlaceDetailsReply', 'QPlaceEditorial',
+            'QPlaceIcon', 'QPlaceIdReply', 'QPlaceImage', 'QPlaceManager',
+            'QPlaceManagerEngine', 'QPlaceMatchReply', 'QPlaceMatchRequest',
+            'QPlaceProposedSearchResult', 'QPlaceRatings', 'QPlaceReply',
+            'QPlaceResult', 'QPlaceReview', 'QPlaceSearchReply',
+            'QPlaceSearchRequest', 'QPlaceSearchResult',
+            'QPlaceSearchSuggestionReply', 'QPlaceSupplier', 'QPlaceUser',
+            'QPlainTextDocumentLayout', 'QPlainTextEdit',
+            'QPlatformSystemTrayIcon', 'QPluginLoader', 'QPoint', 'QPointF',
+            'QPointer', 'QPolygon', 'QPolygonF', 'QPressureFilter',
+            'QPressureReading', 'QPressureSensor', 'QPrintDialog', 'QPrintEngine',
+            'QPrintPreviewDialog', 'QPrintPreviewWidget', 'QPrinter',
+            'QPrinterInfo', 'QProcess', 'QProcessEnvironment', 'QProgressBar',
+            'QProgressDialog', 'QPropertyAnimation', 'QProximityFilter',
+            'QProximityReading', 'QProximitySensor', 'QProxyStyle',
+            'QPushButton', 'QQmlAbstractProfilerAdapter',
+            'QQmlAbstractUrlInterceptor', 'QQmlApplicationEngine',
+            'QQmlComponent', 'QQmlContext', 'QQmlEngine', 'QQmlError',
+            'QQmlExpression', 'QQmlExtensionPlugin', 'QQmlFileSelector',
+            'QQmlImageProviderBase', 'QQmlIncubationController', 'QQmlIncubator',
+            'QQmlListProperty', 'QQmlListReference', 'QQmlNdefRecord',
+            'QQmlNetworkAccessManagerFactory', 'QQmlParserStatus', 'QQmlProperty',
+            'QQmlPropertyMap', 'QQmlPropertyValueSource', 'QQmlScriptString',
+            'QQuaternion', 'QQueue', 'QQuickFramebufferObject', 'QQuickImageProvider',
+            'QQuickItem', 'QQuickItemGrabResult', 'QQuickPaintedItem',
+            'QQuickRenderControl', 'QQuickTextDocument', 'QQuickTextureFactory',
+            'QQuickView', 'QQuickWidget', 'QQuickWindow', 'QTouchEventSequence',
+            'Qoutputrange', 'QRadialGradient', 'QRadioButton', 'QRadioData',
+            'QRadioDataControl', 'QRadioTuner', 'QRadioTunerControl',
+            'QRasterPaintEngine', 'QRasterWindow', 'QRawFont', 'QReadLocker',
+            'QReadWriteLock', 'QRect', 'QRectF', 'QRegExp', 'QRegExpValidator',
+            'QRegion', 'QRegularExpression', 'QRegularExpressionMatch',
+            'QRegularExpressionMatchIterator', 'QRegularExpressionValidator',
+            'QResizeEvent', 'QResource', 'QRotationFilter', 'QRotationReading',
+            'QRotationSensor', 'QRubberBand', 'QRunnable', 'QSGAbstractRenderer',
+            'QSGBasicGeometryNode', 'QSGClipNode', 'QSGDynamicTexture',
+            'QSGEngine', 'QSGFlatColorMaterial', 'QSGGeometry', 'QSGGeometryNode',
+            'QSGMaterial', 'QSGMaterialShader', 'QSGMaterialType', 'QSGNode',
+            'QSGOpacityNode', 'QSGOpaqueTextureMaterial', 'QSGSimpleMaterial',
+            'QSGSimpleMaterialShader', 'QSGSimpleRectNode',
+            'QSGSimpleTextureNode', 'QSGTexture', 'QSGTextureMaterial',
+            'QSGTextureProvider', 'QSGTransformNode', 'QSGVertexColorMaterial',
+            'QSaveFile', 'QScopedArrayPointer', 'QScopedPointer',
+            'QScopedValueRollback', 'QScreen', 'QScriptClass',
+            'QScriptClassPropertyIterator', 'QScriptContext',
+            'QScriptContextInfo', 'QScriptEngine', 'QScriptEngineAgent',
+            'QScriptEngineDebugger', 'QScriptExtensionPlugin', 'QScriptProgram',
+            'QScriptString', 'QScriptSyntaxCheckResult', 'QScriptValue',
+            'QScriptValueIterator', 'QScriptable', 'QScrollArea', 'QScrollBar',
+            'QScrollEvent', 'QScrollPrepareEvent', 'QScroller',
+            'QScrollerProperties', 'QSemaphore', 'QSensor', 'QSensorBackend',
+            'QSensorBackendFactory', 'QSensorChangesInterface', 'QSensorFilter',
+            'QSensorGesture', 'QSensorGestureManager',
+            'QSensorGesturePluginInterface', 'QSensorGestureRecognizer',
+            'QSensorManager', 'QSensorPluginInterface', 'QSensorReading',
+            'QSequentialAnimationGroup', 'QSequentialIterable', 'QSerialPort',
+            'QSerialPortInfo', 'QSessionManager', 'QSet', 'QSetIterator',
+            'QSettings', 'QSharedData', 'QSharedDataPointer', 'QSharedMemory',
+            'QSharedPointer', 'QShortcut', 'QShortcutEvent', 'QShowEvent',
+            'QSignalBlocker', 'QSignalMapper', 'QSignalSpy', 'QSignalTransition',
+            'QSimpleXmlNodeModel', 'QSize', 'QSizeF', 'QSizeGrip', 'QSizePolicy',
+            'QSlider', 'QSocketNotifier', 'QSortFilterProxyModel', 'QSound',
+            'QSoundEffect', 'QSourceLocation', 'QSpacerItem', 'QSpinBox',
+            'QSplashScreen', 'QSplitter', 'QSplitterHandle', 'QSqlDatabase',
+            'QSqlDriver', 'QSqlDriverCreator', 'QSqlDriverCreatorBase',
+            'QSqlDriverPlugin', 'QSqlError', 'QSqlField', 'QSqlIndex',
+            'QSqlQuery', 'QSqlQueryModel', 'QSqlRecord', 'QSqlRelation',
+            'QSqlRelationalDelegate', 'QSqlRelationalTableModel', 'QSqlResult',
+            'QSqlTableModel', 'QSslCertificate', 'QSslCertificateExtension',
+            'QSslCipher', 'QSslConfiguration', 'QSslError', 'QSslKey',
+            'QSslSocket', 'QStack', 'QStackedLayout', 'QStackedWidget',
+            'QStandardItem', 'QStandardItemEditorCreator', 'QStandardItemModel',
+            'QStandardPaths', 'QState', 'QStateMachine', 'QStaticPlugin',
+            'QStaticText', 'QStatusBar', 'QStatusTipEvent', 'QStorageInfo',
+            'QString', 'QStringList', 'QStringListModel', 'QStringMatcher',
+            'QStringRef', 'QStyle', 'QStyleFactory', 'QStyleHintReturn',
+            'QStyleHintReturnMask', 'QStyleHintReturnVariant', 'QStyleHints',
+            'QStyleOption', 'QStyleOptionButton', 'QStyleOptionComboBox',
+            'QStyleOptionComplex', 'QStyleOptionDockWidget',
+            'QStyleOptionFocusRect', 'QStyleOptionFrame',
+            'QStyleOptionGraphicsItem', 'QStyleOptionGroupBox',
+            'QStyleOptionHeader', 'QStyleOptionMenuItem',
+            'QStyleOptionProgressBar', 'QStyleOptionRubberBand',
+            'QStyleOptionSizeGrip', 'QStyleOptionSlider',
+            'QStyleOptionSpinBox', 'QStyleOptionTab',
+            'QStyleOptionTabBarBase', 'QStyleOptionTabWidgetFrame',
+            'QStyleOptionTitleBar', 'QStyleOptionToolBar',
+            'QStyleOptionToolBox', 'QStyleOptionToolButton',
+            'QStyleOptionViewItem', 'QStylePainter', 'QStylePlugin',
+            'QStyledItemDelegate', 'QSupportedWritingSystems', 'QSurface',
+            'QSurfaceFormat', 'QSvgGenerator', 'QSvgRenderer', 'QSvgWidget',
+            'QSwipeGesture', 'QSyntaxHighlighter', 'QSysInfo', 'QSystemSemaphore',
+            'QSystemTrayIcon', 'QTabBar', 'QTabWidget', 'QTableView',
+            'QTableWidget', 'QTableWidgetItem', 'QTableWidgetSelectionRange',
+            'QTabletEvent', 'QTapAndHoldGesture', 'QTapFilter', 'QTapGesture',
+            'QTapReading', 'QTapSensor', 'QTcpServer', 'QTcpSocket',
+            'QTemporaryDir', 'QTemporaryFile', 'QTestEventList', 'QTextBlock',
+            'QTextBlockFormat', 'QTextBlockGroup', 'QTextBlockUserData',
+            'QTextBoundaryFinder', 'QTextBrowser', 'QTextCharFormat',
+            'QTextCodec', 'QTextCursor', 'QTextDecoder', 'QTextDocument',
+            'QTextDocumentFragment', 'QTextDocumentWriter', 'QTextEdit',
+            'QTextEncoder', 'QTextFormat', 'QTextFragment', 'QTextFrame',
+            'QTextFrameFormat', 'QTextImageFormat', 'QTextInlineObject',
+            'QTextItem', 'QTextLayout', 'QTextLength', 'QTextLine', 'QTextList',
+            'QTextListFormat', 'QTextObject', 'QTextObjectInterface',
+            'QTextOption', 'QTextStream', 'QTextTable', 'QTextTableCell',
+            'QTextTableCellFormat', 'QTextTableFormat', 'QThread', 'QThreadPool',
+            'QThreadStorage', 'QTileRules', 'QTiltFilter', 'QTiltReading',
+            'QTiltSensor', 'QTime', 'QTimeEdit', 'QTimeLine', 'QTimeZone',
+            'QTimer', 'QTimerEvent', 'QToolBar', 'QToolBox', 'QToolButton',
+            'QToolTip', 'QTouchDevice', 'QTouchEvent', 'QTransform',
+            'QTranslator', 'QTreeView', 'QTreeWidget', 'QTreeWidgetItem',
+            'QTreeWidgetItemIterator', 'QUdpSocket', 'QUiLoader', 'QUndoCommand',
+            'QUndoGroup', 'QUndoStack', 'QUndoView', 'QUnhandledException',
+            'QUrl', 'QUrlQuery', 'QUuid', 'QVBoxLayout', 'QValidator',
+            'QVarLengthArray', 'QVariant', 'QVariantAnimation', 'QVector',
+            'QVector2D', 'QVector3D', 'QVector4D', 'QVectorIterator',
+            'QVideoDeviceSelectorControl', 'QVideoEncoderSettings',
+            'QVideoEncoderSettingsControl', 'QVideoFrame', 'QVideoProbe',
+            'QVideoRendererControl', 'QVideoSurfaceFormat', 'QVideoWidget',
+            'QVideoWidgetControl', 'QVideoWindowControl', 'QWGLNativeContext',
+            'QWaitCondition', 'QWeakPointer', 'QWebChannel',
+            'QWebChannelAbstractTransport', 'QWebDatabase', 'QWebElement',
+            'QWebElementCollection', 'QWebEngineHistory', 'QWebEngineHistoryItem',
+            'QWebEnginePage', 'QWebEngineSettings', 'QWebEngineView', 'QWebFrame',
+            'QWebHistory', 'QWebHistoryInterface', 'QWebHistoryItem',
+            'QWebHitTestResult', 'QWebInspector', 'QWebPage', 'QWebPluginFactory',
+            'QWebSecurityOrigin', 'QWebSettings', 'QWebSocket',
+            'QWebSocketCorsAuthenticator', 'QWebSocketServer', 'QWebView',
+            'QWhatsThis', 'QWhatsThisClickedEvent', 'QWheelEvent', 'QWidget',
+            'QWidgetAction', 'QWidgetItem', 'QWinEventNotifier', 'QWinJumpList',
+            'QWinJumpListCategory', 'QWinJumpListItem', 'QWinMime',
+            'QWinTaskbarButton', 'QWinTaskbarProgress', 'QWinThumbnailToolBar',
+            'QWinThumbnailToolButton', 'QWindow', 'QWindowStateChangeEvent',
+            'QWizard', 'QWizardPage', 'QWriteLocker', 'QX11Info',
+            'QXcbWindowFunctions', 'QXmlAttributes', 'QXmlContentHandler',
+            'QXmlDTDHandler', 'QXmlDeclHandler', 'QXmlDefaultHandler',
+            'QXmlEntityResolver','QXmlErrorHandler', 'QXmlFormatter',
+            'QXmlInputSource', 'QXmlItem', 'QXmlLexicalHandler', 'QXmlLocator',
+            'QXmlName', 'QXmlNamePool', 'QXmlNamespaceSupport',
+            'QXmlNodeModelIndex', 'QXmlParseException', 'QXmlQuery',
+            'QXmlReader', 'QXmlResultItems', 'QXmlSchema', 'QXmlSchemaValidator',
+            'QXmlSerializer', 'QXmlSimpleReader', 'QXmlStreamAttribute',
+            'QXmlStreamAttributes', 'QXmlStreamEntityDeclaration',
+            'QXmlStreamEntityResolver', 'QXmlStreamNamespaceDeclaration',
+            'QXmlStreamNotationDeclaration', 'QXmlStreamReader',
+            'QXmlStreamWriter'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', ';', '|', '<', '>'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000000; font-weight:bold;',
+            2 => 'color: #0057AE;',
+            3 => 'color: #2B74C7;',
+            4 => 'color: #0057AE;',
+            5 => 'color: #22aadd;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #888888;',
+            2 => 'color: #006E28;',
+            3 => 'color: #BF0303;',
+            4 => 'color: #BF0303;',
+            'MULTI' => 'color: #888888; 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: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #006E28;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #BF0303;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #B08000;',
+            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #2B74C7;',
+            2 => 'color: #2B74C7;',
+            3 => 'color: #2B74C7;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #006E28;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => 'http://qt-project.org/doc/latest/{FNAMEL}.html'
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        2 => '::',
+        3 => '-&gt;',
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => 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_]*',
+        )
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/cpp-winapi.php b/vendor/geshi/geshi/src/geshi/cpp-winapi.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cpp-winapi.php
rename to vendor/geshi/geshi/src/geshi/cpp-winapi.php
index ddc70b688267d38efdd936570a4faed717ea0ffe..b8bc6ccde8e12f9cf46d3638680b07ade2e595df 100644
--- a/vendor/easybook/geshi/geshi/cpp-winapi.php
+++ b/vendor/geshi/geshi/src/geshi/cpp-winapi.php
@@ -8,7 +8,7 @@
  *  - Jack Lloyd (lloyd@randombit.net)
  *  - Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2004 Dennis Bayer, Nigel McNie, 2012 Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/09/27
  *
  * C++ language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/cpp.php b/vendor/geshi/geshi/src/geshi/cpp.php
similarity index 92%
rename from vendor/easybook/geshi/geshi/cpp.php
rename to vendor/geshi/geshi/src/geshi/cpp.php
index d9290dbdd0668663ec7ab9868c8713f40840a403..1439dfe090eff119dbadccd35b0ab3322f4b0136 100644
--- a/vendor/easybook/geshi/geshi/cpp.php
+++ b/vendor/geshi/geshi/src/geshi/cpp.php
@@ -7,13 +7,15 @@
  *  - 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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/09/27
  *
  * C++ language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2013/11/06
+ *  -  Added nullptr from c++11 & others
  * 2008/05/23 (1.0.7.22)
  *  -  Added description of extra language features (SF#1970248)
  * 2004/XX/XX (1.0.2)
@@ -101,10 +103,13 @@ $language_data = array (
             'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
             'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
             'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
-            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class'
+            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class', 'nullptr',
+            'decltype', 'override', 'final', 'noexcept', 'alignas', 'alignof', 'noreturn',
+            'constexpr', 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'thread_local',
+            'static_assert', 'compl', 'or', 'or_eq', 'xor', 'xor_eq', 'not', 'not_eq'
             ),
         3 => array(
-            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
+            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this', 'export',
             'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
             'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
             'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
@@ -126,11 +131,12 @@ $language_data = array (
             'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
             ),
         4 => array(
-            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
-            'register', 'short', 'shortint', 'signed', 'static', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
-            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
-            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
+            'auto', 'bool', 'char', 'char16_t', 'char32_t', 'const', 'double', 'float',
+            'int', 'long', 'longint','register', 'short', 'shortint', 'signed',
+            'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile',
+            'extern', 'jmp_buf','signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t',
+            'FILE', 'fpos_t', 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
+            'mutable',
 
             'int8', 'int16', 'int32', 'int64',
             'uint8', 'uint16', 'uint32', 'uint64',
@@ -242,4 +248,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/csharp.php b/vendor/geshi/geshi/src/geshi/csharp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/csharp.php
rename to vendor/geshi/geshi/src/geshi/csharp.php
index b9294e31ef95b7b70aa3abc2f3bd3eccf8598a61..a5a0f1120818cb3c07a5f44c79c328eaac049092 100644
--- a/vendor/easybook/geshi/geshi/csharp.php
+++ b/vendor/geshi/geshi/src/geshi/csharp.php
@@ -5,7 +5,7 @@
  * Author: Alan Juden (alan@judenware.org)
  * Revised by: Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * C# language file for GeSHi.
@@ -255,5 +255,3 @@ $language_data = array (
         )
     )
 );
-
-
diff --git a/vendor/geshi/geshi/src/geshi/css.php b/vendor/geshi/geshi/src/geshi/css.php
new file mode 100644
index 0000000000000000000000000000000000000000..5d15fad4f8cff983d23b2910644b38aa14859037
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/css.php
@@ -0,0 +1,944 @@
+<?php
+/*************************************************************************************
+ * css.php
+ * -------
+ * Author: Nigel McNie (nigel@geshi.org), Zéfling (zefling@ikilote.net)
+ * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.9.0
+ * Date Started: 2004/06/18
+ *
+ * CSS language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/07/14 (1.0.8.13)
+ *  - update for current CSS3 (properties, value, expression, unites & color)
+ *  - remove pseudo class regex
+ *  - add rules regex
+ * 2008/05/23 (1.0.7.22)
+ *  -  Added description of extra language features (SF#1970248)
+ * 2004/11/27 (1.0.3)
+ *  -  Added support for multiple object splitters
+ * 2004/10/27 (1.0.2)
+ *   -  Changed regexps to catch "-" symbols
+ *   -  Added support for URLs
+ * 2004/08/05 (1.0.1)
+ *   -  Added support for symbols
+ * 2004/07/14 (1.0.0)
+ *   -  First Release
+ *
+ * TODO (updated 2004/11/27)
+ * -------------------------
+ * * Improve or drop regexps for class/id highlighting
+ * * Re-look at keywords - possibly to make several CSS language
+ *   files, all with different versions of CSS in them
+ *
+ *************************************************************************************
+ *
+ *     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' => 'CSS',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        2 => "/(?<=\\()\\s*(?:(?:[a-z0-9]+?:\\/\\/)?[a-z0-9_\\-\\.\\/:]+?)?[a-z]+?\\.[a-z]+?(\\?[^\)]+?)?\\s*?(?=\\))/i"
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        //1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\[\da-fA-F]{1,6}\s?#i",
+        //Unicode Char Specs
+        //3 => "#\\\\u[\da-fA-F]{1,8}#i",
+    ),
+    'KEYWORDS' => array(
+        // properties
+        1 => array(
+            'align-content',
+            'align-items',
+            'align-self',
+            'all',
+            'animation',
+            'animation-delay',
+            'animation-direction',
+            'animation-duration',
+            'animation-fill-mode',
+            'animation-iteration-count',
+            'animation-name',
+            'animation-play-state',
+            'animation-timing-function',
+            'backface-visibility',
+            'background',
+            'background-attachment',
+            'background-blend-mode',
+            'background-clip',
+            'background-color',
+            'background-image',
+            'background-origin',
+            'background-position',
+            'background-repeat',
+            'background-size',
+            'border',
+            'border-bottom',
+            'border-bottom-color',
+            'border-bottom-left-radius',
+            'border-bottom-right-radius',
+            'border-bottom-style',
+            'border-bottom-width',
+            'border-collapse',
+            'border-color',
+            'border-image',
+            'border-image-outset',
+            'border-image-repeat',
+            'border-image-slice',
+            'border-image-source',
+            'border-image-width',
+            'border-left',
+            'border-left-color',
+            'border-left-style',
+            'border-left-width',
+            'border-radius',
+            'border-right',
+            'border-right-color',
+            'border-right-style',
+            'border-right-width',
+            'border-spacing',
+            'border-style',
+            'border-top',
+            'border-top-color',
+            'border-top-left-radius',
+            'border-top-right-radius',
+            'border-top-style',
+            'border-top-width',
+            'border-width',
+            'bottom',
+            'box-decoration-break',
+            'box-shadow',
+            'box-sizing',
+            'break-after',
+            'break-before',
+            'break-inside',
+            'caption-side',
+            'clear',
+            'clip',
+            'clip-path',
+            'color',
+            'columns',
+            'column-count',
+            'column-fill',
+            'column-gap',
+            'column-rule',
+            'column-rule-color',
+            'column-rule-style',
+            'column-rule-width',
+            'column-span',
+            'column-width',
+            'content',
+            'counter-increment',
+            'counter-reset',
+            'cursor',
+            'direction',
+            'display',
+            'empty-cells',
+            'fill',
+            'fill-rule',
+            'fill-opacity',
+            'filter',
+            'flex',
+            'flex-basis',
+            'flex-direction',
+            'flex-flow',
+            'flex-grow',
+            'flex-shrink',
+            'flex-wrap',
+            'float',
+            'font',
+            'font-family',
+            'font-feature-settings',
+            'font-kerning',
+            'font-language-override',
+            'font-size',
+            'font-size-adjust',
+            'font-stretch',
+            'font-style',
+            'font-synthesis',
+            'font-variant',
+            'font-variant-alternates',
+            'font-variant-caps',
+            'font-variant-east-asian',
+            'font-variant-ligatures',
+            'font-variant-numeric',
+            'font-variant-position',
+            'font-weight',
+            'grid',
+            'grid-area',
+            'grid-auto-columns',
+            'grid-auto-flow',
+            'grid-auto-position',
+            'grid-auto-rows',
+            'grid-column',
+            'grid-column-start',
+            'grid-column-end',
+            'grid-row',
+            'grid-row-start',
+            'grid-row-end',
+            'grid-template',
+            'grid-template-areas',
+            'grid-template-rows',
+            'grid-template-columns',
+            'height',
+            'hyphens',
+            'icon',
+            'image-rendering',
+            'image-resolution',
+            'image-orientation',
+            'ime-mode',
+            'justify-content',
+            'left',
+            'letter-spacing',
+            'line-break',
+            'line-height',
+            'list-style',
+            'list-style-image',
+            'list-style-position',
+            'list-style-type',
+            'margin',
+            'margin-bottom',
+            'margin-left',
+            'margin-right',
+            'margin-top',
+            'marks',
+            'mask',
+            'mask-type',
+            'max-height',
+            'max-width',
+            'min-height',
+            'min-width',
+            'mix-blend-mode',
+            'nav-down',
+            'nav-index',
+            'nav-left',
+            'nav-right',
+            'nav-up',
+            'object-fit',
+            'object-position',
+            'opacity',
+            'order',
+            'orphans',
+            'outline',
+            'outline-color',
+            'outline-offset',
+            'outline-style',
+            'outline-width',
+            'overflow',
+            'overflow-wrap',
+            'overflow-x',
+            'overflow-y',
+            'overflow-clip-box',
+            'padding',
+            'padding-bottom',
+            'padding-left',
+            'padding-right',
+            'padding-top',
+            'page-break-after',
+            'page-break-before',
+            'page-break-inside',
+            'perspective',
+            'perspective-origin',
+            'pointer-events',
+            'position',
+            'quotes',
+            'resize',
+            'right',
+            'shape-image-threshold',
+            'shape-margin',
+            'shape-outside',
+            'stroke',
+            'stroke-width',
+            'stroke-linecap',
+            'stroke-linejoin',
+            'stroke-miterlimit',
+            'stroke-dasharray',
+            'stroke-dashoffset',
+            'table-layout',
+            'tab-size',
+            'text-align',
+            'text-align-last',
+            'text-combine-horizontal',
+            'text-decoration',
+            'text-decoration-color',
+            'text-decoration-line',
+            'text-decoration-style',
+            'text-indent',
+            'text-orientation',
+            'text-overflow',
+            'text-rendering',
+            'text-shadow',
+            'text-transform',
+            'text-underline-position',
+            'top',
+            'touch-action',
+            'transform',
+            'transform-origin',
+            'transform-style',
+            'transition',
+            'transition-delay',
+            'transition-duration',
+            'transition-property',
+            'transition-timing-function',
+            'unicode-bidi',
+            'unicode-range',
+            'vertical-align',
+            'visibility',
+            'white-space',
+            'widows',
+            'width',
+            'will-change',
+            'word-break',
+            'word-spacing',
+            'word-wrap',
+            'writing-mode',
+            'z-index'
+        ),
+        // value
+        2 => array(
+            'absolute',
+            'activeborder',
+            'activecaption',
+            'after-white-space',
+            'ahead',
+            'alternate',
+            'always',
+            'appworkspace',
+            'armenian',
+            'auto',
+            'avoid',
+            'background',
+            'backwards',
+            'baseline',
+            'below',
+            'bevel',
+            'bidi-override',
+            'blink',
+            'block',
+            'block clear',
+            'block width',
+            'block-axis',
+            'bold',
+            'bolder',
+            'border',
+            'border-box',
+            'both',
+            'bottom',
+            'break-word',
+            'butt',
+            'button',
+            'button-bevel',
+            'buttonface',
+            'buttonhighlight',
+            'buttonshadow',
+            'buttontext',
+            'capitalize',
+            'caption',
+            'captiontext',
+            'caret',
+            'center',
+            'checkbox',
+            'circle',
+            'cjk-ideographic',
+            'clip',
+            'close-quote',
+            'collapse',
+            'compact',
+            'condensed',
+            'content',
+            'content-box',
+            'continuous',
+            'crop',
+            'cross',
+            'crosshair',
+            'currentColor',
+            'cursive',
+            'dashed',
+            'decimal',
+            'decimal-leading-zero',
+            'default',
+            'disc',
+            'discard',
+            'dot-dash',
+            'dot-dot-dash',
+            'dotted',
+            'double',
+            'down',
+            'e-resize',
+            'element',
+            'ellipsis',
+            'embed',
+            'end',
+            'evenodd',
+            'expanded',
+            'extra-condensed',
+            'extra-expanded',
+            'fantasy',
+            'fast',
+            'fixed',
+            'forwards',
+            'georgian',
+            'graytext',
+            'groove',
+            'hand',
+            'hebrew',
+            'help',
+            'hidden',
+            'hide',
+            'higher',
+            'highlight',
+            'highlighttext',
+            'hiragana',
+            'hiragana-iroha',
+            'horizontal',
+            'icon',
+            'ignore',
+            'inactiveborder',
+            'inactivecaption',
+            'inactivecaptiontext',
+            'infinite',
+            'infobackground',
+            'infotext',
+            'inherit',
+            'initial',
+            'inline',
+            'inline-axis',
+            'inline-block',
+            'inline-table',
+            'inset',
+            'inside',
+            'intrinsic',
+            'invert',
+            'italic',
+            'justify',
+            'katakana',
+            'katakana-iroha',
+            'landscape',
+            'large',
+            'larger',
+            'left',
+            'level',
+            'lighter',
+            'line-through',
+            'list-item',
+            'listbox',
+            'listitem',
+            'logical',
+            'loud',
+            'lower',
+            'lower-alpha',
+            'lower-greek',
+            'lower-latin',
+            'lower-roman',
+            'lowercase',
+            'ltr',
+            'marker',
+            'match',
+            'medium',
+            'menu',
+            'menulist',
+            'menulist-button',
+            'menulist-text',
+            'menulist-textfield',
+            'menutext',
+            'message-box',
+            'middle',
+            'min-intrinsic',
+            'miter',
+            'mix',
+            'monospace',
+            'move',
+            'multiple',
+            'n-resize',
+            'narrower',
+            'ne-resize',
+            'no-close',
+            'no-close-quote',
+            'no-open-quote',
+            'no-repeat',
+            'none',
+            'nonzero',
+            'normal',
+            'nowrap',
+            'nw-resize',
+            'oblique',
+            'once',
+            'open-quote',
+            'outset',
+            'outside',
+            'overline',
+            'padding',
+            'pointer',
+            'portrait',
+            'pre',
+            'pre-line',
+            'pre-wrap',
+            'push-button',
+            'radio',
+            'read-only',
+            'read-write',
+            'read-write-plaintext-only',
+            'relative',
+            'repeat',
+            'repeat-x',
+            'repeat-y',
+            'reverse',
+            'ridge',
+            'right',
+            'round',
+            'rtl',
+            'run-in',
+            's-resize',
+            'sans-serif',
+            'scroll',
+            'scrollbar',
+            'scrollbarbutton-down',
+            'scrollbarbutton-left',
+            'scrollbarbutton-right',
+            'scrollbarbutton-up',
+            'scrollbargripper-horizontal',
+            'scrollbargripper-vertical',
+            'scrollbarthumb-horizontal',
+            'scrollbarthumb-vertical',
+            'scrollbartrack-horizontal',
+            'scrollbartrack-vertical',
+            'se-resize',
+            'searchfield',
+            'searchfield-close',
+            'searchfield-results',
+            'semi-condensed',
+            'semi-expanded',
+            'separate',
+            'serif',
+            'show',
+            'single',
+            'skip-white-space',
+            'slide',
+            'slider-horizontal',
+            'slider-vertical',
+            'sliderthumb-horizontal',
+            'sliderthumb-vertical',
+            'slow',
+            'small',
+            'small-caps',
+            'small-caption',
+            'smaller',
+            'solid',
+            'space',
+            'square',
+            'square-button',
+            'start',
+            'static',
+            'status-bar',
+            'stretch',
+            'sub',
+            'super',
+            'sw-resize',
+            'table',
+            'table-caption',
+            'table-cell',
+            'table-column',
+            'table-column-group',
+            'table-footer-group',
+            'table-header-group',
+            'table-row',
+            'table-row-group',
+            'text',
+            'text-bottom',
+            'text-top',
+            'textfield',
+            'thick',
+            'thin',
+            'threeddarkshadow',
+            'threedface',
+            'threedhighlight',
+            'threedlightshadow',
+            'threedshadow',
+            'top',
+            'ultra-condensed',
+            'ultra-expanded',
+            'underline',
+            'unfurl',
+            'up',
+            'upper-alpha',
+            'upper-latin',
+            'upper-roman',
+            'uppercase',
+            'vertical',
+            'visible',
+            'visual',
+            'w-resize',
+            'wait',
+            'wave',
+            'wider',
+            'window',
+            'windowframe',
+            'windowtext',
+            'x-large',
+            'x-small',
+            'xx-large',
+            'xx-small'
+        ),
+        // function xxx()
+        3 => array(
+            'attr',
+            'calc',
+            'contrast',
+            'cross-fade',
+            'cubic-bezier',
+            'cycle',
+            'device-cmyk',
+            'drop-shadow',
+            'ellipse',
+            'hsl',
+            'hsla',
+            'hwb',
+            'image',
+            'matrix',
+            'matrix3d',
+            'minmax',
+            'grayscale',
+            'perspective',
+            'polygon',
+            'radial-gradient',
+            'translate',
+            'translatex',
+            'translatey',
+            'translatez',
+            'translate3d',
+            'skew',
+            'skewx',
+            'skewy',
+            'saturate',
+            'sepia',
+            'scale',
+            'scalex',
+            'scaley',
+            'scalez',
+            'scale3d',
+            'steps',
+            'rect',
+            'repeating-linear-gradient',
+            'repeating-radial-gradient',
+            'rgb',
+            'rgba',
+            'rotate',
+            'rotatex',
+            'rotatey',
+            'rotatez',
+            'rotate3d',
+            'url',
+            'var'
+        ),
+        // colors
+        4 => array(
+            'aliceblue',
+            'antiquewhite',
+            'aqua',
+            'aquamarine',
+            'azure',
+            'beige',
+            'bisque',
+            'black',
+            'blanchedalmond',
+            'blue',
+            'blueviolet',
+            'brown',
+            'burlywood',
+            'cadetblue',
+            'chartreuse',
+            'chocolate',
+            'coral',
+            'cornflowerblue',
+            'cornsilk',
+            'crimson',
+            'cyan',
+            'darkblue',
+            'darkcyan',
+            'darkgoldenrod',
+            'darkgray',
+            'darkgreen',
+            'darkgrey',
+            'darkkhaki',
+            'darkmagenta',
+            'darkolivegreen',
+            'darkorange',
+            'darkorchid',
+            'darkred',
+            'darksalmon',
+            'darkseagreen',
+            'darkslateblue',
+            'darkslategray',
+            'darkslategrey',
+            'darkturquoise',
+            'darkviolet',
+            'deeppink',
+            'deepskyblue',
+            'dimgray',
+            'dimgrey',
+            'dodgerblue',
+            'firebrick',
+            'floralwhite',
+            'forestgreen',
+            'fuchsia',
+            'gainsboro',
+            'ghostwhite',
+            'gold',
+            'goldenrod',
+            'gray',
+            'green',
+            'greenyellow',
+            'grey',
+            'honeydew',
+            'hotpink',
+            'indianred',
+            'indigo',
+            'ivory',
+            'khaki',
+            'lavender',
+            'lavenderblush',
+            'lawngreen',
+            'lemonchiffon',
+            'lightblue',
+            'lightcoral',
+            'lightcyan',
+            'lightgoldenrodyellow',
+            'lightgray',
+            'lightgreen',
+            'lightgrey',
+            'lightpink',
+            'lightsalmon',
+            'lightseagreen',
+            'lightskyblue',
+            'lightslategray',
+            'lightslategrey',
+            'lightsteelblue',
+            'lightyellow',
+            'lime',
+            'limegreen',
+            'linen',
+            'magenta',
+            'maroon',
+            'mediumaquamarine',
+            'mediumblue',
+            'mediumorchid',
+            'mediumpurple',
+            'mediumseagreen',
+            'mediumslateblue',
+            'mediumspringgreen',
+            'mediumturquoise',
+            'mediumvioletred',
+            'midnightblue',
+            'mintcream',
+            'mistyrose',
+            'moccasin',
+            'navajowhite',
+            'navy',
+            'oldlace',
+            'olive',
+            'olivedrab',
+            'orange',
+            'orangered',
+            'orchid',
+            'palegoldenrod',
+            'palegreen',
+            'paleturquoise',
+            'palevioletred',
+            'papayawhip',
+            'peachpuff',
+            'peru',
+            'pink',
+            'plum',
+            'powderblue',
+            'purple',
+            'rebeccapurple',
+            'red',
+            'rosybrown',
+            'royalblue',
+            'saddlebrown',
+            'salmon',
+            'sandybrown',
+            'seagreen',
+            'seashell',
+            'sienna',
+            'silver',
+            'skyblue',
+            'slateblue',
+            'slategray',
+            'slategrey',
+            'snow',
+            'springgreen',
+            'steelblue',
+            'tan',
+            'teal',
+            'thistle',
+            'transparent',
+            'tomato',
+            'turquoise',
+            'violet',
+            'wheat',
+            'white',
+            'whitesmoke',
+            'yellow',
+            'yellowgreen'
+        ),
+        // pseudo class
+        5 => array(
+            'active',
+            'after',
+            'before',
+            'checked',
+            'choices',
+            'dir',
+            'disabled',
+            'empty',
+            'enabled',
+            'first',
+            'first-child',
+            'first-letter',
+            'first-line',
+            'first-of-type',
+            'focus',
+            'fullscreen',
+            'hover',
+            'indeterminate',
+            'in-range',
+            'invalid',
+            'lang',
+            'last-child',
+            'last-of-type',
+            'link',
+            'not',
+            'nth-child',
+            'nth-last-child',
+            'nth-last-of-type',
+            'nth-of-type',
+            'only-child',
+            'only-of-type',
+            'optional',
+            'out-of-range',
+            'repeat-index',
+            'repeat-item',
+            'required',
+            'root',
+            'scope',
+            'selection',
+            'target',
+            'valid',
+            'value',
+            'visited'
+        )
+    ),
+    'SYMBOLS' => array(
+        '(', ')', '{', '}', ':', ';',
+        '>', '+', '*', ',', '^', '='
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000000; font-weight: bold;',
+            2 => 'color: #993333;',
+            3 => 'color: #9932cc;',
+            4 => 'color: #dc143c;',
+            5 => 'color: #F5758F;',
+        ),
+        'COMMENTS' => array(
+            2 => 'color: #ff0000; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            //1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #000099; font-weight: bold;'
+            //3 => 'color: #000099; font-weight: bold;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #00AA00;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+        ),
+        'METHODS' => array(),
+        'SYMBOLS' => array(
+            0 => 'color: #00AA00;'
+        ),
+        'SCRIPT' => array(),
+        'REGEXPS' => array(
+            0 => 'color: #cc00cc;',
+            1 => 'color: #6666ff;',
+            2 => 'color: #3F84D9; font-weight: bold;',
+            3 => 'color: #933;',
+            4 => 'color: #444;'
+        )
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => ''
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        //DOM Node ID
+        0 => '\#[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*',
+        //CSS classname
+        1 => '\.(?!\d)[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*\b(?=[\{\.#\s,:].|<\|)',
+        //CSS rules
+        2 => '\@(?!\d)[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*\b(?=[\{\.#\s,:].|<\|)',
+        //Measurements
+        3 => '[+\-]?(\d+|(\d*\.\d+))(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx|%)',
+        //var
+        4 => '(--[a-zA-Z0-9\-]*)'
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_AFTER' => '(?![\-a-zA-Z0-9_\|%\\-&\.])',
+            'DISALLOWED_BEFORE' => '(?<![\-a-zA-Z0-9_\|%\\~&\.])',
+            1 => array(
+                'DISALLOWED_AFTER' => '(?![\-a-zA-Z0-9_\|%\\-&\.])(?=\s*:)'
+            )
+        )
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/cuesheet.php b/vendor/geshi/geshi/src/geshi/cuesheet.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/cuesheet.php
rename to vendor/geshi/geshi/src/geshi/cuesheet.php
index 11d6b7a09a7b58a047be1b4a5e232273819151c9..97d631c408e33bb368370d91f29a10ff9dd26c25 100644
--- a/vendor/easybook/geshi/geshi/cuesheet.php
+++ b/vendor/geshi/geshi/src/geshi/cuesheet.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (benbe@geshi.org)
  * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/12/21
  *
  * Cuesheet language file for GeSHi.
@@ -134,4 +134,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/d.php b/vendor/geshi/geshi/src/geshi/d.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/d.php
rename to vendor/geshi/geshi/src/geshi/d.php
index db5fbf0e71ac555d2d3c86f1c801da4a70bf3a3b..5e3713a8096ddb139f906f2102c0ea652e92c599 100644
--- a/vendor/easybook/geshi/geshi/d.php
+++ b/vendor/geshi/geshi/src/geshi/d.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Jimmy Cao
  * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/04/22
  *
  * D language file for GeSHi.
@@ -248,4 +248,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/dart.php b/vendor/geshi/geshi/src/geshi/dart.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/dart.php
rename to vendor/geshi/geshi/src/geshi/dart.php
index 932e13e874a72411026dbb1bb8022a3f0b1180bd..83c00c9182cd6b45bd971a5720e3cb3d1182f763 100644
--- a/vendor/easybook/geshi/geshi/dart.php
+++ b/vendor/geshi/geshi/src/geshi/dart.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Edward Hart (edward.dan.hart@gmail.com)
  * Copyright: (c) 2013 Edward Hart
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2013/10/25
  *
  * Dart language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/dcl.php b/vendor/geshi/geshi/src/geshi/dcl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/dcl.php
rename to vendor/geshi/geshi/src/geshi/dcl.php
index b041e044b442f7c418c03913a92557e57301cae0..a1489c73912b072e445e16b891f4b553ac243b32 100644
--- a/vendor/easybook/geshi/geshi/dcl.php
+++ b/vendor/geshi/geshi/src/geshi/dcl.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Petr Hendl (petr@hendl.cz)
  * Copyright: (c) 2011 Petr Hendl http://hendl.cz/geshi/
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/02/17
  *
  * DCL language file for GeSHi.
@@ -188,4 +188,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/dcpu16.php b/vendor/geshi/geshi/src/geshi/dcpu16.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/dcpu16.php
rename to vendor/geshi/geshi/src/geshi/dcpu16.php
index 2b55db023afca09e3cc3b86c17d925eb63408e5c..8c61bff8cad56fc6514d28a9e4f5fcbebf6c805a 100644
--- a/vendor/easybook/geshi/geshi/dcpu16.php
+++ b/vendor/geshi/geshi/src/geshi/dcpu16.php
@@ -3,8 +3,8 @@
  * dcpu16.php
  * -------
  * Author: Benny Baumann (BenBE@omorphia.de)
- * Copyright: (c) 2007-2012 Benny Baumann (http://geshi.org/)
- * Release Version: 1.0.8.11
+ * Copyright: (c) 2007-2014 Benny Baumann (http://geshi.org/)
+ * Release Version: 1.0.9.0
  * Date Started: 2012/04/12
  *
  * DCPU/16 Assembly language file for GeSHi.
@@ -127,4 +127,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/dcs.php b/vendor/geshi/geshi/src/geshi/dcs.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/dcs.php
rename to vendor/geshi/geshi/src/geshi/dcs.php
index 67b6cd48acdf82cf68f3866142cf598964ba2732..58bf5a0fb20de94596674ace8434adb84120f966 100644
--- a/vendor/easybook/geshi/geshi/dcs.php
+++ b/vendor/geshi/geshi/src/geshi/dcs.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Stelio Passaris (GeSHi@stelio.net)
  * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/01/20
  *
  * DCS language file for GeSHi.
@@ -178,4 +178,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/delphi.php b/vendor/geshi/geshi/src/geshi/delphi.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/delphi.php
rename to vendor/geshi/geshi/src/geshi/delphi.php
index 34d0fd7bffbfae98662fc4069ed420fafc767863..fadb4ad710b512c308e25eb01236b6c6ab4f4fb3 100644
--- a/vendor/easybook/geshi/geshi/delphi.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/26
  *
  * Delphi (Object Pascal) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/diff.php b/vendor/geshi/geshi/src/geshi/diff.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/diff.php
rename to vendor/geshi/geshi/src/geshi/diff.php
index 1c72be96cc97f7a185fcf84a181254b1a0076700..ee01e0c1f3f0112d91aa0f517ad6b55eb7e38bf4 100644
--- a/vendor/easybook/geshi/geshi/diff.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/12/29
  *
  * Diff-output language file for GeSHi.
@@ -192,4 +192,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/div.php b/vendor/geshi/geshi/src/geshi/div.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/div.php
rename to vendor/geshi/geshi/src/geshi/div.php
index fb8a72a16e26a259a180962b789accc1e8fadc18..6ae99f1499a7db9cae25f18d6b7e635694b5d527 100644
--- a/vendor/easybook/geshi/geshi/div.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/06/19
  *
  * DIV language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/dos.php b/vendor/geshi/geshi/src/geshi/dos.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/dos.php
rename to vendor/geshi/geshi/src/geshi/dos.php
index f466a3cfa0f26e2880991918f8dc95abe9b00320..744cb82765da19860139e12f1f8e2af1496a14ae 100644
--- a/vendor/easybook/geshi/geshi/dos.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/07/05
  *
  * DOS language file for GeSHi.
@@ -223,4 +223,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/dot.php b/vendor/geshi/geshi/src/geshi/dot.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/dot.php
rename to vendor/geshi/geshi/src/geshi/dot.php
index c0bd0c025131ecd654fdd51fbea43edde8ed4d4a..77de029e19fc44f3ec5e156e70b53aaf77f49567 100644
--- a/vendor/easybook/geshi/geshi/dot.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/05/30
  *
  * dot language file for GeSHi.
@@ -160,4 +160,3 @@ $language_data = array (
         3 => true
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/e.php b/vendor/geshi/geshi/src/geshi/e.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/e.php
rename to vendor/geshi/geshi/src/geshi/e.php
index aacc001485c298af5f5d9715bed5fac71369e97e..5f321e6fd31b060a71171250be4e5410aab6e9d2 100644
--- a/vendor/easybook/geshi/geshi/e.php
+++ b/vendor/geshi/geshi/src/geshi/e.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Kevin Reid (kpreid@switchb.org)
  * Copyright: (c) 2010 Kevin Reid (http://switchb.org/kpreid/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/04/16
  *
  * E language file for GeSHi.
@@ -204,4 +204,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/ecmascript.php b/vendor/geshi/geshi/src/geshi/ecmascript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ecmascript.php
rename to vendor/geshi/geshi/src/geshi/ecmascript.php
index cae119247703cd48f927e181c521975a6c9cadea..8d4ab15a50894a0271c390c26e9c7944319b3e6b 100644
--- a/vendor/easybook/geshi/geshi/ecmascript.php
+++ b/vendor/geshi/geshi/src/geshi/ecmascript.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: Michel Mariani (http://www.tonton-pixel.com/site/)
  * Copyright: (c) 2010 Michel Mariani (http://www.tonton-pixel.com/site/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/01/08
  *
  * ECMAScript language file for GeSHi.
@@ -206,4 +206,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/eiffel.php b/vendor/geshi/geshi/src/geshi/eiffel.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/eiffel.php
rename to vendor/geshi/geshi/src/geshi/eiffel.php
index 807d23f944e7acab772ab701873eb4713d08882e..14a2cc03376ea4117dc326e0ba37bf108a10ce1d 100644
--- a/vendor/easybook/geshi/geshi/eiffel.php
+++ b/vendor/geshi/geshi/src/geshi/eiffel.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Zoran Simic (zsimic@axarosenberg.com)
  * Copyright: (c) 2005 Zoran Simic
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/06/30
  *
  * Eiffel language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/email.php b/vendor/geshi/geshi/src/geshi/email.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/email.php
rename to vendor/geshi/geshi/src/geshi/email.php
index 4d26c4f95c642346a6d5413aab55a0d45f3964ab..c77d0fac3167aa17a9bd3b5334f1b096496708ab 100644
--- a/vendor/easybook/geshi/geshi/email.php
+++ b/vendor/geshi/geshi/src/geshi/email.php
@@ -4,7 +4,7 @@
  * ---------------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/10/19
  *
  * Email (mbox \ eml \ RFC format) language file for GeSHi.
@@ -218,4 +218,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/epc.php b/vendor/geshi/geshi/src/geshi/epc.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/epc.php
rename to vendor/geshi/geshi/src/geshi/epc.php
index 6519943a9e20746428c81516f7a3ed32cb840c99..b3ea4ae21959fedb18d8c4946ab55df32f772c89 100644
--- a/vendor/easybook/geshi/geshi/epc.php
+++ b/vendor/geshi/geshi/src/geshi/epc.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Thorsten Muehlfelder (muehlfelder@enertex.de)
  * Copyright: (c) 2010 Enertex Bayern GmbH
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/08/26
  *
  * Enerscript language file for GeSHi.
@@ -150,4 +150,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/erlang.php b/vendor/geshi/geshi/src/geshi/erlang.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/erlang.php
rename to vendor/geshi/geshi/src/geshi/erlang.php
index d9e2e7ee4afe47442454b09dc2e951998973a296..a15383283a418670be1e22c67884a5b25d71ed04 100644
--- a/vendor/easybook/geshi/geshi/erlang.php
+++ b/vendor/geshi/geshi/src/geshi/erlang.php
@@ -7,7 +7,7 @@
  * - Uwe Dauernheim (uwe@dauernheim.net)
  * - Dan Forest-Barbier (dan@twisted.in)
  * Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008-09-27
  *
  * Erlang language file for GeSHi.
@@ -425,16 +425,15 @@ $language_data = array(
             3 => array(
                 'DISALLOWED_BEFORE' => '(?<![\w])',
                 'DISALLOWED_AFTER' => ''//'(?=\s*\()'
-            ),
+                ),
             5 => array(
                 'DISALLOWED_BEFORE' => '(?<=\'|)',
                 'DISALLOWED_AFTER' => '(?=(\'|):)'
-            ),
+                ),
             6 => array(
                 'DISALLOWED_BEFORE' => '(?<=\/|-)',
                 'DISALLOWED_AFTER' => ''
+                )
             )
         )
-    ),
 );
-
diff --git a/vendor/easybook/geshi/geshi/euphoria.php b/vendor/geshi/geshi/src/geshi/euphoria.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/euphoria.php
rename to vendor/geshi/geshi/src/geshi/euphoria.php
index 3a3cbfca3a9af29cea01751fa8496d7826591702..5888d0f5128e728d617f8a47ef1e0d319dade2ec 100644
--- a/vendor/easybook/geshi/geshi/euphoria.php
+++ b/vendor/geshi/geshi/src/geshi/euphoria.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Nicholas Koceja (nerketur@hotmail.com)
  * Copyright: (c) 2010 Nicholas Koceja
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 11/24/2010
  *
  * Euphoria language file for GeSHi.
@@ -136,4 +136,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/ezt.php b/vendor/geshi/geshi/src/geshi/ezt.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ezt.php
rename to vendor/geshi/geshi/src/geshi/ezt.php
index 74d8d520456c6bae99416ae4a597982281aa1f81..5052412399f8a2687e6ee61d5e82b76c76d3e930 100644
--- a/vendor/easybook/geshi/geshi/ezt.php
+++ b/vendor/geshi/geshi/src/geshi/ezt.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
  * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/09/01
  *
  * Easytrieve language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/f1.php b/vendor/geshi/geshi/src/geshi/f1.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/f1.php
rename to vendor/geshi/geshi/src/geshi/f1.php
index e35a07f9acbaccb26ff0184d76dcbff902f6623f..1203e1beda4fb7c1ec7e9a548b688f79fba09e60 100644
--- a/vendor/easybook/geshi/geshi/f1.php
+++ b/vendor/geshi/geshi/src/geshi/f1.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Juro Bystricky (juro@f1compiler.com)
  * Copyright: K2 Software Corp.
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/07/06
  *
  * Formula One language file for GeSHi.
@@ -147,4 +147,3 @@ $language_data = array(
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/falcon.php b/vendor/geshi/geshi/src/geshi/falcon.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/falcon.php
rename to vendor/geshi/geshi/src/geshi/falcon.php
index 43957750f64be7f77f3105d9aa9243c6059a1d71..ad5f3a69d43fc75eaaabb2d21421697a7ed17b23 100644
--- a/vendor/easybook/geshi/geshi/falcon.php
+++ b/vendor/geshi/geshi/src/geshi/falcon.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: billykater (billykater+geshi@gmail.com)
  * Copyright: (c) 2010 billykater (http://falconpl.org/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/06/07
  *
  * Falcon language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/fo.php b/vendor/geshi/geshi/src/geshi/fo.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/fo.php
rename to vendor/geshi/geshi/src/geshi/fo.php
index c4b6d11ee423fd66c815f330ccbc14f4ece917a0..8628bb10b3328a2e2ee3f07c36fe085a42cfaa1e 100644
--- a/vendor/easybook/geshi/geshi/fo.php
+++ b/vendor/geshi/geshi/src/geshi/fo.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Tan-Vinh Nguyen (tvnguyen@web.de)
  * Copyright: (c) 2009 Tan-Vinh Nguyen
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/03/23
  *
  * fo language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/fortran.php b/vendor/geshi/geshi/src/geshi/fortran.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/fortran.php
rename to vendor/geshi/geshi/src/geshi/fortran.php
index a77b6e7faebcef7ee84361035c4b44eb6440efa0..e463cb9afd932cb9d4d43e670c9c722fed472223 100644
--- a/vendor/easybook/geshi/geshi/fortran.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/04/22
  *
  * Fortran language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/freebasic.php b/vendor/geshi/geshi/src/geshi/freebasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/freebasic.php
rename to vendor/geshi/geshi/src/geshi/freebasic.php
index c5426449664b9fa706647ca20e066c0deaebb980..cc6bd7b7712f59b587a663f86e2a52dec0b7b34f 100644
--- a/vendor/easybook/geshi/geshi/freebasic.php
+++ b/vendor/geshi/geshi/src/geshi/freebasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/08/19
  *
  * FreeBasic (http://www.freebasic.net/) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/freeswitch.php b/vendor/geshi/geshi/src/geshi/freeswitch.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/freeswitch.php
rename to vendor/geshi/geshi/src/geshi/freeswitch.php
index 5412e6d69fec2ebdafaf7f74f739fccf2bf37cec..14f2b93a779a8118fac6cc20bf50c6dac5892301 100644
--- a/vendor/easybook/geshi/geshi/freeswitch.php
+++ b/vendor/geshi/geshi/src/geshi/freeswitch.php
@@ -4,7 +4,7 @@
  * --------
  * Author: James Rose (james.gs@stubbornroses.com)
  * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1.0.8.11n/a
+ * Release Version: 1.0.9.0
  * Date Started: 2011/11/18
  *
  * FreeSWITCH language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/fsharp.php b/vendor/geshi/geshi/src/geshi/fsharp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/fsharp.php
rename to vendor/geshi/geshi/src/geshi/fsharp.php
index 5743e4ef43c9cb1a247aefb7f42dd94399803fa8..5fc9878417b1863c6a906d5e71ac7e9e3d57ac2e 100644
--- a/vendor/easybook/geshi/geshi/fsharp.php
+++ b/vendor/geshi/geshi/src/geshi/fsharp.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: julien ortin (jo_spam-divers@yahoo.fr)
  * Copyright: (c) 2009 julien ortin
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/09/20
  *
  * F# language file for GeSHi.
@@ -209,4 +209,3 @@ $language_data = array(
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/gambas.php b/vendor/geshi/geshi/src/geshi/gambas.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/gambas.php
rename to vendor/geshi/geshi/src/geshi/gambas.php
index 295edd0c4bd0be3ebbe2041a4800af73522ea6f5..8510b86a98ef925fcd7cf78c14d00fe282098b39 100644
--- a/vendor/easybook/geshi/geshi/gambas.php
+++ b/vendor/geshi/geshi/src/geshi/gambas.php
@@ -5,7 +5,7 @@
  * Author: Jesus Guardon (jguardon@telefonica.net)
  * Copyright: (c) 2009 Jesus Guardon (http://gambas-es.org),
  *                     Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/20
  *
  * GAMBAS language file for GeSHi.
@@ -210,4 +210,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/gdb.php b/vendor/geshi/geshi/src/geshi/gdb.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/gdb.php
rename to vendor/geshi/geshi/src/geshi/gdb.php
index 9f63d25b0951c999dc318d6c801dcce53b22420d..d05a9ca9d7782b36d4b1e99176fd5fca2836a63f 100644
--- a/vendor/easybook/geshi/geshi/gdb.php
+++ b/vendor/geshi/geshi/src/geshi/gdb.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2009 Milian Wolff
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/06/24
  *
  * GDB language file for GeSHi.
@@ -189,8 +189,6 @@ $language_data = array (
     'PARSER_CONTROL' => array(
         'ENABLE_FLAGS' => array(
             'NUMBERS' => false
-            ),
+            )
         )
 );
-
-// kate: replace-tabs on; indent-width 4;
diff --git a/vendor/easybook/geshi/geshi/genero.php b/vendor/geshi/geshi/src/geshi/genero.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/genero.php
rename to vendor/geshi/geshi/src/geshi/genero.php
index 2ab24855f469f4e00725d29be7066d08ef923f72..4d3cc3638c1b5cc02e43a21b7e39a5d82043a954 100644
--- a/vendor/easybook/geshi/geshi/genero.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/07/01
  *
  * Genero (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/genie.php b/vendor/geshi/geshi/src/geshi/genie.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/genie.php
rename to vendor/geshi/geshi/src/geshi/genie.php
index 3bab1b7b773cb8e0aac6b1882d1ab233c14ef931..dabc38913c973075cb3d3623f2d4dd0da3ae1988 100644
--- a/vendor/easybook/geshi/geshi/genie.php
+++ b/vendor/geshi/geshi/src/geshi/genie.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nicolas Joseph (nicolas.joseph@valaide.org)
  * Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/04/29
  *
  * Genie language file for GeSHi.
@@ -150,6 +150,6 @@ $language_data = array (
         'KEYWORDS' => array(
             'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
             'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
+            )
         )
-    )
 );
diff --git a/vendor/easybook/geshi/geshi/gettext.php b/vendor/geshi/geshi/src/geshi/gettext.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/gettext.php
rename to vendor/geshi/geshi/src/geshi/gettext.php
index eb928bf6cbae57d2213e9ea62fbfe510a3d414fc..871f5ae67918a8e7600f0735fe63fbed78069ce1 100644
--- a/vendor/easybook/geshi/geshi/gettext.php
+++ b/vendor/geshi/geshi/src/geshi/gettext.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/05/25
  *
  * GNU Gettext .po/.pot language file for GeSHi.
@@ -91,5 +91,5 @@ $language_data = array (
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
-    'TAB_WIDTH' => 4,
+    'TAB_WIDTH' => 4
 );
diff --git a/vendor/easybook/geshi/geshi/glsl.php b/vendor/geshi/geshi/src/geshi/glsl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/glsl.php
rename to vendor/geshi/geshi/src/geshi/glsl.php
index d254bb90f87c8ef2c8599361e4de898e89b5d7e6..d67adb2b5e05505ef986ae279a00879e8e116449 100644
--- a/vendor/easybook/geshi/geshi/glsl.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/03/20
  *
  * glSlang language file for GeSHi.
@@ -201,4 +201,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/gml.php b/vendor/geshi/geshi/src/geshi/gml.php
new file mode 100644
index 0000000000000000000000000000000000000000..2cb0cd2e6b8155efbd2f0c09ad8ff87592705694
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/gml.php
@@ -0,0 +1,367 @@
+<?php
+/*************************************************************************************
+ * gml.php
+ * -------
+ * Author: José Jorge Enríquez <jenriquez@users.sourceforge.net>, Timon Knigge <timonknigge@live.nl>
+ * Copyright: (c) 2005 José Jorge Enríquez Rodríguez (http://www.zonamakers.com), (c) 2013 Timon Knigge (http://www.bluemoonproductions.nl)
+ * Release Version: 1.0.9.0
+ * Date Started: 2005/06/21
+ *
+ * GML language file for GeSHi.
+ *
+ * GML (Game Maker Language) is a script language that is built-in into Game Maker,
+ * a game creation program, more info about Game Maker can be found at
+ * http://www.gamemaker.nl/
+ * All GML keywords were extracted from the Game Maker HTML Help file using a PHP
+ * script (one section at a time). I love PHP for saving me that bunch of work :P!.
+ * I think all GML functions have been indexed here, but I'm not sure about it, so
+ * please let me know of any issue you may find.
+ *
+ * CHANGES
+ * -------
+ * 2005/11/11
+ *  -  Changed 'CASE_KEYWORDS' fom 'GESHI_CAPS_LOWER' to 'GESHI_CAPS_NO_CHANGE',
+ *     so that MCI_command appears correctly (the only GML function using capitals).
+ *  -  Changed 'CASE_SENSITIVE' options, 'GESHI_COMMENTS' from true to false and all
+ *     of the others from false to true.
+ *  -  Deleted repeated entries.
+ *  -  div and mod are language keywords, moved (from symbols) to the appropiate section (1).
+ *  -  Moved self, other, all, noone and global identifiers to language keywords section 1.
+ *  -  Edited this file lines to a maximum width of 100 characters (as stated in
+ *     the GeSHi docs). Well, not strictly to 100 but around it.
+ *  -  Corrected some minor issues (the vk_f1...vk_f12 keys and similar).
+ *  -  Deleted the KEYWORDS=>5 and KEYWORDS=>6 sections (actually, they were empty).
+ *     I was planning of using those for the GML functions available only in the
+ *     registered version of the program, but not anymore.
+ *
+ * 2005/06/26 (1.0.3)
+ *  -  First Release.
+ *
+ * TODO (updated 2005/11/11)
+ * -------------------------
+ *  -  Test it for a while and make the appropiate corrections.
+ *
+ *************************************************************************************
+ *
+ *     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' => 'GML',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        // Variables
+        1 => array(
+            'argument','argument0','argument1','argument10','argument11','argument12','argument13','argument14','argument15','argument2','argument3','argument4','argument5','argument6','argument7',
+            'argument8','argument9','argument_count','argument_relative','async_load','background_alpha','background_blend','background_color','background_foreground','background_height','background_hspeed',
+            'background_htiled','background_index','background_showcolor','background_visible','background_vspeed','background_vtiled','background_width','background_x','background_xscale','background_y',
+            'background_yscale','browser_height','browser_width','caption_health','caption_lives','caption_score','current_day','current_hour','current_minute','current_month','current_second','current_time',
+            'current_weekday','current_year','cursor_sprite','debug_mode','delta_time','display_aa','error_last','error_occurred','event_action','event_number','event_object','event_type','fps','fps_real',
+            'game_id','gamemaker_pro','gamemaker_registered','gamemaker_version','health','instance_count','instance_id','keyboard_key','keyboard_lastchar','keyboard_lastkey','keyboard_string','lives',
+            'mouse_button','mouse_lastbutton','mouse_x','mouse_y','os_browser','os_device','os_type','os_version','program_directory','room','room_caption','room_first','room_height','room_last',
+            'room_persistent','room_speed','room_width','score','secure_mode','show_health','show_lives','show_score','temp_directory','transition_color','transition_kind','transition_steps','view_angle',
+            'view_current','view_enabled','view_hborder','view_hport','view_hspeed','view_hview','view_object','view_surface_id','view_vborder','view_visible','view_vspeed','view_wport','view_wview','view_xport',
+            'view_xview','view_yport','view_yview','webgl_enabled','working_directory','alarm','bbox_bottom','bbox_left','bbox_right','bbox_top','depth','direction','friction','gravity','gravity_direction',
+            'hspeed','id','image_alpha','image_angle','image_blend','image_index','image_number','image_single','image_speed','image_xscale','image_yscale','mask_index','object_index','path_endaction','path_index',
+            'path_orientation','path_position','path_positionprevious','path_scale','path_speed','persistent','phy_active','phy_angular_damping','phy_angular_velocity','phy_bullet','phy_col_normal_x',
+            'phy_col_normal_y','phy_collision_points','phy_collision_x','phy_collision_y','phy_com_x','phy_com_y','phy_dynamic','phy_fixed_rotation','phy_inertia','phy_kinematic','phy_linear_damping',
+            'phy_linear_velocity_x','phy_linear_velocity_y','phy_mass','phy_position_x','phy_position_xprevious','phy_position_y','phy_position_yprevious','phy_rotation','phy_sleeping','phy_speed','phy_speed_x',
+            'phy_speed_y','solid','speed','sprite_height','sprite_index','sprite_width','sprite_xoffset','sprite_yoffset','timeline_index','timeline_loop','timeline_position','timeline_running','timeline_speed',
+            'visible','vspeed','x','xprevious','xstart','y','yprevious','ystart'
+            ),
+
+        // Functions
+        2 => array(
+            'YoYo_AchievementsAvailable','YoYo_AddVirtualKey','YoYo_CheckSecurity','YoYo_DeleteVirtualKey','YoYo_DisableAds','YoYo_EnableAds','YoYo_EnableAlphaBlend','YoYo_GetCPUDetails','YoYo_GetConfig',
+            'YoYo_GetDevice','YoYo_GetDomain','YoYo_GetPictureSprite','YoYo_GetPlatform','YoYo_GetSessionKey','YoYo_GetTiltX','YoYo_GetTiltY','YoYo_GetTiltZ','YoYo_GetTimer','YoYo_HideVirtualKey','YoYo_IsKeypadOpen',
+            'YoYo_LeaveRating','YoYo_LoginAchievements','YoYo_LogoutAchievements','YoYo_MouseCheckButton','YoYo_MouseCheckButtonPressed','YoYo_MouseCheckButtonReleased','YoYo_MouseX','YoYo_MouseXRaw','YoYo_MouseY',
+            'YoYo_MouseYRaw','YoYo_OSPauseEvent','YoYo_OpenURL','YoYo_OpenURL_ext','YoYo_OpenURL_full','YoYo_PostAchievement','YoYo_PostScore','YoYo_SelectPicture','YoYo_ShowVirtualKey','abs','achievement_available',
+            'achievement_event','achievement_get_challenges','achievement_get_info','achievement_get_pic','achievement_increment','achievement_load_friends','achievement_load_leaderboard','achievement_load_progress',
+            'achievement_login','achievement_login_status','achievement_logout','achievement_post','achievement_post_score','achievement_reset','achievement_send_challenge','achievement_show',
+            'achievement_show_achievements','achievement_show_challenge_notifications','achievement_show_leaderboards','action_another_room','action_bounce','action_change_object','action_color','action_create_object',
+            'action_create_object_motion','action_create_object_random','action_current_room','action_draw_arrow','action_draw_background','action_draw_ellipse','action_draw_ellipse_gradient','action_draw_gradient_hor',
+            'action_draw_gradient_vert','action_draw_health','action_draw_life','action_draw_life_images','action_draw_line','action_draw_rectangle','action_draw_score','action_draw_sprite','action_draw_text',
+            'action_draw_text_transformed','action_draw_variable','action_effect','action_end_game','action_end_sound','action_execute_script','action_font','action_fullscreen','action_highscore_clear','action_if',
+            'action_if_aligned','action_if_collision','action_if_dice','action_if_empty','action_if_health','action_if_life','action_if_mouse','action_if_next_room','action_if_number','action_if_object',
+            'action_if_previous_room','action_if_question','action_if_score','action_if_sound','action_if_variable','action_inherited','action_kill_object','action_kill_position','action_linear_step','action_load_game',
+            'action_message','action_move','action_move_contact','action_move_point','action_move_random','action_move_start','action_move_to','action_next_room','action_partemit_burst','action_partemit_create',
+            'action_partemit_destroy','action_partemit_stream','action_partsyst_clear','action_partsyst_create','action_partsyst_destroy','action_parttype_color','action_parttype_create','action_parttype_gravity',
+            'action_parttype_life','action_parttype_secondary','action_parttype_speed','action_path','action_path_end','action_path_position','action_path_speed','action_potential_step','action_previous_room',
+            'action_replace_background','action_replace_sound','action_replace_sprite','action_restart_game','action_reverse_xdir','action_reverse_ydir','action_save_game','action_set_alarm','action_set_cursor',
+            'action_set_friction','action_set_gravity','action_set_health','action_set_hspeed','action_set_life','action_set_motion','action_set_score','action_set_timeline_position','action_set_timeline_speed',
+            'action_set_vspeed','action_snap','action_snapshot','action_sound','action_sprite_color','action_sprite_set','action_sprite_transform','action_timeline_pause','action_timeline_set','action_timeline_start',
+            'action_timeline_stop','action_webpage','action_wrap','ads_disable','ads_enable','ads_engagement_active','ads_engagement_available','ads_engagement_launch','ads_event','ads_event_preload',
+            'ads_get_display_height','ads_get_display_width','ads_interstitial_available','ads_interstitial_display','ads_move','ads_set_reward_callback','ads_setup','analytics_event','analytics_event_ext','ansi_char',
+            'arccos','arcsin','arctan','arctan2','array_height_2d','array_length_1d','array_length_2d','asset_get_index','asset_get_type','audio_channel_num','audio_emitter_create','audio_emitter_exists',
+            'audio_emitter_falloff','audio_emitter_free','audio_emitter_gain','audio_emitter_pitch','audio_emitter_position','audio_emitter_velocity','audio_exists','audio_falloff_set_model','audio_get_type',
+            'audio_is_paused','audio_is_playing','audio_listener_orientation','audio_listener_position','audio_listener_velocity','audio_master_gain','audio_music_gain','audio_music_is_playing','audio_pause_all',
+            'audio_pause_music','audio_pause_sound','audio_play_music','audio_play_sound','audio_play_sound_at','audio_play_sound_on','audio_resume_all','audio_resume_music','audio_resume_sound','audio_sound_gain',
+            'audio_sound_length','audio_sound_pitch','audio_stop_all','audio_stop_music','audio_stop_sound','audio_system','background_add','background_assign','background_create_color','background_create_from_surface',
+            'background_create_gradient','background_delete','background_duplicate','background_exists','background_get_height','background_get_name','background_get_texture','background_get_uvs','background_get_width',
+            'background_replace','background_save','background_set_alpha_from_background','base64_decode','base64_encode','buffer_base64_decode','buffer_base64_decode_ext','buffer_base64_encode','buffer_copy',
+            'buffer_create','buffer_delete','buffer_fill','buffer_get_size','buffer_get_surface','buffer_load','buffer_load_ext','buffer_md5','buffer_peek','buffer_poke','buffer_read','buffer_resize','buffer_save',
+            'buffer_save_ext','buffer_seek','buffer_set_surface','buffer_sha1','buffer_sizeof','buffer_tell','buffer_write','ceil','choose','chr','clamp','clickable_add','clickable_add_ext','clickable_change',
+            'clickable_change_ext','clickable_delete','clickable_exists','clipboard_get_text','clipboard_has_text','clipboard_set_text','cloud_file_save','cloud_string_save','cloud_synchronise','code_is_compiled',
+            'collision_circle','collision_ellipse','collision_line','collision_point','collision_rectangle','color_get_blue','color_get_green','color_get_hue','color_get_red','color_get_saturation','color_get_value',
+            'cos','d3d_draw_block','d3d_draw_cone','d3d_draw_cylinder','d3d_draw_ellipsoid','d3d_draw_floor','d3d_draw_wall','d3d_end','d3d_light_define_ambient','d3d_light_define_direction','d3d_light_define_point',
+            'd3d_light_enable','d3d_model_block','d3d_model_clear','d3d_model_cone','d3d_model_create','d3d_model_cylinder','d3d_model_destroy','d3d_model_draw','d3d_model_ellipsoid','d3d_model_floor','d3d_model_load',
+            'd3d_model_primitive_begin','d3d_model_primitive_end','d3d_model_save','d3d_model_vertex','d3d_model_vertex_color','d3d_model_vertex_normal','d3d_model_vertex_normal_color','d3d_model_vertex_normal_texture',
+            'd3d_model_vertex_normal_texture_color','d3d_model_vertex_texture','d3d_model_vertex_texture_color','d3d_model_wall','d3d_primitive_begin','d3d_primitive_begin_texture','d3d_primitive_end','d3d_set_culling',
+            'd3d_set_depth','d3d_set_fog','d3d_set_hidden','d3d_set_lighting','d3d_set_perspective','d3d_set_projection','d3d_set_projection_ext','d3d_set_projection_ortho','d3d_set_projection_perspective',
+            'd3d_set_shading','d3d_set_zwriteenable','d3d_start','d3d_transform_add_rotation_axis','d3d_transform_add_rotation_x','d3d_transform_add_rotation_y','d3d_transform_add_rotation_z','d3d_transform_add_scaling',
+            'd3d_transform_add_translation','d3d_transform_set_identity','d3d_transform_set_rotation_axis','d3d_transform_set_rotation_x','d3d_transform_set_rotation_y','d3d_transform_set_rotation_z',
+            'd3d_transform_set_scaling','d3d_transform_set_translation','d3d_transform_stack_clear','d3d_transform_stack_discard','d3d_transform_stack_empty','d3d_transform_stack_pop','d3d_transform_stack_push',
+            'd3d_transform_stack_top','d3d_transform_vertex','d3d_vertex','d3d_vertex_color','d3d_vertex_normal','d3d_vertex_normal_color','d3d_vertex_normal_texture','d3d_vertex_normal_texture_color','d3d_vertex_texture',
+            'd3d_vertex_texture_color','date_compare_date','date_compare_datetime','date_compare_time','date_create_datetime','date_current_datetime','date_date_of','date_date_string','date_datetime_string','date_day_span',
+            'date_days_in_month','date_days_in_year','date_get_day','date_get_day_of_year','date_get_hour','date_get_hour_of_year','date_get_minute','date_get_minute_of_year','date_get_month','date_get_second',
+            'date_get_second_of_year','date_get_week','date_get_weekday','date_get_year','date_hour_span','date_inc_day','date_inc_hour','date_inc_minute','date_inc_month','date_inc_second','date_inc_week','date_inc_year',
+            'date_is_today','date_leap_year','date_minute_span','date_month_span','date_second_span','date_time_of','date_time_string','date_valid_datetime','date_week_span','date_year_span','degtorad','device_get_tilt_x',
+            'device_get_tilt_y','device_get_tilt_z','device_ios_get_image','device_ios_get_imagename','device_is_keypad_open','device_mouse_check_button','device_mouse_check_button_pressed',
+            'device_mouse_check_button_released','device_mouse_dbclick_enable','device_mouse_raw_x','device_mouse_raw_y','device_mouse_x','device_mouse_y','directory_create','directory_exists','display_get_dpi_x',
+            'display_get_dpi_y','display_get_gui_height','display_get_gui_width','display_get_height','display_get_orientation','display_get_width','display_mouse_get_x','display_mouse_get_y','display_mouse_set',
+            'display_reset','display_set_gui_size','distance_to_object','distance_to_point','dot_product','dot_product_3d','dot_product_3d_normalised','dot_product_normalised','draw_arrow','draw_background',
+            'draw_background_ext','draw_background_general','draw_background_part','draw_background_part_ext','draw_background_stretched','draw_background_stretched_ext','draw_background_tiled','draw_background_tiled_ext',
+            'draw_button','draw_circle','draw_circle_color','draw_clear','draw_clear_alpha','draw_ellipse','draw_ellipse_color','draw_enable_alphablend','draw_enable_drawevent','draw_get_alpha','draw_get_alpha_test',
+            'draw_get_alpha_test_ref_value','draw_get_color','draw_getpixel','draw_getpixel_ext','draw_healthbar','draw_highscore','draw_line','draw_line_color','draw_line_width','draw_line_width_color','draw_path',
+            'draw_point','draw_point_color','draw_primitive_begin','draw_primitive_begin_texture','draw_primitive_end','draw_rectangle','draw_rectangle_color','draw_roundrect','draw_roundrect_color','draw_self',
+            'draw_set_alpha','draw_set_alpha_test','draw_set_alpha_test_ref_value','draw_set_blend_mode','draw_set_blend_mode_ext','draw_set_circle_precision','draw_set_color','draw_set_color_write_enable',
+            'draw_set_font','draw_set_halign','draw_set_valign','draw_sprite','draw_sprite_ext','draw_sprite_general','draw_sprite_part','draw_sprite_part_ext','draw_sprite_pos','draw_sprite_stretched',
+            'draw_sprite_stretched_ext','draw_sprite_tiled','draw_sprite_tiled_ext','draw_surface','draw_surface_ext','draw_surface_general','draw_surface_part','draw_surface_part_ext','draw_surface_stretched',
+            'draw_surface_stretched_ext','draw_surface_tiled','draw_surface_tiled_ext','draw_text','draw_text_color','draw_text_ext','draw_text_ext_color','draw_text_ext_transformed','draw_text_ext_transformed_color',
+            'draw_text_transformed','draw_text_transformed_color','draw_texture_flush','draw_triangle','draw_triangle_color','draw_vertex','draw_vertex_color','draw_vertex_texture','draw_vertex_texture_color',
+            'ds_exists','ds_grid_add','ds_grid_add_disk','ds_grid_add_grid_region','ds_grid_add_region','ds_grid_clear','ds_grid_copy','ds_grid_create','ds_grid_destroy','ds_grid_get','ds_grid_get_disk_max',
+            'ds_grid_get_disk_mean','ds_grid_get_disk_min','ds_grid_get_disk_sum','ds_grid_get_max','ds_grid_get_mean','ds_grid_get_min','ds_grid_get_sum','ds_grid_height','ds_grid_multiply','ds_grid_multiply_disk',
+            'ds_grid_multiply_grid_region','ds_grid_multiply_region','ds_grid_read','ds_grid_resize','ds_grid_set','ds_grid_set_disk','ds_grid_set_grid_region','ds_grid_set_region','ds_grid_shuffle','ds_grid_sort',
+            'ds_grid_value_disk_exists','ds_grid_value_disk_x','ds_grid_value_disk_y','ds_grid_value_exists','ds_grid_value_x','ds_grid_value_y','ds_grid_width','ds_grid_write','ds_list_add','ds_list_clear',
+            'ds_list_copy','ds_list_create','ds_list_delete','ds_list_destroy','ds_list_empty','ds_list_find_index','ds_list_find_value','ds_list_insert','ds_list_mark_as_list','ds_list_mark_as_map','ds_list_read',
+            'ds_list_replace','ds_list_shuffle','ds_list_size','ds_list_sort','ds_list_write','ds_map_add','ds_map_add_list','ds_map_add_map','ds_map_clear','ds_map_copy','ds_map_create','ds_map_delete',
+            'ds_map_destroy','ds_map_empty','ds_map_exists','ds_map_find_first','ds_map_find_last','ds_map_find_next','ds_map_find_previous','ds_map_find_value','ds_map_read','ds_map_replace','ds_map_replace_list',
+            'ds_map_replace_map','ds_map_size','ds_map_write','ds_priority_add','ds_priority_change_priority','ds_priority_clear','ds_priority_copy','ds_priority_create','ds_priority_delete_max','ds_priority_delete_min',
+            'ds_priority_delete_value','ds_priority_destroy','ds_priority_empty','ds_priority_find_max','ds_priority_find_min','ds_priority_find_priority','ds_priority_read','ds_priority_size','ds_priority_write',
+            'ds_queue_clear','ds_queue_copy','ds_queue_create','ds_queue_dequeue','ds_queue_destroy','ds_queue_empty','ds_queue_enqueue','ds_queue_head','ds_queue_read','ds_queue_size','ds_queue_tail','ds_queue_write',
+            'ds_set_precision','ds_stack_clear','ds_stack_copy','ds_stack_create','ds_stack_destroy','ds_stack_empty','ds_stack_pop','ds_stack_push','ds_stack_read','ds_stack_size','ds_stack_top','ds_stack_write',
+            'effect_clear','effect_create_above','effect_create_below','environment_get_variable','event_inherited','event_perform','event_perform_object','event_user','exp','external_call','external_define','external_free',
+            'facebook_accesstoken','facebook_dialog','facebook_graph_request','facebook_init','facebook_launch_offerwall','facebook_login','facebook_logout','facebook_post_message','facebook_send_invite','facebook_status',
+            'facebook_user_id','file_attributes','file_bin_close','file_bin_open','file_bin_position','file_bin_read_byte','file_bin_rewrite','file_bin_seek','file_bin_size','file_bin_write_byte','file_copy','file_delete',
+            'file_exists','file_find_close','file_find_first','file_find_next','file_rename','file_text_close','file_text_eof','file_text_eoln','file_text_open_append','file_text_open_from_string','file_text_open_read',
+            'file_text_open_write','file_text_read_real','file_text_read_string','file_text_readln','file_text_write_real','file_text_write_string','file_text_writeln','filename_change_ext','filename_dir','filename_drive',
+            'filename_ext','filename_name','filename_path','floor','font_add','font_add_sprite','font_add_sprite_ext','font_delete','font_exists','font_get_bold','font_get_first','font_get_fontname','font_get_italic',
+            'font_get_last','font_get_name','font_get_size','font_get_texture','font_get_uvs','font_replace','font_replace_sprite','font_replace_sprite_ext','font_set_cache_size','frac','game_end','game_load',
+            'game_load_buffer','game_restart','game_save','game_save_buffer','gamepad_axis_count','gamepad_axis_value','gamepad_button_check','gamepad_button_check_pressed','gamepad_button_check_released',
+            'gamepad_button_count','gamepad_button_value','gamepad_get_axis_deadzone','gamepad_get_button_threshold','gamepad_get_description','gamepad_get_device_count','gamepad_is_connected','gamepad_is_supported',
+            'gamepad_set_axis_deadzone','gamepad_set_button_threshold','gamepad_set_vibration','get_integer','get_integer_async','get_login_async','get_open_filename','get_open_filename_ext','get_save_filename',
+            'get_save_filename_ext','get_string','get_string_async','get_timer','highscore_add','highscore_clear','highscore_name','highscore_value','http_get','http_get_file','http_post_string','iap_acquire',
+            'iap_activate','iap_consume','iap_event_queue','iap_files_purchased','iap_is_downloaded','iap_is_purchased','iap_product_details','iap_product_files','iap_product_status','iap_restore_all','iap_status',
+            'iap_store_status','immersion_play_effect','immersion_stop','ini_close','ini_key_delete','ini_key_exists','ini_open','ini_open_from_string','ini_read_real','ini_read_string','ini_section_delete',
+            'ini_section_exists','ini_write_real','ini_write_string','instance_activate_all','instance_activate_object','instance_activate_region','instance_change','instance_copy','instance_create',
+            'instance_deactivate_all','instance_deactivate_object','instance_deactivate_region','instance_destroy','instance_exists','instance_find','instance_furthest','instance_nearest','instance_number',
+            'instance_place','instance_position','io_clear','irandom','irandom_range','is_array','is_real','is_string','joystick_axes','joystick_buttons','joystick_check_button','joystick_direction','joystick_exists',
+            'joystick_has_pov','joystick_name','joystick_pov','joystick_rpos','joystick_upos','joystick_vpos','joystick_xpos','joystick_ypos','joystick_zpos','json_decode','json_encode','keyboard_check',
+            'keyboard_check_direct','keyboard_check_pressed','keyboard_check_released','keyboard_clear','keyboard_get_map','keyboard_get_numlock','keyboard_key_press','keyboard_key_release','keyboard_set_map',
+            'keyboard_set_numlock','keyboard_unset_map','lengthdir_x','lengthdir_y','lerp','ln','log10','log2','logn','make_color_hsv','make_color_rgb','math_set_epsilon','matrix_build','matrix_get','matrix_multiply',
+            'matrix_set','max','md5_file','md5_string_unicode','md5_string_utf8','mean','median','merge_color','message_caption','min','motion_add','motion_set','mouse_check_button','mouse_check_button_pressed',
+            'mouse_check_button_released','mouse_clear','mouse_wheel_down','mouse_wheel_up','move_bounce','move_bounce_all','move_bounce_solid','move_contact','move_contact_all','move_contact_solid','move_outside_all',
+            'move_outside_solid','move_random','move_snap','move_towards_point','move_wrap','mp_grid_add_cell','mp_grid_add_instances','mp_grid_add_rectangle','mp_grid_clear_all','mp_grid_clear_cell',
+            'mp_grid_clear_rectangle','mp_grid_create','mp_grid_destroy','mp_grid_draw','mp_grid_path','mp_linear_path','mp_linear_path_object','mp_linear_step','mp_linear_step_object','mp_potential_path',
+            'mp_potential_path_object','mp_potential_settings','mp_potential_step','mp_potential_step_object','network_connect','network_connect_raw','network_create_server','network_create_socket','network_destroy',
+            'network_resolve','network_send_broadcast','network_send_packet','network_send_raw','network_send_udp','network_set_timeout','object_exists','object_get_depth','object_get_mask',
+            'object_get_name','object_get_parent','object_get_persistent','object_get_physics','object_get_solid','object_get_sprite','object_get_visible','object_is_ancestor','object_set_depth','object_set_mask',
+            'object_set_persistent','object_set_solid','object_set_sprite','object_set_visible','ord','os_get_config','os_get_info','os_get_language','os_is_network_connected','os_is_paused','os_lock_orientation',
+            'os_powersave_enable','parameter_count','parameter_string','part_emitter_burst','part_emitter_clear','part_emitter_create','part_emitter_destroy','part_emitter_destroy_all','part_emitter_exists',
+            'part_emitter_region','part_emitter_stream','part_particles_clear','part_particles_count','part_particles_create','part_particles_create_color','part_system_automatic_draw','part_system_automatic_update',
+            'part_system_clear','part_system_create','part_system_depth','part_system_destroy','part_system_draw_order','part_system_drawit','part_system_exists','part_system_position','part_system_update',
+            'part_type_alpha','part_type_alpha1','part_type_alpha2','part_type_alpha3','part_type_blend','part_type_clear','part_type_color','part_type_color1','part_type_color2','part_type_color3','part_type_color_hsv',
+            'part_type_color_mix','part_type_color_rgb','part_type_create','part_type_death','part_type_destroy','part_type_direction','part_type_exists','part_type_gravity','part_type_life','part_type_orientation',
+            'part_type_scale','part_type_shape','part_type_size','part_type_speed','part_type_sprite','part_type_step','path_add','path_add_point','path_append','path_assign','path_change_point','path_clear_points',
+            'path_delete','path_delete_point','path_duplicate','path_end','path_exists','path_flip','path_get_closed','path_get_kind','path_get_length','path_get_name','path_get_number','path_get_point_speed',
+            'path_get_point_x','path_get_point_y','path_get_precision','path_get_speed','path_get_x','path_get_y','path_insert_point','path_mirror','path_rescale','path_reverse','path_rotate','path_set_closed',
+            'path_set_kind','path_set_precision','path_shift','path_start','physics_apply_force','physics_apply_impulse','physics_apply_local_force','physics_apply_local_impulse','physics_apply_torque',
+            'physics_draw_debug','physics_fixture_add_point','physics_fixture_bind','physics_fixture_bind_ext','physics_fixture_create','physics_fixture_delete','physics_fixture_set_angular_damping',
+            'physics_fixture_set_awake','physics_fixture_set_box_shape','physics_fixture_set_circle_shape','physics_fixture_set_collision_group','physics_fixture_set_density','physics_fixture_set_edge_shape',
+            'physics_fixture_set_friction','physics_fixture_set_kinematic','physics_fixture_set_linear_damping','physics_fixture_set_polygon_shape','physics_fixture_set_restitution','physics_fixture_set_sensor',
+            'physics_get_density','physics_get_friction','physics_get_restitution','physics_joint_delete','physics_joint_distance_create','physics_joint_enable_motor','physics_joint_gear_create','physics_joint_get_value',
+            'physics_joint_prismatic_create','physics_joint_pulley_create','physics_joint_revolute_create','physics_joint_set_value','physics_mass_properties','physics_pause_enable','physics_remove_fixture','physics_set_density',
+            'physics_set_friction','physics_set_restitution','physics_test_overlap','physics_world_create','physics_world_draw_debug','physics_world_gravity','physics_world_update_iterations','physics_world_update_speed',
+            'place_empty','place_free','place_meeting','place_snapped','playhaven_add_notification_badge','playhaven_hide_notification_badge','playhaven_position_notification_badge','playhaven_update_notification_badge',
+            'pocketchange_display_reward','pocketchange_display_shop','point_direction','point_distance','point_distance_3d','position_change','position_destroy','position_empty','position_meeting','power','radtodeg','random',
+            'random_get_seed','random_range','random_set_seed','randomize','real','room_add','room_assign','room_duplicate','room_exists','room_get_name','room_goto','room_goto_next','room_goto_previous','room_instance_add',
+            'room_instance_clear','room_next','room_previous','room_restart','room_set_background','room_set_background_color','room_set_height','room_set_persistent','room_set_view','room_set_view_enabled','room_set_width',
+            'room_tile_add','room_tile_add_ext','room_tile_clear','round','screen_save','screen_save_part','script_execute','script_exists','script_get_name','sha1_file','sha1_string_unicode','sha1_string_utf8','shader_enable_corner_id',
+            'shader_get_sampler_index','shader_get_uniform','shader_is_compiled','shader_reset','shader_set','shader_set_uniform_f','shader_set_uniform_f_array','shader_set_uniform_i','shader_set_uniform_i_array',
+            'shader_set_uniform_matrix','shader_set_uniform_matrix_array','shaders_are_supported','shop_leave_rating','show_debug_message','show_debug_overlay','show_error','show_message','show_message_async',
+            'show_question','show_question_async','sign','sin','sound_add','sound_delete','sound_exists','sound_fade','sound_get_name','sound_global_volume','sound_isplaying','sound_loop','sound_play','sound_replace',
+            'sound_stop','sound_stop_all','sound_volume','sprite_add','sprite_add_from_surface','sprite_assign','sprite_collision_mask','sprite_create_from_surface','sprite_delete','sprite_duplicate','sprite_exists',
+            'sprite_get_bbox_bottom','sprite_get_bbox_left','sprite_get_bbox_right','sprite_get_bbox_top','sprite_get_height','sprite_get_name','sprite_get_number','sprite_get_texture','sprite_get_tpe','sprite_get_uvs',
+            'sprite_get_width','sprite_get_xoffset','sprite_get_yoffset','sprite_merge','sprite_replace','sprite_save','sprite_save_strip','sprite_set_alpha_from_sprite','sprite_set_cache_size','sprite_set_cache_size_ext',
+            'sprite_set_offset','sqr','sqrt','steam_activate_overlay','steam_clear_achievement','steam_create_leaderboard','steam_download_friends_scores','steam_download_scores','steam_download_scores_around_user',
+            'steam_file_delete','steam_file_exists','steam_file_persisted','steam_file_read','steam_file_share','steam_file_size','steam_file_write','steam_file_write_file','steam_get_achievement','steam_get_persona_name',
+            'steam_get_quota_free','steam_get_quota_total','steam_get_stat_avg_rate','steam_get_stat_float','steam_get_stat_int','steam_get_user_steam_id','steam_initialised','steam_is_cloud_enabled_for_account',
+            'steam_is_cloud_enabled_for_app','steam_is_overlay_activated','steam_is_overlay_enabled','steam_is_screenshot_requested','steam_is_user_logged_on','steam_publish_workshop_file','steam_reset_all_stats',
+            'steam_reset_all_stats_achievements','steam_send_screenshot','steam_set_achievement','steam_set_stat_avg_rate','steam_set_stat_float','steam_set_stat_int','steam_stats_ready','steam_upload_score',
+            'steam_user_installed_dlc','steam_user_owns_dlc','string','string_byte_at','string_byte_length','string_char_at','string_copy','string_count','string_delete','string_digits','string_format','string_height',
+            'string_height_ext','string_insert','string_length','string_letters','string_lettersdigits','string_lower','string_pos','string_repeat','string_replace','string_replace_all','string_set_byte_at','string_upper',
+            'string_width','string_width_ext','surface_copy','surface_copy_part','surface_create','surface_create_ext','surface_exists','surface_free','surface_get_height','surface_get_texture','surface_get_width',
+            'surface_getpixel','surface_getpixel_ext','surface_reset_target','surface_save','surface_save_part','surface_set_target','surface_set_target_ext','tan','texture_exists','texture_get_height','texture_get_texel_height',
+            'texture_get_texel_width','texture_get_width','texture_set_blending','texture_set_interpolation','texture_set_interpolation_ext','texture_set_repeat','texture_set_repeat_ext','texture_set_stage','tile_add',
+            'tile_delete','tile_delete_at','tile_exists','tile_find','tile_get_alpha','tile_get_background','tile_get_blend','tile_get_depth','tile_get_height','tile_get_left','tile_get_top','tile_get_visible','tile_get_width',
+            'tile_get_x','tile_get_xscale','tile_get_y','tile_get_yscale','tile_layer_delete','tile_layer_delete_at','tile_layer_depth','tile_layer_find','tile_layer_hide','tile_layer_shift','tile_layer_show','tile_set_alpha',
+            'tile_set_background','tile_set_blend','tile_set_depth','tile_set_position','tile_set_region','tile_set_scale','tile_set_visible','timeline_add','timeline_clear','timeline_delete','timeline_exists','timeline_get_name',
+            'timeline_moment_clear','url_get_domain','url_open','url_open_ext','url_open_full','vertex_argb','vertex_begin','vertex_colour','vertex_create_buffer','vertex_create_buffer_ext','vertex_delete_buffer','vertex_end',
+            'vertex_float1','vertex_float2','vertex_float3','vertex_float4','vertex_format_add_colour','vertex_format_add_custom','vertex_format_add_normal','vertex_format_add_position','vertex_format_add_position_3d',
+            'vertex_format_add_textcoord','vertex_format_begin','vertex_format_end','vertex_freeze','vertex_normal','vertex_position','vertex_position_3d','vertex_submit','vertex_texcoord','vertex_ubyte4','virtual_key_add',
+            'virtual_key_delete','virtual_key_hide','virtual_key_show','win8_appbar_add_element','win8_appbar_enable','win8_appbar_remove_element','win8_device_touchscreen_available','win8_license_initialize_sandbox',
+            'win8_license_trial_version','win8_livetile_badge_clear','win8_livetile_badge_notification','win8_livetile_notification_begin','win8_livetile_notification_end','win8_livetile_notification_expiry',
+            'win8_livetile_notification_image_add','win8_livetile_notification_secondary_begin','win8_livetile_notification_tag','win8_livetile_notification_text_add','win8_livetile_queue_enable','win8_livetile_tile_clear',
+            'win8_livetile_tile_notification','win8_search_add_suggestions','win8_search_disable','win8_search_enable','win8_secondarytile_badge_notification','win8_secondarytile_delete','win8_secondarytile_pin',
+            'win8_settingscharm_add_entry','win8_settingscharm_add_html_entry','win8_settingscharm_add_xaml_entry','win8_settingscharm_get_xaml_property','win8_settingscharm_remove_entry','win8_settingscharm_set_xaml_property',
+            'win8_share_file','win8_share_image','win8_share_screenshot','win8_share_text','win8_share_url','window_center','window_get_caption','window_get_color','window_get_cursor','window_get_fullscreen','window_get_height',
+            'window_get_width','window_get_x','window_get_y','window_handle','window_has_focus','window_mouse_get_x','window_mouse_get_y','window_mouse_set','window_set_caption','window_set_color','window_set_cursor',
+            'window_set_fullscreen','window_set_position','window_set_rectangle','window_set_size','window_view_mouse_get_x','window_view_mouse_get_y','window_views_mouse_get_x','window_views_mouse_get_y',
+            'winphone_license_trial_version','winphone_tile_back_content','winphone_tile_back_content_wide','winphone_tile_back_image','winphone_tile_back_image_wide','winphone_tile_back_title','winphone_tile_background_color',
+            'winphone_tile_count','winphone_tile_cycle_images','winphone_tile_front_image','winphone_tile_front_image_small','winphone_tile_front_image_wide','winphone_tile_icon_image','winphone_tile_small_background_image',
+            'winphone_tile_small_icon_image','winphone_tile_title','winphone_tile_wide_content','zip_unzip'
+            ),
+
+        // Constants
+        3 => array(
+            'ANSI_CHARSET','ARABIC_CHARSET','BALTIC_CHARSET','CHINESEBIG5_CHARSET','DEFAULT_CHARSET','EASTEUROPE_CHARSET','GB2312_CHARSET','GREEK_CHARSET','HANGEUL_CHARSET','HEBREW_CHARSET','JOHAB_CHARSET',
+            'MAC_CHARSET','OEM_CHARSET','RUSSIAN_CHARSET','SHIFTJIS_CHARSET','SYMBOL_CHARSET','THAI_CHARSET','TURKISH_CHARSET','VIETNAMESE_CHARSET','achievement_achievement_info','achievement_challenge_completed',
+            'achievement_challenge_completed_by_remote','achievement_challenge_launched','achievement_challenge_list_received','achievement_challenge_received','achievement_filter_all_players',
+            'achievement_filter_friends_only','achievement_friends_info','achievement_leaderboard_info','achievement_our_info','achievement_pic_loaded','achievement_player_info','achievement_purchase_info',
+            'achievement_show_achievement','achievement_show_bank','achievement_show_friend_picker','achievement_show_leaderboard','achievement_show_profile','achievement_show_purchase_prompt','achievement_show_ui',
+            'achievement_type_achievement_challenge','achievement_type_score_challenge','all','asset_background','asset_font','asset_object','asset_path','asset_room','asset_script','asset_sound','asset_sprite',
+            'asset_timeline','asset_unknown','audio_falloff_exponent_distance','audio_falloff_exponent_distance_clamped','audio_falloff_inverse_distance','audio_falloff_inverse_distance_clamped',
+            'audio_falloff_linear_distance','audio_falloff_linear_distance_clamped','audio_falloff_none','audio_new_system','audio_old_system','bm_add','bm_dest_alpha','bm_dest_color','bm_inv_dest_alpha',
+            'bm_inv_dest_color','bm_inv_src_alpha','bm_inv_src_color','bm_max','bm_normal','bm_one','bm_src_alpha','bm_src_alpha_sat','bm_src_color','bm_subtract','bm_zero','browser_chrome',
+            'browser_firefox','browser_ie','browser_ie_mobile','browser_not_a_browser','browser_opera','browser_safari','browser_safari_mobile','browser_tizen','browser_unknown','browser_windows_store','buffer_bool',
+            'buffer_f16','buffer_f32','buffer_f64','buffer_fast','buffer_fixed','buffer_generalerror','buffer_grow','buffer_invalidtype','buffer_outofbounds','buffer_outofspace','buffer_s16','buffer_s32','buffer_s8',
+            'buffer_seek_end','buffer_seek_relative','buffer_seek_start','buffer_string','buffer_u16','buffer_u32','buffer_u8','buffer_vbuffer','buffer_wrap','button_type','c_aqua','c_black','c_blue','c_dkgray',
+            'c_fuchsia','c_gray','c_green','c_lime','c_ltgray','c_maroon','c_navy','c_olive','c_orange','c_purple','c_red','c_silver','c_teal','c_white','c_yellow','cr_appstart','cr_arrow','cr_beam','cr_cross',
+            'cr_default','cr_drag','cr_handpoint','cr_help','cr_hourglass','cr_hsplit','cr_multidrag','cr_no','cr_nodrop','cr_none','cr_size_all','cr_size_nesw','cr_size_ns','cr_size_nwse','cr_size_we','cr_sqlwait',
+            'cr_uparrow','cr_vsplit','device_emulator','device_ios_ipad','device_ios_ipad_retina','device_ios_iphone','device_ios_iphone5','device_ios_iphone_retina','device_ios_unknown','device_tablet','display_landscape',
+            'display_landscape_flipped','display_portrait','display_portrait_flipped','dll_cdecl','dll_stdcall','ds_type_grid','ds_type_list','ds_type_map','ds_type_priority','ds_type_queue','ds_type_stack','e','ef_cloud',
+            'ef_ellipse','ef_explosion','ef_firework','ef_flare','ef_rain','ef_ring','ef_smoke','ef_smokeup','ef_snow','ef_spark','ef_star','ev_alarm','ev_animation_end','ev_boundary','ev_close_button','ev_collision',
+            'ev_create','ev_destroy','ev_draw','ev_end_of_path','ev_game_end','ev_game_start','ev_global_left_button','ev_global_left_press','ev_global_left_release','ev_global_middle_button','ev_global_middle_press',
+            'ev_global_middle_release','ev_global_press','ev_global_release','ev_global_right_button','ev_global_right_press','ev_global_right_release','ev_gui','ev_joystick1_button1','ev_joystick1_button2',
+            'ev_joystick1_button3','ev_joystick1_button4','ev_joystick1_button5','ev_joystick1_button6','ev_joystick1_button7','ev_joystick1_button8','ev_joystick1_down','ev_joystick1_left','ev_joystick1_right',
+            'ev_joystick1_up','ev_joystick2_button1','ev_joystick2_button2','ev_joystick2_button3','ev_joystick2_button4','ev_joystick2_button5','ev_joystick2_button6','ev_joystick2_button7','ev_joystick2_button8',
+            'ev_joystick2_down','ev_joystick2_left','ev_joystick2_right','ev_joystick2_up','ev_keyboard','ev_keypress','ev_keyrelease','ev_left_button','ev_left_press','ev_left_release','ev_middle_button',
+            'ev_middle_press','ev_middle_release','ev_mouse','ev_mouse_enter','ev_mouse_leave','ev_mouse_wheel_down','ev_mouse_wheel_up','ev_no_button','ev_no_more_health','ev_no_more_lives','ev_other','ev_outside',
+            'ev_right_button','ev_right_press','ev_right_release','ev_room_end','ev_room_start','ev_step','ev_step_begin','ev_step_end','ev_step_normal','ev_trigger','ev_user0','ev_user1','ev_user10','ev_user11',
+            'ev_user12','ev_user13','ev_user14','ev_user15','ev_user2','ev_user3','ev_user4','ev_user5','ev_user6','ev_user7','ev_user8','ev_user9','fa_archive','fa_bottom','fa_center','fa_directory','fa_hidden',
+            'fa_left','fa_middle','fa_readonly','fa_right','fa_sysfile','fa_top','fa_volumeid','false','gp_axislh','gp_axislv','gp_axisrh','gp_axisrv','gp_face1','gp_face2','gp_face3','gp_face4','gp_padd',
+            'gp_padl','gp_padr','gp_padu','gp_select','gp_shoulderl','gp_shoulderlb','gp_shoulderr','gp_shoulderrb','gp_start','gp_stickl','gp_stickr','input_type','lb_disp_none','lb_disp_numeric','lb_disp_time_ms',
+            'lb_disp_time_sec','lb_sort_ascending','lb_sort_descending','lb_sort_none','leaderboard_type_number','leaderboard_type_time_mins_secs','matrix_projection','matrix_view','matrix_world','mb_any',
+            'mb_left','mb_middle','mb_none','mb_right','network_socket_bluetooth','network_socket_tcp','network_socket_udp','network_type_connect','network_type_data','network_type_disconnect',
+            'of_challenge_lose','of_challenge_tie','of_challenge_win','os_android','os_ios','os_linux','os_macosx','os_psp','os_symbian','os_tizen','os_unknown','os_win32','os_win8native','os_windows','os_winphone',
+            'ov_achievements','ov_community','ov_friends','ov_gamegroup','ov_players','ov_settings','phy_debug_render_aabb','phy_debug_render_collision_pairs','phy_debug_render_coms',
+            'phy_debug_render_core_shapes','phy_debug_render_joints','phy_debug_render_obb','phy_debug_render_shapes','phy_joint_anchor_1_x','phy_joint_anchor_1_y','phy_joint_anchor_2_x','phy_joint_anchor_2_y',
+            'phy_joint_angle','phy_joint_angle_limits','phy_joint_damping_ratio','phy_joint_frequency','phy_joint_length_1','phy_joint_length_2','phy_joint_lower_angle_limit','phy_joint_max_motor_force',
+            'phy_joint_max_motor_torque','phy_joint_motor_force','phy_joint_motor_speed','phy_joint_motor_torque','phy_joint_reaction_force_x','phy_joint_reaction_force_y','phy_joint_reaction_torque','phy_joint_speed',
+            'phy_joint_translation','phy_joint_upper_angle_limit','pi','pr_linelist','pr_linestrip','pr_pointlist','pr_trianglefan','pr_trianglelist','pr_trianglestrip','ps_change_all','ps_change_motion',
+            'ps_change_shape','ps_deflect_horizontal','ps_deflect_vertical','ps_distr_gaussian','ps_distr_invgaussian','ps_distr_linear','ps_force_constant','ps_force_linear','ps_force_quadratic','ps_shape_diamond',
+            'ps_shape_ellipse','ps_shape_line','ps_shape_rectangle','pt_shape_circle','pt_shape_cloud','pt_shape_disk','pt_shape_explosion','pt_shape_flare','pt_shape_line','pt_shape_pixel','pt_shape_ring',
+            'pt_shape_smoke','pt_shape_snow','pt_shape_spark','pt_shape_sphere','pt_shape_square','pt_shape_star','se_chorus','se_compressor','se_echo','se_equalizer','se_flanger','se_gargle','se_none','se_reverb',
+            'text_type','true','ty_real','ty_string','vertex_type_colour','vertex_type_float1','vertex_type_float2','vertex_type_float3','vertex_type_float4','vertex_type_ubyte4','vertex_usage_binormal',
+            'vertex_usage_blendindices','vertex_usage_blendweight','vertex_usage_colour','vertex_usage_depth','vertex_usage_fog','vertex_usage_normal','vertex_usage_position','vertex_usage_psize','vertex_usage_sample',
+            'vertex_usage_tagnet','vertex_usage_textcoord','vk_add','vk_alt','vk_anykey','vk_backspace','vk_control','vk_decimal','vk_delete','vk_divide','vk_down','vk_end','vk_enter','vk_escape','vk_f1','vk_f10',
+            'vk_f11','vk_f12','vk_f2','vk_f3','vk_f4','vk_f5','vk_f6','vk_f7','vk_f8','vk_f9','vk_home','vk_insert','vk_lalt','vk_lcontrol','vk_left','vk_lshift','vk_multiply','vk_nokey','vk_numpad0','vk_numpad1',
+            'vk_numpad2','vk_numpad3','vk_numpad4','vk_numpad5','vk_numpad6','vk_numpad7','vk_numpad8','vk_numpad9','vk_pagedown','vk_pageup','vk_pause','vk_printscreen','vk_ralt','vk_rcontrol','vk_return','vk_right',
+            'vk_rshift','vk_shift','vk_space','vk_subtract','vk_tab','vk_up'
+            ),
+
+        // Keywords
+        4 => array(
+            'if','while','do','until','exit','break','continue','for','switch','case','default',
+            'else','then','begin','end','repeat','var','globalvar','with','div','mod',
+            'self','noone','other','global','local','return',
+            'and','or','xor','not'
+            )
+        ),
+
+    'SYMBOLS' => array(
+        // Angled brackets
+        0 => array('{','}'),
+        // Other brackets
+        1 => array('(',')','[',']'),
+        // Operators (NOTE: Operators and/or/not/xor are included in the keywords section. These are non-alphanumeric operators
+        2 => array('&&', '||', '^^', '&', '|', '^',
+            '<', '<=', '==', '!=', '>', '>=', '=',
+            '<<', '>>',
+            '+=', '-=', '*=', '/=',
+            '+', '-', '*', '/',
+            '!', '~', ',', ';'
+        )),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #800000;',
+            2 => 'color: #800000;',
+            3 => 'color: #800000;',
+            4 => 'color: #000080; font-weight: bold;'),
+        'COMMENTS' => array(
+            1 => 'font-style: italic; color: #008000;',
+            'MULTI' => 'font-style: italic; color: #008000;'),
+        'ESCAPE_CHAR' => array(
+            0 => ''),
+        'BRACKETS' => array(
+            0 => 'color: #000080;'),
+        'STRINGS' => array(
+            0 => 'color: #0000FF;',
+            1 => 'color: #0000FF;'),
+        'NUMBERS' => array(
+            0 => 'color: #0000FF;'),
+        'METHODS' => array(
+            0 => 'color: #800000;'),
+        'SYMBOLS' => array(
+            0 => 'color: #000080; font-weight: bold;',
+            1 => 'color: #000000;',
+            2 => 'color: #000000;'),
+        '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(
+        )
+);
diff --git a/vendor/easybook/geshi/geshi/gnuplot.php b/vendor/geshi/geshi/src/geshi/gnuplot.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/gnuplot.php
rename to vendor/geshi/geshi/src/geshi/gnuplot.php
index 272ecfaf2306b8ef9d5fed6c5812f484d7796d06..55e1055d98b50ec902765cf350a7f1ec62ea0f1d 100644
--- a/vendor/easybook/geshi/geshi/gnuplot.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/07/07
  *
  * Gnuplot script language file for GeSHi.
@@ -292,4 +292,3 @@ $language_data = array (
     ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/go.php b/vendor/geshi/geshi/src/geshi/go.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/go.php
rename to vendor/geshi/geshi/src/geshi/go.php
index 38f23c9d628eb60a735d49d39a506e2d0538a4de..5c9212bebc32464886bb2a5e0333a6007e1b871b 100644
--- a/vendor/easybook/geshi/geshi/go.php
+++ b/vendor/geshi/geshi/src/geshi/go.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Markus Jarderot (mizardx at gmail dot com)
  * Copyright: (c) 2010 Markus Jarderot
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/05/20
  *
  * Go language file for GeSHi.
@@ -321,7 +321,7 @@ $language_data = array(
             ),
         'STRINGS' => array(
             0 => 'color: #0000ff;',
-            0 => 'color: #cc66cc;'
+            0 => 'color: #cc66cc;' // FIXME: Duplicate array key
             ),
         'NUMBERS' => array(
             0 => 'color: #cc66cc;'
@@ -371,4 +371,3 @@ $language_data = array(
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/groovy.php b/vendor/geshi/geshi/src/geshi/groovy.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/groovy.php
rename to vendor/geshi/geshi/src/geshi/groovy.php
index 021dc1f2e54bfca2fe6b49c441a7db30b484b540..9f201bbdffc997c93e7dac5f404229df04ab09a0 100644
--- a/vendor/easybook/geshi/geshi/groovy.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/04/29
  *
  * Groovy language file for GeSHi.
@@ -1007,4 +1007,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/gwbasic.php b/vendor/geshi/geshi/src/geshi/gwbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/gwbasic.php
rename to vendor/geshi/geshi/src/geshi/gwbasic.php
index a42b09b73a9b95c6226e1f3a7210a2e79efadda2..9bf2c1592d2516bd0f016f33790a5c68a1c56f3e 100644
--- a/vendor/easybook/geshi/geshi/gwbasic.php
+++ b/vendor/geshi/geshi/src/geshi/gwbasic.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: José Gabriel Moya Yangüela (josemoya@gmail.com)
  * Copyright: (c) 2010 José Gabriel Moya Yangüela (http://doc.apagada.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/01/30
  *
  * GwBasic language file for GeSHi.
@@ -149,4 +149,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/haskell.php b/vendor/geshi/geshi/src/geshi/haskell.php
similarity index 83%
rename from vendor/easybook/geshi/geshi/haskell.php
rename to vendor/geshi/geshi/src/geshi/haskell.php
index 7780142039f02b1ff9cb75f64e84529b1e2e4a46..7b7c904a3e0d0851c658348f8ebdeca705375102 100644
--- a/vendor/easybook/geshi/geshi/haskell.php
+++ b/vendor/geshi/geshi/src/geshi/haskell.php
@@ -2,21 +2,15 @@
 /*************************************************************************************
  * haskell.php
  * ----------
- * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com)
+ * Author: Daniel Mlot (duplode_1 at yahoo dot com dot br)
+ *         Based on haskell.php by Jason Dagit (dagit@codersbase.com), which was
+ *         based on ocaml.php by Flaie (fireflaie@gmail.com).
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
- * Date Started: 2005/08/27
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/05/12
  *
  * Haskell language file for GeSHi.
  *
- * CHANGES
- * -------
- * 2005/08/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2005/08/27)
- * -------------------------
- *
  *************************************************************************************
  *
  *   This file is part of GeSHi.
@@ -46,7 +40,7 @@ $language_data = array (
         3 => "/{-(?:(?R)|.)-}/s", //Nested Comments
         ),
     'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array('"',"'"),
+    'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         /* main haskell keywords */
@@ -58,7 +52,7 @@ $language_data = array (
             'instance', 'let', 'in', 'module', 'newtype',
             'qualified', 'type', 'where'
             ),
-        /* define names of main librarys, so we can link to it */
+        /* define names of main libraries, so we can link to it */
         2 => array(
             'Foreign', 'Numeric', 'Prelude'
             ),
@@ -107,35 +101,34 @@ $language_data = array (
             'interact', 'readFile', 'writeFile', 'appendFile',
             'readIO', 'readLn', 'ioError', 'userError', 'catch'
             ),
-        /* here Prelude Types */
+        /* Prelude types */
         4 => array (
-            'Bool', 'Maybe', 'Either', 'Ord', 'Ordering',
-            'Char', 'String', 'Eq', 'Enum', 'Bounded',
+            'Bool', 'Maybe', 'Either', 'Ordering',
+            'Char', 'String',
             'Int', 'Integer', 'Float', 'Double', 'Rational',
-            'Num', 'Real', 'Integral', 'Fractional',
-            'Floating', 'RealFrac', 'RealFloat', 'Monad',
-            'Functor', 'Show', 'ShowS', 'Read', 'ReadS',
-            'IO'
+            'ShowS', 'ReadS',
+            'IO', 'IOError', 'IOException'
             ),
-        /* finally Prelude Exceptions */
+        /* Prelude classes */
         5 => array (
-            'IOError', 'IOException'
+            'Ord', 'Eq', 'Enum', 'Bounded',
+            'Num', 'Real', 'Integral', 'Fractional',
+            'Floating', 'RealFrac', 'RealFloat',
+            'Monad', 'Functor',
+            'Show', 'Read'
             )
         ),
-    /* highlighting symbols is really important in Haskell */
+    /* Most symbol combinations can be valid Haskell operators */
     'SYMBOLS' => array(
-        '|', '->', '<-', '@', '!', '::', '_', '~', '=', '?',
-        '&&', '||', '==', '/=', '<', '<=', '>',
-        '>=','+', '-', '*','/', '%', '**', '^', '^^',
-        '>>=', '>>', '=<<',  '$', '.', ',', '$!',
-        '++', '!!'
+        '!', '@', '#', '$', '%', '&', '*', '-', '+', '=',
+        '^', '~', '|', '\\', '>', '<', ':', '?', '/'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => true,
-        2 => true, /* functions name are case seinsitive */
-        3 => true, /* types name too */
-        4 => true, /* finally exceptions too */
+        1 => true, /* Haskell is a case sensitive language */
+        2 => true,
+        3 => true,
+        4 => true,
         5 => true
         ),
     'STYLES' => array(
@@ -144,7 +137,7 @@ $language_data = array (
             2 => 'color: #06c; font-weight: bold;', /* blue as well */
             3 => 'font-weight: bold;', /* make the preduled functions bold */
             4 => 'color: #cccc00; font-weight: bold;', /* give types a different bg */
-            5 => 'color: maroon;'
+            5 => 'color: maroon; font-weight: bold;' /* similarly for classes */
             ),
         'COMMENTS' => array(
             1 => 'color: #5d478b; font-style: italic;',
@@ -159,7 +152,7 @@ $language_data = array (
             0 => 'color: green;'
             ),
         'STRINGS' => array(
-            0 => 'background-color: #3cb371;' /* nice green */
+            0 => 'color: #3cb371;' /* nice green */
             ),
         'NUMBERS' => array(
             0 => 'color: red;' /* pink */
@@ -185,7 +178,7 @@ $language_data = array (
         /* link to Prelude types */
         4 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}',
         /* link to Prelude exceptions */
-        5 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}',
+        5 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}'
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
@@ -198,4 +191,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/haxe.php b/vendor/geshi/geshi/src/geshi/haxe.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/haxe.php
rename to vendor/geshi/geshi/src/geshi/haxe.php
index 84c717eb97ed60f97ee67a35134cbcb4d09d3ee4..c9376bdffc199e747d9fde27634673df94165b19 100644
--- a/vendor/easybook/geshi/geshi/haxe.php
+++ b/vendor/geshi/geshi/src/geshi/haxe.php
@@ -6,7 +6,7 @@
  *         John Liao (colorhook@gmail.com)
  * Copyright: (c) 2012 onthewings (http://www.onthewings.net/)
  *                2010 colorhook (http://colorhook.com/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/10/05
  *
  * Haxe language file for GeSHi.
@@ -111,7 +111,6 @@ $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;',
             'MULTI' => 'color: #666666; font-style: italic;',
             ),
         'ESCAPE_CHAR' => array(
@@ -157,4 +156,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
 );
-
diff --git a/vendor/easybook/geshi/geshi/hicest.php b/vendor/geshi/geshi/src/geshi/hicest.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/hicest.php
rename to vendor/geshi/geshi/src/geshi/hicest.php
index 2eead82e88bf15898ff292fda1bee6fccb2ffe3a..b8639bbe2beaaa5fb8c0e340cadd956e90dced36 100644
--- a/vendor/easybook/geshi/geshi/hicest.php
+++ b/vendor/geshi/geshi/src/geshi/hicest.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Georg Petrich (spt@hicest.com)
  * Copyright: (c) 2010 Georg Petrich (http://www.HicEst.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/03/15
  *
  * HicEst language file for GeSHi.
@@ -104,4 +104,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/hq9plus.php b/vendor/geshi/geshi/src/geshi/hq9plus.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/hq9plus.php
rename to vendor/geshi/geshi/src/geshi/hq9plus.php
index 5b62589cc47f9f204e9a8ff707bcd0b6d9744700..843f2d6716dc26c0cb75ed955f440b436a94e4e1 100644
--- a/vendor/easybook/geshi/geshi/hq9plus.php
+++ b/vendor/geshi/geshi/src/geshi/hq9plus.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/31
  *
  * HQ9+ language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/html4strict.php b/vendor/geshi/geshi/src/geshi/html4strict.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/html4strict.php
rename to vendor/geshi/geshi/src/geshi/html4strict.php
index 2fc5185f8b361d279a90052ba9a7d79bd415d421..42ff9c70744e0266c45c6eb2e78ebbfff4ce1cba 100644
--- a/vendor/easybook/geshi/geshi/html4strict.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/10
  *
  * HTML 4.01 strict language file for GeSHi.
@@ -186,4 +186,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/html5.php b/vendor/geshi/geshi/src/geshi/html5.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/html5.php
rename to vendor/geshi/geshi/src/geshi/html5.php
index 543156b1e0a489296dacfa7f56b81aaa56c9aecd..25d33cb4485ed0e303eaed1ea6544e1f777f4443 100644
--- a/vendor/easybook/geshi/geshi/html5.php
+++ b/vendor/geshi/geshi/src/geshi/html5.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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/10
  *
  * HTML 5 language file for GeSHi.
@@ -208,4 +208,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/icon.php b/vendor/geshi/geshi/src/geshi/icon.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/icon.php
rename to vendor/geshi/geshi/src/geshi/icon.php
index b93616d65a902b674d7d0c1d08453b2566dd9c6e..10226902b08861e6b2298c412b931c236b0e45fc 100644
--- a/vendor/easybook/geshi/geshi/icon.php
+++ b/vendor/geshi/geshi/src/geshi/icon.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Matt Oates (mattoates@gmail.com)
  * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/04/24
  *
  * Icon language file for GeSHi.
@@ -208,4 +208,3 @@ $language_data = array(
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/idl.php b/vendor/geshi/geshi/src/geshi/idl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/idl.php
rename to vendor/geshi/geshi/src/geshi/idl.php
index a2b6f57e1c5f68b775033adc7728e46f33a58a5f..f960f8b310146459ceb8a13ef7b6df492256fd4a 100644
--- a/vendor/easybook/geshi/geshi/idl.php
+++ b/vendor/geshi/geshi/src/geshi/idl.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org)
  * Copyright: (c) 2006 Cedric Bosdonnat
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/08/20
  *
  * Unoidl language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/ini.php b/vendor/geshi/geshi/src/geshi/ini.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ini.php
rename to vendor/geshi/geshi/src/geshi/ini.php
index f0a8edeaa7020fd805517b682d35253b3fddf0a5..fe0422498f709c1c1e5ec8a856574f7a5f3e2af4 100644
--- a/vendor/easybook/geshi/geshi/ini.php
+++ b/vendor/geshi/geshi/src/geshi/ini.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br)
  * Copyright: (c) 2005 deguix
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/03/27
  *
  * INI language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/inno.php b/vendor/geshi/geshi/src/geshi/inno.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/inno.php
rename to vendor/geshi/geshi/src/geshi/inno.php
index 192054cf1b1d611e904621ad699cdf4851322357..542719c50f2926431bdee4b9d2bcb17514d89641 100644
--- a/vendor/easybook/geshi/geshi/inno.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/07/29
  *
  * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/intercal.php b/vendor/geshi/geshi/src/geshi/intercal.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/intercal.php
rename to vendor/geshi/geshi/src/geshi/intercal.php
index afbeb10dc97f5441d3b304db97276d3685dcc0f9..669050aae7e503544705c5ed5da95643433651c9 100644
--- a/vendor/easybook/geshi/geshi/intercal.php
+++ b/vendor/geshi/geshi/src/geshi/intercal.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/31
  *
  * INTERCAL language file for GeSHi.
@@ -118,4 +118,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/io.php b/vendor/geshi/geshi/src/geshi/io.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/io.php
rename to vendor/geshi/geshi/src/geshi/io.php
index d23984e8f518bee01990ada35aac8ce99d420878..5c8b93fda3674606f784ed6df43f8874517bb803 100644
--- a/vendor/easybook/geshi/geshi/io.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/09/23
  *
  * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help
diff --git a/vendor/easybook/geshi/geshi/ispfpanel.php b/vendor/geshi/geshi/src/geshi/ispfpanel.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ispfpanel.php
rename to vendor/geshi/geshi/src/geshi/ispfpanel.php
index c02897850112c2eb5d4c559e844beb16a8ce21f9..8e60eed9869c3bd1917b54df08d262042e96ea06 100644
--- a/vendor/easybook/geshi/geshi/ispfpanel.php
+++ b/vendor/geshi/geshi/src/geshi/ispfpanel.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
  * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/09/18
  *
  * ISPF Panel Definition (MVS) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/j.php b/vendor/geshi/geshi/src/geshi/j.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/j.php
rename to vendor/geshi/geshi/src/geshi/j.php
index fe8cb11a63876eb8274f6ba48d40db93158d2da3..499c489b72f8567855179180fc698c1333bbe71b 100644
--- a/vendor/easybook/geshi/geshi/j.php
+++ b/vendor/geshi/geshi/src/geshi/j.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Ric Sherlock (tikkanz@gmail.com)
  * Copyright: (c) 2009 Ric Sherlock
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/11/10
  *
  * J language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/java.php b/vendor/geshi/geshi/src/geshi/java.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/java.php
rename to vendor/geshi/geshi/src/geshi/java.php
index f384c4d841af8331fe5ae04c5ff6dedd3e373c8a..59733b51caca7fffafb07a47d1ce3b52f5315898 100644
--- a/vendor/easybook/geshi/geshi/java.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
@@ -934,7 +934,6 @@ $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;',
             'MULTI' => 'color: #666666; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
diff --git a/vendor/easybook/geshi/geshi/java5.php b/vendor/geshi/geshi/src/geshi/java5.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/java5.php
rename to vendor/geshi/geshi/src/geshi/java5.php
index 5d74d988b4632275467f4b43a70acbf288660ac2..f9dbf31062822d2fbbc3a15d947d813648d03eea 100644
--- a/vendor/easybook/geshi/geshi/java5.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/javascript.php b/vendor/geshi/geshi/src/geshi/javascript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/javascript.php
rename to vendor/geshi/geshi/src/geshi/javascript.php
index d2d854c141a470bd845d2e2e1df88b0b0c571db9..bc13dc4e88af52e5e715eaa1d3ec595f687c3728 100644
--- a/vendor/easybook/geshi/geshi/javascript.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/20
  *
  * JavaScript language file for GeSHi.
@@ -170,4 +170,3 @@ $language_data = array (
         1 => true
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/jcl.php b/vendor/geshi/geshi/src/geshi/jcl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/jcl.php
rename to vendor/geshi/geshi/src/geshi/jcl.php
index 7d9c548257d43cf1a947cf06044a97e9b2ef91e2..07e3b5084427d530a722a39562edb77b941aacaf 100644
--- a/vendor/easybook/geshi/geshi/jcl.php
+++ b/vendor/geshi/geshi/src/geshi/jcl.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
  * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/09/16
  *
  * JCL (MVS), DFSORT, IDCAMS language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/jquery.php b/vendor/geshi/geshi/src/geshi/jquery.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/jquery.php
rename to vendor/geshi/geshi/src/geshi/jquery.php
index 17a6a21e2c608141d0d89c0b51500ce4df86fda7..0ffd83fb846d0c18504507aeac9b4aa93a7b4895 100644
--- a/vendor/easybook/geshi/geshi/jquery.php
+++ b/vendor/geshi/geshi/src/geshi/jquery.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: Rob Loach (http://www.robloach.net)
  * Copyright: (c) 2009 Rob Loach (http://www.robloach.net)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/07/20
  *
  * jQuery 1.3 language file for GeSHi.
@@ -234,4 +234,3 @@ $language_data = array (
         1 => true
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/julia.php b/vendor/geshi/geshi/src/geshi/julia.php
new file mode 100644
index 0000000000000000000000000000000000000000..93459c561a6eb1e9d14f5683be4cfc8a5f6e4254
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/julia.php
@@ -0,0 +1,171 @@
+<?php
+/*************************************************************************************
+ * julia.php
+ * -----------
+ * Author: John Lynch (john.lynch@iname.com)
+ * Contributors:
+ *   - Magnus Lie Hetland
+ *   - Curtis Vogt
+ * Copyright: (c) 2013 John Lynch
+ * Release Version: 1.0.9.0
+ * Date Started: 2013/11/06
+ *
+ * Julia language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ *
+ * 2015/11/04
+ *   -  First Release submitted
+ *
+ *
+ *************************************************************************************
+ *
+ *     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' => 'Julia',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    //Longest quotemarks ALWAYS first
+    'QUOTEMARKS' => array('"""', '"', "'"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+
+        /*
+        ** reserved words
+        */
+        1 => array(
+            'function', 'global', 'for', 'end', 'while', 'if', 'else', 'elseif', 'break',
+            'switch', 'case', 'otherwise', 'try', 'catch', 'const', 'immutable',
+            'import', 'importall', 'export', 'type', 'typealias', 'return', 'true',
+            'false', 'macro', 'quote', 'in', 'abstract', 'module', 'using', 'continue',
+            'ifelse', 'do', 'eval', 'let', 'finally', 'throw'
+        ),
+
+        /*
+        ** builtins
+        */
+        2 => array(
+            'Array', 'String', 'Bool', 'Number', 'Int', 'Integer', 'Real', 'Complex',
+            'FloatingPoint', 'Float64', 'Float32', 'Int8', 'Int16', 'Int32', 'Int64',
+            'Rational', 'AbstractArray', 'Unsigned', 'Signed', 'Uint', 'Uint8', 'Uint16',
+            'Uint32', 'Uint64', 'Vector', 'AbstractVector', 'Matrix', 'AbstractMatrix',
+            'Type', 'IO', 'Any', 'ASCIIString', 'Union', 'Dict', 'Function', 'SubArray',
+            'Range', 'Range1', 'Symbol', 'Expr',
+
+            'cell', 'collect', 'filter', 'merge', 'divrem', 'hex', 'dec', 'oct', 'base',
+            'int', 'round', 'cmp', 'float', 'linspace', 'fill', 'start', 'done', 'tuple',
+            'minimum', 'maximum', 'count', 'index', 'append', 'push', 'pop', 'shift',
+            'unshift', 'insert', 'splice', 'reverse', 'sort', 'zip', 'length', 'delete',
+            'copy', 'haskey', 'keys', 'values', 'get', 'getkey', 'Set', 'isa', 'issubset',
+            'intersect', 'setdiff', 'symdiff', 'complement', 'print', 'printf', 'println',
+            'sprintf', 'utf8', 'char', 'search', 'rsearch',
+            'replace', 'lowercase', 'uppercase', 'ucfirst', 'lcfirst', 'union',
+            'split', 'rsplit', 'chop', 'chomp', 'lpad', 'rpad', 'lstrip', 'rstrip',
+            'strip', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl', 'isdigit',
+            'isgraph', 'islower', 'isprint', 'ispunct', 'isspace', 'isupper', 'isxdigit',
+            'match', 'captures', 'offset', 'offsets', 'matchall', 'eachmatch', 'hcat',
+            'vcat', 'hvcat', 'reshape', 'deepcopy', 'similar', 'reinterpret', 'map',
+            'reduce', 'mapreduce', 'DataArray', 'DataFrame', 'removeNA', 'replaceNA',
+            'colnames', 'head', 'tail', 'describe', 'join', 'groupby', 'by', 'stack',
+            'readtable', 'readcsv', 'readdlm', 'writetable', 'writecsv', 'writedlm',
+            'require', 'reload', 'include', 'evalfile', 'cd', 'open', 'write', 'close',
+            'position', 'seek', 'seekstart', 'skip', 'isopen', 'eof',
+            'isreadonly', 'ltoh', 'htol', 'serialize', 'deserialize', 'download',
+            'isequal', 'getindex', 'setindex', 'eachline', 'beginswith', 'endswith',
+            'parsefloat', 'parseint', 'seekend', 'findnz', 'DivideError', 'addprocs',
+            'scale', 'issubnormal', 'readdir', 'mapslices'
+        ),
+
+        /*
+        ** system interaction
+        */
+        3 => array(
+            'run', 'spawn', 'success', 'process_running', 'process_exited', 'kill',
+            'readsfrom', 'writesto', 'readsandwrite', 'detach', 'setenv', 'ENV', 'getpid',
+            'clipboard', 'strftime', 'time', 'gethostname', 'getipaddr', 'pwd',
+            'mkdir', 'mkpath', 'rmdir', 'ignorestatus'
+        ),
+
+        /*
+        ** prompt
+        */
+        4 => array(
+            'julia>'
+        )
+    ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '*', '&', '|', '%', '!', ';', '<', '>', '?', '`'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #4266d5;font-weight:bold;',    // Reserved
+            2 => 'color: #0000A8;font-weight:bold;',    // Built-ins
+            3 => 'color: #0000A8;font-weight:bold;',    // System Interaction
+            4 => 'color: #3b972e;font-weight:bold;'     // Prompt
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #888888;',
+            'MULTI' => 'color: #888888;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #3b972e;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #c93d39;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: black;'
+        ),
+        'METHODS' => array(
+            1 => 'color: black;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #6bab5b;'
+        ),
+        '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()
+);
diff --git a/vendor/easybook/geshi/geshi/kixtart.php b/vendor/geshi/geshi/src/geshi/kixtart.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/kixtart.php
rename to vendor/geshi/geshi/src/geshi/kixtart.php
index 42ffa42ecd5923a9148fc47d6aa1dbe5b6755787..7f66e74f41b4e8a1738ac4069c73e3307adf49a7 100644
--- a/vendor/easybook/geshi/geshi/kixtart.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/08/31
  *
  * PHP language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/klonec.php b/vendor/geshi/geshi/src/geshi/klonec.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/klonec.php
rename to vendor/geshi/geshi/src/geshi/klonec.php
index 4831b13b7bc6599ad249a4d29cbc3d1182ba2181..58f2d7b43c254edca78a0f7454bcbc27477c45a0 100644
--- a/vendor/easybook/geshi/geshi/klonec.php
+++ b/vendor/geshi/geshi/src/geshi/klonec.php
@@ -4,7 +4,7 @@
  * --------
  * Author: AUGER Mickael
  * Copyright: Synchronic
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/04/16
  *
  * KLone with C language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/klonecpp.php b/vendor/geshi/geshi/src/geshi/klonecpp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/klonecpp.php
rename to vendor/geshi/geshi/src/geshi/klonecpp.php
index d0368202ddecaeefc0aba2f79c3e871e924d3b93..4b71cba3d24422d5a527a962aa90b57146bcb45b 100644
--- a/vendor/easybook/geshi/geshi/klonecpp.php
+++ b/vendor/geshi/geshi/src/geshi/klonecpp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: AUGER Mickael
  * Copyright: Synchronic
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/04/16
  *
  * KLone with C++ language file for GeSHi.
diff --git a/vendor/geshi/geshi/src/geshi/kotlin.php b/vendor/geshi/geshi/src/geshi/kotlin.php
new file mode 100644
index 0000000000000000000000000000000000000000..cb20ad8ac20ec067718c233921a81a7ab2883ffd
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/kotlin.php
@@ -0,0 +1,959 @@
+<?php
+/*************************************************************************************
+ * kotlin.php
+ * --------
+ * Author: Ole Sandum (oksandum@gmail.com)
+ * Copyright: (c) 2017 Ole Sandum
+ * Release Version: 1.0.9.0
+ * Date Started: 2004/07/10
+ *
+ * Kotlin language file for GeSHi.
+ *
+ * 2017/01/28
+ *   -  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' => 'Kotlin',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    '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',
+        // javadoc comments
+        3 => '#/\*\*(?![\*\/]).*\*/#sU'
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'fun', 'var', 'val', 'typeof', 'typealias', 'suspend',
+            'for', 'if', 'else', 'while', 'do',
+            'when', 'return', 'public', 'get', 'set',
+            'private', 'protected', 'internal', 'break', 'class', 'object',
+            'companion', 'data', 'sealed', 'open', 'operator',
+            'try', 'catch', 'finally', 'inner', 'constructor', 'init',
+            'interface', 'throw', 'final', 'external', 'this',
+            'abstract', 'is', '!is', 'as', 'as?', 'continue',
+            'default', 'enum', 'package', 'super', 'where',
+            'const', 'import', 'in', '!in', 'out', 'override',
+            'reified', 'inline', 'noinline', 'crossinline'
+        ),
+        2 => array(
+            'null', 'false', 'true'
+        ),
+        3 => array(
+            'AbstractAction', 'AbstractBorder', 'AbstractButton',
+            'AbstractCellEditor', 'AbstractCollection',
+            'AbstractColorChooserPanel', 'AbstractDocument',
+            'AbstractDocument.AttributeContext',
+            'AbstractDocument.Content',
+            'AbstractDocument.ElementEdit',
+            'AbstractLayoutCache',
+            'AbstractLayoutCache.NodeDimensions', 'AbstractList',
+            'AbstractListModel', 'AbstractMap',
+            'AbstractMethodError', 'AbstractSequentialList',
+            'AbstractSet', 'AbstractTableModel',
+            'AbstractUndoableEdit', 'AbstractWriter',
+            'AccessControlContext', 'AccessControlException',
+            'AccessController', 'AccessException', 'Accessible',
+            'AccessibleAction', 'AccessibleBundle',
+            'AccessibleComponent', 'AccessibleContext',
+            'AccessibleHyperlink', 'AccessibleHypertext',
+            'AccessibleIcon', 'AccessibleObject',
+            'AccessibleRelation', 'AccessibleRelationSet',
+            'AccessibleResourceBundle', 'AccessibleRole',
+            'AccessibleSelection', 'AccessibleState',
+            'AccessibleStateSet', 'AccessibleTable',
+            'AccessibleTableModelChange', 'AccessibleText',
+            'AccessibleValue', 'Acl', 'AclEntry',
+            'AclNotFoundException', 'Action', 'ActionEvent',
+            'ActionListener', 'ActionMap', 'ActionMapUIResource',
+            'Activatable', 'ActivateFailedException',
+            'ActivationDesc', 'ActivationException',
+            'ActivationGroup', 'ActivationGroupDesc',
+            'ActivationGroupDesc.CommandEnvironment',
+            'ActivationGroupID', 'ActivationID',
+            'ActivationInstantiator', 'ActivationMonitor',
+            'ActivationSystem', 'Activator', 'ActiveEvent',
+            'Adjustable', 'AdjustmentEvent',
+            'AdjustmentListener', 'Adler32', 'AffineTransform',
+            'AffineTransformOp', 'AlgorithmParameterGenerator',
+            'AlgorithmParameterGeneratorSpi',
+            'AlgorithmParameters', 'AlgorithmParameterSpec',
+            'AlgorithmParametersSpi', 'AllPermission',
+            'AlphaComposite', 'AlreadyBound',
+            'AlreadyBoundException', 'AlreadyBoundHelper',
+            'AlreadyBoundHolder', 'AncestorEvent',
+            'AncestorListener', 'Annotation', 'AnyHolder',
+            'AnySeqHelper', 'AnySeqHolder', 'Applet',
+            'AppletContext', 'AppletInitializer', 'AppletStub',
+            'ApplicationException', 'Arc2D', 'Arc2D.Double',
+            'Arc2D.Float', 'Area', 'AreaAveragingScaleFilter',
+            'ARG_IN', 'ARG_INOUT', 'ARG_OUT',
+            'ArithmeticException', 'Array',
+            'ArrayIndexOutOfBoundsException', 'ArrayList',
+            'Arrays', 'ArrayStoreException', 'AsyncBoxView',
+            'Attribute', 'AttributedCharacterIterator',
+            'AttributedCharacterIterator.Attribute',
+            'AttributedString', 'AttributeInUseException',
+            'AttributeList', 'AttributeModificationException',
+            'Attributes', 'Attributes.Name', 'AttributeSet',
+            'AttributeSet.CharacterAttribute',
+            'AttributeSet.ColorAttribute',
+            'AttributeSet.FontAttribute',
+            'AttributeSet.ParagraphAttribute', 'AudioClip',
+            'AudioFileFormat', 'AudioFileFormat.Type',
+            'AudioFileReader', 'AudioFileWriter', 'AudioFormat',
+            'AudioFormat.Encoding', 'AudioInputStream',
+            'AudioPermission', 'AudioSystem',
+            'AuthenticationException',
+            'AuthenticationNotSupportedException',
+            'Authenticator', 'Autoscroll', 'AWTError',
+            'AWTEvent', 'AWTEventListener',
+            'AWTEventMulticaster', 'AWTException',
+            'AWTPermission', 'BadKind', 'BadLocationException',
+            'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION',
+            'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE',
+            'BAD_POLICY_VALUE', 'BAD_TYPECODE', 'BandCombineOp',
+            'BandedSampleModel', 'BasicArrowButton',
+            'BasicAttribute', 'BasicAttributes', 'BasicBorders',
+            'BasicBorders.ButtonBorder',
+            'BasicBorders.FieldBorder',
+            'BasicBorders.MarginBorder',
+            'BasicBorders.MenuBarBorder',
+            'BasicBorders.RadioButtonBorder',
+            'BasicBorders.SplitPaneBorder',
+            'BasicBorders.ToggleButtonBorder',
+            'BasicButtonListener', 'BasicButtonUI',
+            'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI',
+            'BasicColorChooserUI', 'BasicComboBoxEditor',
+            'BasicComboBoxEditor.UIResource',
+            'BasicComboBoxRenderer',
+            'BasicComboBoxRenderer.UIResource',
+            'BasicComboBoxUI', 'BasicComboPopup',
+            'BasicDesktopIconUI', 'BasicDesktopPaneUI',
+            'BasicDirectoryModel', 'BasicEditorPaneUI',
+            'BasicFileChooserUI', 'BasicGraphicsUtils',
+            'BasicHTML', 'BasicIconFactory',
+            'BasicInternalFrameTitlePane',
+            'BasicInternalFrameUI', 'BasicLabelUI',
+            'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI',
+            'BasicMenuItemUI', 'BasicMenuUI',
+            'BasicOptionPaneUI',
+            'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI',
+            'BasicPasswordFieldUI', 'BasicPermission',
+            'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI',
+            'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI',
+            'BasicRadioButtonUI', 'BasicRootPaneUI',
+            'BasicScrollBarUI', 'BasicScrollPaneUI',
+            'BasicSeparatorUI', 'BasicSliderUI',
+            'BasicSplitPaneDivider', 'BasicSplitPaneUI',
+            'BasicStroke', 'BasicTabbedPaneUI',
+            'BasicTableHeaderUI', 'BasicTableUI',
+            'BasicTextAreaUI', 'BasicTextFieldUI',
+            'BasicTextPaneUI', 'BasicTextUI',
+            'BasicTextUI.BasicCaret',
+            'BasicTextUI.BasicHighlighter',
+            'BasicToggleButtonUI', 'BasicToolBarSeparatorUI',
+            'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI',
+            'BasicViewportUI', 'BatchUpdateException',
+            'BeanContext', 'BeanContextChild',
+            'BeanContextChildComponentProxy',
+            'BeanContextChildSupport',
+            'BeanContextContainerProxy', 'BeanContextEvent',
+            'BeanContextMembershipEvent',
+            'BeanContextMembershipListener', 'BeanContextProxy',
+            'BeanContextServiceAvailableEvent',
+            'BeanContextServiceProvider',
+            'BeanContextServiceProviderBeanInfo',
+            'BeanContextServiceRevokedEvent',
+            'BeanContextServiceRevokedListener',
+            'BeanContextServices', 'BeanContextServicesListener',
+            'BeanContextServicesSupport',
+            'BeanContextServicesSupport.BCSSServiceProvider',
+            'BeanContextSupport',
+            'BeanContextSupport.BCSIterator', 'BeanDescriptor',
+            'BeanInfo', 'Beans', 'BevelBorder', 'BigDecimal',
+            'BigInteger', 'BinaryRefAddr', 'BindException',
+            'Binding', 'BindingHelper', 'BindingHolder',
+            'BindingIterator', 'BindingIteratorHelper',
+            'BindingIteratorHolder', 'BindingIteratorOperations',
+            'BindingListHelper', 'BindingListHolder',
+            'BindingType', 'BindingTypeHelper',
+            'BindingTypeHolder', 'BitSet', 'Blob', 'BlockView',
+            'Book', 'BooleanControl',
+            'BooleanControl.Type', 'BooleanHolder',
+            'BooleanSeqHelper', 'BooleanSeqHolder', 'Border',
+            'BorderFactory', 'BorderLayout', 'BorderUIResource',
+            'BorderUIResource.BevelBorderUIResource',
+            'BorderUIResource.CompoundBorderUIResource',
+            'BorderUIResource.EmptyBorderUIResource',
+            'BorderUIResource.EtchedBorderUIResource',
+            'BorderUIResource.LineBorderUIResource',
+            'BorderUIResource.MatteBorderUIResource',
+            'BorderUIResource.TitledBorderUIResource',
+            'BoundedRangeModel', 'Bounds', 'Box', 'Box.Filler',
+            'BoxedValueHelper', 'BoxLayout', 'BoxView',
+            'BreakIterator', 'BufferedImage',
+            'BufferedImageFilter', 'BufferedImageOp',
+            'BufferedInputStream', 'BufferedOutputStream',
+            'BufferedReader', 'BufferedWriter', 'Button',
+            'ButtonGroup', 'ButtonModel', 'ButtonUI',
+            'ByteArrayInputStream', 'ByteArrayOutputStream',
+            'ByteHolder', 'ByteLookupTable', 'Calendar',
+            'CallableStatement', 'CannotProceed',
+            'CannotProceedException', 'CannotProceedHelper',
+            'CannotProceedHolder', 'CannotRedoException',
+            'CannotUndoException', 'Canvas', 'CardLayout',
+            'Caret', 'CaretEvent', 'CaretListener', 'CellEditor',
+            'CellEditorListener', 'CellRendererPane',
+            'Certificate', 'Certificate.CertificateRep',
+            'CertificateEncodingException',
+            'CertificateException',
+            'CertificateExpiredException', 'CertificateFactory',
+            'CertificateFactorySpi',
+            'CertificateNotYetValidException',
+            'CertificateParsingException',
+            'ChangedCharSetException', 'ChangeEvent',
+            'ChangeListener', 'Character', 'Character.Subset',
+            'Character.UnicodeBlock', 'CharacterIterator',
+            'CharArrayReader', 'CharArrayWriter',
+            'CharConversionException', 'CharHolder',
+            'CharSeqHelper', 'CharSeqHolder', 'Checkbox',
+            'CheckboxGroup', 'CheckboxMenuItem',
+            'CheckedInputStream', 'CheckedOutputStream',
+            'Checksum', 'Choice', 'ChoiceFormat', 'Class',
+            'ClassCastException', 'ClassCircularityError',
+            'ClassDesc', 'ClassFormatError', 'ClassLoader',
+            'ClassNotFoundException', 'Clip', 'Clipboard',
+            'ClipboardOwner', 'Clob', 'Cloneable',
+            'CloneNotSupportedException', 'CMMException',
+            'CodeSource', 'CollationElementIterator',
+            'CollationKey', 'Collator', 'Collection',
+            'Collections', 'Color',
+            'ColorChooserComponentFactory', 'ColorChooserUI',
+            'ColorConvertOp', 'ColorModel',
+            'ColorSelectionModel', 'ColorSpace',
+            'ColorUIResource', 'ComboBoxEditor', 'ComboBoxModel',
+            'ComboBoxUI', 'ComboPopup', 'CommunicationException',
+            'COMM_FAILURE', 'Comparable', 'Comparator',
+            'Compiler', 'CompletionStatus',
+            'CompletionStatusHelper', 'Component',
+            'ComponentAdapter', 'ComponentColorModel',
+            'ComponentEvent', 'ComponentInputMap',
+            'ComponentInputMapUIResource', 'ComponentListener',
+            'ComponentOrientation', 'ComponentSampleModel',
+            'ComponentUI', 'ComponentView', 'Composite',
+            'CompositeContext', 'CompositeName', 'CompositeView',
+            'CompoundBorder', 'CompoundControl',
+            'CompoundControl.Type', 'CompoundEdit',
+            'CompoundName', 'ConcurrentModificationException',
+            'ConfigurationException', 'ConnectException',
+            'ConnectIOException', 'Connection', 'Constructor', 'Container',
+            'ContainerAdapter', 'ContainerEvent',
+            'ContainerListener', 'ContentHandler',
+            'ContentHandlerFactory', 'ContentModel', 'Context',
+            'ContextList', 'ContextNotEmptyException',
+            'ContextualRenderedImageFactory', 'Control',
+            'Control.Type', 'ControlFactory',
+            'ControllerEventListener', 'ConvolveOp', 'CRC32',
+            'CRL', 'CRLException', 'CropImageFilter', 'CSS',
+            'CSS.Attribute', 'CTX_RESTRICT_SCOPE',
+            'CubicCurve2D', 'CubicCurve2D.Double',
+            'CubicCurve2D.Float', 'Current', 'CurrentHelper',
+            'CurrentHolder', 'CurrentOperations', 'Cursor',
+            'Customizer', 'CustomMarshal', 'CustomValue',
+            'DatabaseMetaData', 'DataBuffer', 'DataBufferByte',
+            'DataBufferInt', 'DataBufferShort',
+            'DataBufferUShort', 'DataFlavor',
+            'DataFormatException', 'DatagramPacket',
+            'DatagramSocket', 'DatagramSocketImpl',
+            'DatagramSocketImplFactory', 'DataInput',
+            'DataInputStream', 'DataLine', 'DataLine.Info',
+            'DataOutput', 'DataOutputStream',
+            'DataTruncation', 'DATA_CONVERSION', 'Date',
+            'DateFormat', 'DateFormatSymbols', 'DebugGraphics',
+            'DecimalFormat', 'DecimalFormatSymbols',
+            'DefaultBoundedRangeModel', 'DefaultButtonModel',
+            'DefaultCaret', 'DefaultCellEditor',
+            'DefaultColorSelectionModel', 'DefaultComboBoxModel',
+            'DefaultDesktopManager', 'DefaultEditorKit',
+            'DefaultEditorKit.BeepAction',
+            'DefaultEditorKit.CopyAction',
+            'DefaultEditorKit.CutAction',
+            'DefaultEditorKit.DefaultKeyTypedAction',
+            'DefaultEditorKit.InsertBreakAction',
+            'DefaultEditorKit.InsertContentAction',
+            'DefaultEditorKit.InsertTabAction',
+            'DefaultEditorKit.PasteAction,',
+            'DefaultFocusManager', 'DefaultHighlighter',
+            'DefaultHighlighter.DefaultHighlightPainter',
+            'DefaultListCellRenderer',
+            'DefaultListCellRenderer.UIResource',
+            'DefaultListModel', 'DefaultListSelectionModel',
+            'DefaultMenuLayout', 'DefaultMetalTheme',
+            'DefaultMutableTreeNode',
+            'DefaultSingleSelectionModel',
+            'DefaultStyledDocument',
+            'DefaultStyledDocument.AttributeUndoableEdit',
+            'DefaultStyledDocument.ElementSpec',
+            'DefaultTableCellRenderer',
+            'DefaultTableCellRenderer.UIResource',
+            'DefaultTableColumnModel', 'DefaultTableModel',
+            'DefaultTextUI', 'DefaultTreeCellEditor',
+            'DefaultTreeCellRenderer', 'DefaultTreeModel',
+            'DefaultTreeSelectionModel', 'DefinitionKind',
+            'DefinitionKindHelper', 'Deflater',
+            'DeflaterOutputStream', 'Delegate', 'DesignMode',
+            'DesktopIconUI', 'DesktopManager', 'DesktopPaneUI',
+            'DGC', 'Dialog', 'Dictionary', 'DigestException',
+            'DigestInputStream', 'DigestOutputStream',
+            'Dimension', 'Dimension2D', 'DimensionUIResource',
+            'DirContext', 'DirectColorModel', 'DirectoryManager',
+            'DirObjectFactory', 'DirStateFactory',
+            'DirStateFactory.Result', 'DnDConstants', 'Document',
+            'DocumentEvent', 'DocumentEvent.ElementChange',
+            'DocumentEvent.EventType', 'DocumentListener',
+            'DocumentParser', 'DomainCombiner', 'DomainManager',
+            'DomainManagerOperations', 'DoubleHolder',
+            'DoubleSeqHelper', 'DoubleSeqHolder',
+            'DragGestureEvent', 'DragGestureListener',
+            'DragGestureRecognizer', 'DragSource',
+            'DragSourceContext', 'DragSourceDragEvent',
+            'DragSourceDropEvent', 'DragSourceEvent',
+            'DragSourceListener', 'Driver', 'DriverManager',
+            'DriverPropertyInfo', 'DropTarget',
+            'DropTarget.DropTargetAutoScroller',
+            'DropTargetContext', 'DropTargetDragEvent',
+            'DropTargetDropEvent', 'DropTargetEvent',
+            'DropTargetListener', 'DSAKey',
+            'DSAKeyPairGenerator', 'DSAParameterSpec',
+            'DSAParams', 'DSAPrivateKey', 'DSAPrivateKeySpec',
+            'DSAPublicKey', 'DSAPublicKeySpec', 'DTD',
+            'DTDConstants', 'DynamicImplementation', 'DynAny',
+            'DynArray', 'DynEnum', 'DynFixed', 'DynSequence',
+            'DynStruct', 'DynUnion', 'DynValue', 'EditorKit',
+            'Element', 'ElementIterator', 'Ellipse2D',
+            'Ellipse2D.Double', 'Ellipse2D.Float', 'EmptyBorder',
+            'EmptyStackException', 'EncodedKeySpec', 'Entity',
+            'EnumControl', 'EnumControl.Type', 'Enumeration',
+            'Environment', 'EOFException', 'Error',
+            'EtchedBorder', 'Event', 'EventContext',
+            'EventDirContext', 'EventListener',
+            'EventListenerList', 'EventObject', 'EventQueue',
+            'EventSetDescriptor', 'Exception',
+            'ExceptionInInitializerError', 'ExceptionList',
+            'ExpandVetoException', 'ExportException',
+            'ExtendedRequest', 'ExtendedResponse',
+            'Externalizable', 'FeatureDescriptor', 'Field',
+            'FieldNameHelper', 'FieldPosition', 'FieldView',
+            'File', 'FileChooserUI', 'FileDescriptor',
+            'FileDialog', 'FileFilter',
+            'FileInputStream', 'FilenameFilter', 'FileNameMap',
+            'FileNotFoundException', 'FileOutputStream',
+            'FilePermission', 'FileReader', 'FileSystemView',
+            'FileView', 'FileWriter', 'FilteredImageSource',
+            'FilterInputStream', 'FilterOutputStream',
+            'FilterReader', 'FilterWriter',
+            'FixedHeightLayoutCache', 'FixedHolder',
+            'FlatteningPathIterator', 'FlavorMap',
+            'FloatControl', 'FloatControl.Type', 'FloatHolder',
+            'FloatSeqHelper', 'FloatSeqHolder', 'FlowLayout',
+            'FlowView', 'FlowView.FlowStrategy', 'FocusAdapter',
+            'FocusEvent', 'FocusListener', 'FocusManager',
+            'Font', 'FontFormatException', 'FontMetrics',
+            'FontRenderContext', 'FontUIResource', 'Format',
+            'FormatConversionProvider', 'FormView', 'Frame',
+            'FREE_MEM', 'GapContent', 'GeneralPath',
+            'GeneralSecurityException', 'GlyphJustificationInfo',
+            'GlyphMetrics', 'GlyphVector', 'GlyphView',
+            'GlyphView.GlyphPainter', 'GradientPaint',
+            'GraphicAttribute', 'Graphics', 'Graphics2D',
+            'GraphicsConfigTemplate', 'GraphicsConfiguration',
+            'GraphicsDevice', 'GraphicsEnvironment',
+            'GrayFilter', 'GregorianCalendar',
+            'GridBagConstraints', 'GridBagLayout', 'GridLayout',
+            'Group', 'Guard', 'GuardedObject', 'GZIPInputStream',
+            'GZIPOutputStream', 'HasControls', 'HashMap',
+            'HashSet', 'Hashtable', 'HierarchyBoundsAdapter',
+            'HierarchyBoundsListener', 'HierarchyEvent',
+            'HierarchyListener', 'Highlighter',
+            'Highlighter.Highlight',
+            'Highlighter.HighlightPainter', 'HTML',
+            'HTML.Attribute', 'HTML.Tag', 'HTML.UnknownTag',
+            'HTMLDocument', 'HTMLDocument.Iterator',
+            'HTMLEditorKit', 'HTMLEditorKit.HTMLFactory',
+            'HTMLEditorKit.HTMLTextAction',
+            'HTMLEditorKit.InsertHTMLTextAction',
+            'HTMLEditorKit.LinkController',
+            'HTMLEditorKit.Parser',
+            'HTMLEditorKit.ParserCallback',
+            'HTMLFrameHyperlinkEvent', 'HTMLWriter',
+            'HttpURLConnection', 'HyperlinkEvent',
+            'HyperlinkEvent.EventType', 'HyperlinkListener',
+            'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray',
+            'ICC_ProfileRGB', 'Icon', 'IconUIResource',
+            'IconView', 'IdentifierHelper', 'Identity',
+            'IdentityScope', 'IDLEntity', 'IDLType',
+            'IDLTypeHelper', 'IDLTypeOperations',
+            'IllegalAccessError', 'IllegalAccessException',
+            'IllegalArgumentException',
+            'IllegalComponentStateException',
+            'IllegalMonitorStateException',
+            'IllegalPathStateException', 'IllegalStateException',
+            'IllegalThreadStateException', 'Image',
+            'ImageConsumer', 'ImageFilter',
+            'ImageGraphicAttribute', 'ImageIcon',
+            'ImageObserver', 'ImageProducer',
+            'ImagingOpException', 'IMP_LIMIT',
+            'IncompatibleClassChangeError',
+            'InconsistentTypeCode', 'IndexColorModel',
+            'IndexedPropertyDescriptor',
+            'IndexOutOfBoundsException', 'IndirectionException',
+            'InetAddress', 'Inflater', 'InflaterInputStream',
+            'InheritableThreadLocal', 'InitialContext',
+            'InitialContextFactory',
+            'InitialContextFactoryBuilder', 'InitialDirContext',
+            'INITIALIZE', 'Initializer', 'InitialLdapContext',
+            'InlineView', 'InputContext', 'InputEvent',
+            'InputMap', 'InputMapUIResource', 'InputMethod',
+            'InputMethodContext', 'InputMethodDescriptor',
+            'InputMethodEvent', 'InputMethodHighlight',
+            'InputMethodListener', 'InputMethodRequests',
+            'InputStream',
+            'InputStreamReader', 'InputSubset', 'InputVerifier',
+            'Insets', 'InsetsUIResource', 'InstantiationError',
+            'InstantiationException', 'Instrument',
+            'InsufficientResourcesException', 'Integer',
+            'INTERNAL', 'InternalError', 'InternalFrameAdapter',
+            'InternalFrameEvent', 'InternalFrameListener',
+            'InternalFrameUI', 'InterruptedException',
+            'InterruptedIOException',
+            'InterruptedNamingException', 'INTF_REPOS',
+            'IntHolder', 'IntrospectionException',
+            'Introspector', 'Invalid',
+            'InvalidAlgorithmParameterException',
+            'InvalidAttributeIdentifierException',
+            'InvalidAttributesException',
+            'InvalidAttributeValueException',
+            'InvalidClassException',
+            'InvalidDnDOperationException',
+            'InvalidKeyException', 'InvalidKeySpecException',
+            'InvalidMidiDataException', 'InvalidName',
+            'InvalidNameException',
+            'InvalidNameHelper', 'InvalidNameHolder',
+            'InvalidObjectException',
+            'InvalidParameterException',
+            'InvalidParameterSpecException',
+            'InvalidSearchControlsException',
+            'InvalidSearchFilterException', 'InvalidSeq',
+            'InvalidTransactionException', 'InvalidValue',
+            'INVALID_TRANSACTION', 'InvocationEvent',
+            'InvocationHandler', 'InvocationTargetException',
+            'InvokeHandler', 'INV_FLAG', 'INV_IDENT',
+            'INV_OBJREF', 'INV_POLICY', 'IOException',
+            'IRObject', 'IRObjectOperations', 'IstringHelper',
+            'ItemEvent', 'ItemListener', 'ItemSelectable',
+            'Iterator', 'JApplet', 'JarEntry', 'JarException',
+            'JarFile', 'JarInputStream', 'JarOutputStream',
+            'JarURLConnection', 'JButton', 'JCheckBox',
+            'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox',
+            'JComboBox.KeySelectionManager', 'JComponent',
+            'JDesktopPane', 'JDialog', 'JEditorPane',
+            'JFileChooser', 'JFrame', 'JInternalFrame',
+            'JInternalFrame.JDesktopIcon', 'JLabel',
+            'JLayeredPane', 'JList', 'JMenu', 'JMenuBar',
+            'JMenuItem', 'JobAttributes',
+            'JobAttributes.DefaultSelectionType',
+            'JobAttributes.DestinationType',
+            'JobAttributes.DialogType',
+            'JobAttributes.MultipleDocumentHandlingType',
+            'JobAttributes.SidesType', 'JOptionPane', 'JPanel',
+            'JPasswordField', 'JPopupMenu',
+            'JPopupMenu.Separator', 'JProgressBar',
+            'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane',
+            'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider',
+            'JSplitPane', 'JTabbedPane', 'JTable',
+            'JTableHeader', 'JTextArea', 'JTextComponent',
+            'JTextComponent.KeyBinding', 'JTextField',
+            'JTextPane', 'JToggleButton',
+            'JToggleButton.ToggleButtonModel', 'JToolBar',
+            'JToolBar.Separator', 'JToolTip', 'JTree',
+            'JTree.DynamicUtilTreeNode',
+            'JTree.EmptySelectionModel', 'JViewport', 'JWindow',
+            'Kernel', 'Key', 'KeyAdapter', 'KeyEvent',
+            'KeyException', 'KeyFactory', 'KeyFactorySpi',
+            'KeyListener', 'KeyManagementException', 'Keymap',
+            'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi',
+            'KeySpec', 'KeyStore', 'KeyStoreException',
+            'KeyStoreSpi', 'KeyStroke', 'Label', 'LabelUI',
+            'LabelView', 'LastOwnerException',
+            'LayeredHighlighter',
+            'LayeredHighlighter.LayerPainter', 'LayoutManager',
+            'LayoutManager2', 'LayoutQueue', 'LdapContext',
+            'LdapReferralException', 'Lease',
+            'LimitExceededException', 'Line', 'Line.Info',
+            'Line2D', 'Line2D.Double', 'Line2D.Float',
+            'LineBorder', 'LineBreakMeasurer', 'LineEvent',
+            'LineEvent.Type', 'LineListener', 'LineMetrics',
+            'LineNumberInputStream', 'LineNumberReader',
+            'LineUnavailableException', 'LinkageError',
+            'LinkedList', 'LinkException', 'LinkLoopException',
+            'LinkRef', 'List', 'ListCellRenderer',
+            'ListDataEvent', 'ListDataListener', 'ListIterator',
+            'ListModel', 'ListResourceBundle',
+            'ListSelectionEvent', 'ListSelectionListener',
+            'ListSelectionModel', 'ListUI', 'ListView',
+            'LoaderHandler', 'Locale', 'LocateRegistry',
+            'LogStream', 'LongHolder',
+            'LongLongSeqHelper', 'LongLongSeqHolder',
+            'LongSeqHelper', 'LongSeqHolder', 'LookAndFeel',
+            'LookupOp', 'LookupTable', 'MalformedLinkException',
+            'MalformedURLException', 'Manifest', 'Map',
+            'Map.Entry', 'MARSHAL', 'MarshalException',
+            'MarshalledObject', 'Math', 'MatteBorder',
+            'MediaTracker', 'Member', 'MemoryImageSource',
+            'Menu', 'MenuBar', 'MenuBarUI', 'MenuComponent',
+            'MenuContainer', 'MenuDragMouseEvent',
+            'MenuDragMouseListener', 'MenuElement', 'MenuEvent',
+            'MenuItem', 'MenuItemUI', 'MenuKeyEvent',
+            'MenuKeyListener', 'MenuListener',
+            'MenuSelectionManager', 'MenuShortcut',
+            'MessageDigest', 'MessageDigestSpi', 'MessageFormat',
+            'MetaEventListener', 'MetalBorders',
+            'MetalBorders.ButtonBorder',
+            'MetalBorders.Flush3DBorder',
+            'MetalBorders.InternalFrameBorder',
+            'MetalBorders.MenuBarBorder',
+            'MetalBorders.MenuItemBorder',
+            'MetalBorders.OptionDialogBorder',
+            'MetalBorders.PaletteBorder',
+            'MetalBorders.PopupMenuBorder',
+            'MetalBorders.RolloverButtonBorder',
+            'MetalBorders.ScrollPaneBorder',
+            'MetalBorders.TableHeaderBorder',
+            'MetalBorders.TextFieldBorder',
+            'MetalBorders.ToggleButtonBorder',
+            'MetalBorders.ToolBarBorder', 'MetalButtonUI',
+            'MetalCheckBoxIcon', 'MetalCheckBoxUI',
+            'MetalComboBoxButton', 'MetalComboBoxEditor',
+            'MetalComboBoxEditor.UIResource',
+            'MetalComboBoxIcon', 'MetalComboBoxUI',
+            'MetalDesktopIconUI', 'MetalFileChooserUI',
+            'MetalIconFactory', 'MetalIconFactory.FileIcon16',
+            'MetalIconFactory.FolderIcon16',
+            'MetalIconFactory.PaletteCloseIcon',
+            'MetalIconFactory.TreeControlIcon',
+            'MetalIconFactory.TreeFolderIcon',
+            'MetalIconFactory.TreeLeafIcon',
+            'MetalInternalFrameTitlePane',
+            'MetalInternalFrameUI', 'MetalLabelUI',
+            'MetalLookAndFeel', 'MetalPopupMenuSeparatorUI',
+            'MetalProgressBarUI', 'MetalRadioButtonUI',
+            'MetalScrollBarUI', 'MetalScrollButton',
+            'MetalScrollPaneUI', 'MetalSeparatorUI',
+            'MetalSliderUI', 'MetalSplitPaneUI',
+            'MetalTabbedPaneUI', 'MetalTextFieldUI',
+            'MetalTheme', 'MetalToggleButtonUI',
+            'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI',
+            'MetaMessage', 'Method', 'MethodDescriptor',
+            'MidiChannel', 'MidiDevice', 'MidiDevice.Info',
+            'MidiDeviceProvider', 'MidiEvent', 'MidiFileFormat',
+            'MidiFileReader', 'MidiFileWriter', 'MidiMessage',
+            'MidiSystem', 'MidiUnavailableException',
+            'MimeTypeParseException', 'MinimalHTMLWriter',
+            'MissingResourceException', 'Mixer', 'Mixer.Info',
+            'MixerProvider', 'ModificationItem', 'Modifier',
+            'MouseAdapter', 'MouseDragGestureRecognizer',
+            'MouseEvent', 'MouseInputAdapter',
+            'MouseInputListener', 'MouseListener',
+            'MouseMotionAdapter', 'MouseMotionListener',
+            'MultiButtonUI', 'MulticastSocket',
+            'MultiColorChooserUI', 'MultiComboBoxUI',
+            'MultiDesktopIconUI', 'MultiDesktopPaneUI',
+            'MultiFileChooserUI', 'MultiInternalFrameUI',
+            'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel',
+            'MultiMenuBarUI', 'MultiMenuItemUI',
+            'MultiOptionPaneUI', 'MultiPanelUI',
+            'MultiPixelPackedSampleModel', 'MultipleMaster',
+            'MultiPopupMenuUI', 'MultiProgressBarUI',
+            'MultiScrollBarUI', 'MultiScrollPaneUI',
+            'MultiSeparatorUI', 'MultiSliderUI',
+            'MultiSplitPaneUI', 'MultiTabbedPaneUI',
+            'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI',
+            'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI',
+            'MultiViewportUI', 'MutableAttributeSet',
+            'MutableComboBoxModel', 'MutableTreeNode', 'Name',
+            'NameAlreadyBoundException', 'NameClassPair',
+            'NameComponent', 'NameComponentHelper',
+            'NameComponentHolder', 'NamedValue', 'NameHelper',
+            'NameHolder', 'NameNotFoundException', 'NameParser',
+            'NamespaceChangeListener', 'NameValuePair',
+            'NameValuePairHelper', 'Naming', 'NamingContext',
+            'NamingContextHelper', 'NamingContextHolder',
+            'NamingContextOperations', 'NamingEnumeration',
+            'NamingEvent', 'NamingException',
+            'NamingExceptionEvent', 'NamingListener',
+            'NamingManager', 'NamingSecurityException',
+            'NegativeArraySizeException', 'NetPermission',
+            'NoClassDefFoundError', 'NoInitialContextException',
+            'NoninvertibleTransformException',
+            'NoPermissionException', 'NoRouteToHostException',
+            'NoSuchAlgorithmException',
+            'NoSuchAttributeException', 'NoSuchElementException',
+            'NoSuchFieldError', 'NoSuchFieldException',
+            'NoSuchMethodError', 'NoSuchMethodException',
+            'NoSuchObjectException', 'NoSuchProviderException',
+            'NotActiveException', 'NotBoundException',
+            'NotContextException', 'NotEmpty', 'NotEmptyHelper',
+            'NotEmptyHolder', 'NotFound', 'NotFoundHelper',
+            'NotFoundHolder', 'NotFoundReason',
+            'NotFoundReasonHelper', 'NotFoundReasonHolder',
+            'NotOwnerException', 'NotSerializableException',
+            'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION',
+            'NO_RESOURCES', 'NO_RESPONSE',
+            'NullPointerException', 'Number', 'NumberFormat',
+            'NumberFormatException', 'NVList', 'Object',
+            'ObjectChangeListener', 'ObjectFactory',
+            'ObjectFactoryBuilder', 'ObjectHelper',
+            'ObjectHolder', 'ObjectImpl',
+            'ObjectInput', 'ObjectInputStream',
+            'ObjectInputStream.GetField',
+            'ObjectInputValidation', 'ObjectOutput',
+            'ObjectOutputStream', 'ObjectOutputStream.PutField',
+            'ObjectStreamClass', 'ObjectStreamConstants',
+            'ObjectStreamException', 'ObjectStreamField',
+            'ObjectView', 'OBJECT_NOT_EXIST', 'ObjID',
+            'OBJ_ADAPTER', 'Observable', 'Observer',
+            'OctetSeqHelper', 'OctetSeqHolder', 'OMGVMCID',
+            'OpenType', 'Operation',
+            'OperationNotSupportedException', 'Option',
+            'OptionalDataException', 'OptionPaneUI', 'ORB',
+            'OutOfMemoryError', 'OutputStream',
+            'OutputStreamWriter', 'OverlayLayout', 'Owner',
+            'Package', 'PackedColorModel', 'Pageable',
+            'PageAttributes', 'PageAttributes.ColorType',
+            'PageAttributes.MediaType',
+            'PageAttributes.OrientationRequestedType',
+            'PageAttributes.OriginType',
+            'PageAttributes.PrintQualityType', 'PageFormat',
+            'Paint', 'PaintContext', 'PaintEvent', 'Panel',
+            'PanelUI', 'Paper', 'ParagraphView',
+            'ParameterBlock', 'ParameterDescriptor',
+            'ParseException', 'ParsePosition', 'Parser',
+            'ParserDelegator', 'PartialResultException',
+            'PasswordAuthentication', 'PasswordView', 'Patch',
+            'PathIterator', 'Permission',
+            'PermissionCollection', 'Permissions',
+            'PERSIST_STORE', 'PhantomReference',
+            'PipedInputStream', 'PipedOutputStream',
+            'PipedReader', 'PipedWriter', 'PixelGrabber',
+            'PixelInterleavedSampleModel', 'PKCS8EncodedKeySpec',
+            'PlainDocument', 'PlainView', 'Point', 'Point2D',
+            'Point2D.Double', 'Point2D.Float', 'Policy',
+            'PolicyError', 'PolicyHelper',
+            'PolicyHolder', 'PolicyListHelper',
+            'PolicyListHolder', 'PolicyOperations',
+            'PolicyTypeHelper', 'Polygon', 'PopupMenu',
+            'PopupMenuEvent', 'PopupMenuListener', 'PopupMenuUI',
+            'Port', 'Port.Info', 'PortableRemoteObject',
+            'PortableRemoteObjectDelegate', 'Position',
+            'Position.Bias', 'PreparedStatement', 'Principal',
+            'PrincipalHolder', 'Printable',
+            'PrinterAbortException', 'PrinterException',
+            'PrinterGraphics', 'PrinterIOException',
+            'PrinterJob', 'PrintGraphics', 'PrintJob',
+            'PrintStream', 'PrintWriter', 'PrivateKey',
+            'PRIVATE_MEMBER', 'PrivilegedAction',
+            'PrivilegedActionException',
+            'PrivilegedExceptionAction', 'Process',
+            'ProfileDataException', 'ProgressBarUI',
+            'ProgressMonitor', 'ProgressMonitorInputStream',
+            'Properties', 'PropertyChangeEvent',
+            'PropertyChangeListener', 'PropertyChangeSupport',
+            'PropertyDescriptor', 'PropertyEditor',
+            'PropertyEditorManager', 'PropertyEditorSupport',
+            'PropertyPermission', 'PropertyResourceBundle',
+            'PropertyVetoException', 'ProtectionDomain',
+            'ProtocolException', 'Provider', 'ProviderException',
+            'Proxy', 'PublicKey', 'PUBLIC_MEMBER',
+            'PushbackInputStream', 'PushbackReader',
+            'QuadCurve2D', 'QuadCurve2D.Double',
+            'QuadCurve2D.Float', 'Random', 'RandomAccessFile',
+            'Raster', 'RasterFormatException', 'RasterOp',
+            'Reader', 'Receiver', 'Rectangle', 'Rectangle2D',
+            'Rectangle2D.Double', 'Rectangle2D.Float',
+            'RectangularShape', 'Ref', 'RefAddr', 'Reference',
+            'Referenceable', 'ReferenceQueue',
+            'ReferralException', 'ReflectPermission', 'Registry',
+            'RegistryHandler', 'RemarshalException', 'Remote',
+            'RemoteCall', 'RemoteException', 'RemoteObject',
+            'RemoteRef', 'RemoteServer', 'RemoteStub',
+            'RenderableImage', 'RenderableImageOp',
+            'RenderableImageProducer', 'RenderContext',
+            'RenderedImage', 'RenderedImageFactory', 'Renderer',
+            'RenderingHints', 'RenderingHints.Key',
+            'RepaintManager', 'ReplicateScaleFilter',
+            'Repository', 'RepositoryIdHelper', 'Request',
+            'RescaleOp', 'Resolver', 'ResolveResult',
+            'ResourceBundle', 'ResponseHandler', 'ResultSet',
+            'ResultSetMetaData', 'ReverbType', 'RGBImageFilter',
+            'RMIClassLoader', 'RMIClientSocketFactory',
+            'RMIFailureHandler', 'RMISecurityException',
+            'RMISecurityManager', 'RMIServerSocketFactory',
+            'RMISocketFactory', 'Robot', 'RootPaneContainer',
+            'RootPaneUI', 'RoundRectangle2D',
+            'RoundRectangle2D.Double', 'RoundRectangle2D.Float',
+            'RowMapper', 'RSAKey', 'RSAKeyGenParameterSpec',
+            'RSAPrivateCrtKey', 'RSAPrivateCrtKeySpec',
+            'RSAPrivateKey', 'RSAPrivateKeySpec', 'RSAPublicKey',
+            'RSAPublicKeySpec', 'RTFEditorKit',
+            'RuleBasedCollator', 'Runnable', 'RunTime',
+            'Runtime', 'RuntimeException', 'RunTimeOperations',
+            'RuntimePermission', 'SampleModel',
+            'SchemaViolationException', 'Scrollable',
+            'Scrollbar', 'ScrollBarUI', 'ScrollPane',
+            'ScrollPaneConstants', 'ScrollPaneLayout',
+            'ScrollPaneLayout.UIResource', 'ScrollPaneUI',
+            'SearchControls', 'SearchResult',
+            'SecureClassLoader', 'SecureRandom',
+            'SecureRandomSpi', 'Security', 'SecurityException',
+            'SecurityManager', 'SecurityPermission', 'Segment',
+            'SeparatorUI', 'Sequence', 'SequenceInputStream',
+            'Sequencer', 'Sequencer.SyncMode', 'Serializable',
+            'SerializablePermission', 'ServantObject',
+            'ServerCloneException', 'ServerError',
+            'ServerException', 'ServerNotActiveException',
+            'ServerRef', 'ServerRequest',
+            'ServerRuntimeException', 'ServerSocket',
+            'ServiceDetail', 'ServiceDetailHelper',
+            'ServiceInformation', 'ServiceInformationHelper',
+            'ServiceInformationHolder',
+            'ServiceUnavailableException', 'Set',
+            'SetOverrideType', 'SetOverrideTypeHelper', 'Shape',
+            'ShapeGraphicAttribute', 'ShortHolder',
+            'ShortLookupTable', 'ShortMessage', 'ShortSeqHelper',
+            'ShortSeqHolder', 'Signature', 'SignatureException',
+            'SignatureSpi', 'SignedObject', 'Signer',
+            'SimpleAttributeSet', 'SimpleBeanInfo',
+            'SimpleDateFormat', 'SimpleTimeZone',
+            'SinglePixelPackedSampleModel',
+            'SingleSelectionModel', 'SizeLimitExceededException',
+            'SizeRequirements', 'SizeSequence', 'Skeleton',
+            'SkeletonMismatchException',
+            'SkeletonNotFoundException', 'SliderUI', 'Socket',
+            'SocketException', 'SocketImpl', 'SocketImplFactory',
+            'SocketOptions', 'SocketPermission',
+            'SocketSecurityException', 'SoftBevelBorder',
+            'SoftReference', 'SortedMap', 'SortedSet',
+            'Soundbank', 'SoundbankReader', 'SoundbankResource',
+            'SourceDataLine', 'SplitPaneUI', 'SQLData',
+            'SQLException', 'SQLInput', 'SQLOutput',
+            'SQLPermission', 'SQLWarning', 'Stack',
+            'StackOverflowError', 'StateEdit', 'StateEditable',
+            'StateFactory', 'Statement', 'Streamable',
+            'StreamableValue', 'StreamCorruptedException',
+            'StreamTokenizer', 'StrictMath', 'String',
+            'StringBuffer', 'StringBufferInputStream',
+            'StringCharacterIterator', 'StringContent',
+            'StringHolder', 'StringIndexOutOfBoundsException',
+            'StringReader', 'StringRefAddr', 'StringSelection',
+            'StringTokenizer', 'StringValueHelper',
+            'StringWriter', 'Stroke', 'Struct', 'StructMember',
+            'StructMemberHelper', 'Stub', 'StubDelegate',
+            'StubNotFoundException', 'Style', 'StyleConstants',
+            'StyleConstants.CharacterConstants',
+            'StyleConstants.ColorConstants',
+            'StyleConstants.FontConstants',
+            'StyleConstants.ParagraphConstants', 'StyleContext',
+            'StyledDocument', 'StyledEditorKit',
+            'StyledEditorKit.AlignmentAction',
+            'StyledEditorKit.BoldAction',
+            'StyledEditorKit.FontFamilyAction',
+            'StyledEditorKit.FontSizeAction',
+            'StyledEditorKit.ForegroundAction',
+            'StyledEditorKit.ItalicAction',
+            'StyledEditorKit.StyledTextAction',
+            'StyledEditorKit.UnderlineAction', 'StyleSheet',
+            'StyleSheet.BoxPainter', 'StyleSheet.ListPainter',
+            'SwingConstants', 'SwingPropertyChangeSupport',
+            'SwingUtilities', 'SyncFailedException',
+            'Synthesizer', 'SysexMessage', 'System',
+            'SystemColor', 'SystemException', 'SystemFlavorMap',
+            'TabableView', 'TabbedPaneUI', 'TabExpander',
+            'TableCellEditor', 'TableCellRenderer',
+            'TableColumn', 'TableColumnModel',
+            'TableColumnModelEvent', 'TableColumnModelListener',
+            'TableHeaderUI', 'TableModel', 'TableModelEvent',
+            'TableModelListener', 'TableUI', 'TableView',
+            'TabSet', 'TabStop', 'TagElement', 'TargetDataLine',
+            'TCKind', 'TextAction', 'TextArea', 'TextAttribute',
+            'TextComponent', 'TextEvent', 'TextField',
+            'TextHitInfo', 'TextLayout',
+            'TextLayout.CaretPolicy', 'TextListener',
+            'TextMeasurer', 'TextUI', 'TexturePaint', 'Thread',
+            'ThreadDeath', 'ThreadGroup', 'ThreadLocal',
+            'Throwable', 'Tie', 'TileObserver', 'Time',
+            'TimeLimitExceededException', 'Timer',
+            'TimerTask', 'Timestamp', 'TimeZone', 'TitledBorder',
+            'ToolBarUI', 'Toolkit', 'ToolTipManager',
+            'ToolTipUI', 'TooManyListenersException', 'Track',
+            'TransactionRequiredException',
+            'TransactionRolledbackException',
+            'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK',
+            'Transferable', 'TransformAttribute', 'TRANSIENT',
+            'Transmitter', 'Transparency', 'TreeCellEditor',
+            'TreeCellRenderer', 'TreeExpansionEvent',
+            'TreeExpansionListener', 'TreeMap', 'TreeModel',
+            'TreeModelEvent', 'TreeModelListener', 'TreeNode',
+            'TreePath', 'TreeSelectionEvent',
+            'TreeSelectionListener', 'TreeSelectionModel',
+            'TreeSet', 'TreeUI', 'TreeWillExpandListener',
+            'TypeCode', 'TypeCodeHolder', 'TypeMismatch',
+            'Types', 'UID', 'UIDefaults',
+            'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap',
+            'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue',
+            'UIManager', 'UIManager.LookAndFeelInfo',
+            'UIResource', 'ULongLongSeqHelper',
+            'ULongLongSeqHolder', 'ULongSeqHelper',
+            'ULongSeqHolder', 'UndeclaredThrowableException',
+            'UndoableEdit', 'UndoableEditEvent',
+            'UndoableEditListener', 'UndoableEditSupport',
+            'UndoManager', 'UnexpectedException',
+            'UnicastRemoteObject', 'UnionMember',
+            'UnionMemberHelper', 'UNKNOWN', 'UnknownError',
+            'UnknownException', 'UnknownGroupException',
+            'UnknownHostException',
+            'UnknownObjectException', 'UnknownServiceException',
+            'UnknownUserException', 'UnmarshalException',
+            'UnrecoverableKeyException', 'Unreferenced',
+            'UnresolvedPermission', 'UnsatisfiedLinkError',
+            'UnsolicitedNotification',
+            'UnsolicitedNotificationEvent',
+            'UnsolicitedNotificationListener',
+            'UnsupportedAudioFileException',
+            'UnsupportedClassVersionError',
+            'UnsupportedEncodingException',
+            'UnsupportedFlavorException',
+            'UnsupportedLookAndFeelException',
+            'UnsupportedOperationException',
+            'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE',
+            'URL', 'URLClassLoader', 'URLConnection',
+            'URLDecoder', 'URLEncoder', 'URLStreamHandler',
+            'URLStreamHandlerFactory', 'UserException',
+            'UShortSeqHelper', 'UShortSeqHolder',
+            'UTFDataFormatException', 'Util', 'UtilDelegate',
+            'Utilities', 'ValueBase', 'ValueBaseHelper',
+            'ValueBaseHolder', 'ValueFactory', 'ValueHandler',
+            'ValueMember', 'ValueMemberHelper',
+            'VariableHeightLayoutCache', 'Vector', 'VerifyError',
+            'VersionSpecHelper', 'VetoableChangeListener',
+            'VetoableChangeSupport', 'View', 'ViewFactory',
+            'ViewportLayout', 'ViewportUI',
+            'VirtualMachineError', 'Visibility',
+            'VisibilityHelper', 'VMID', 'VM_ABSTRACT',
+            'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE',
+            'VoiceStatus', 'Void', 'WCharSeqHelper',
+            'WCharSeqHolder', 'WeakHashMap', 'WeakReference',
+            'Window', 'WindowAdapter', 'WindowConstants',
+            'WindowEvent', 'WindowListener', 'WrappedPlainView',
+            'WritableRaster', 'WritableRenderedImage',
+            'WriteAbortedException', 'Writer',
+            'WrongTransaction', 'WStringValueHelper',
+            'X509Certificate', 'X509CRL', 'X509CRLEntry',
+            'X509EncodedKeySpec', 'X509Extension', 'ZipEntry',
+            'ZipException', 'ZipFile', 'ZipInputStream',
+            'ZipOutputStream', 'ZoneView',
+            '_BindingIteratorImplBase', '_BindingIteratorStub',
+            '_IDLTypeStub', '_NamingContextImplBase',
+            '_NamingContextStub', '_PolicyStub', '_Remote_Stub'
+        ),
+        4 => array(
+            'Double', 'Int', 'Boolean', 'Byte', 'Short', 'Long', 'Char', 'Float', 'Unit', 'Nothing', 'Any'
+        )
+    ),
+    '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: #000066; font-weight: bold;',
+            3 => 'color: #003399;',
+            4 => 'color: #000066; font-weight: bold;'
+        ),
+        '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(
+            0 => 'color: #000099; font-weight: bold;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #0000ff;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+        ),
+        'METHODS' => array(
+            1 => 'color: #006633;',
+            2 => 'color: #006633;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;'
+        ),
+        'SCRIPT' => array(),
+        'REGEXPS' => array()
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+{FNAMEL}',
+        4 => ''
+    ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+    ),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/latex.php b/vendor/geshi/geshi/src/geshi/latex.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/latex.php
rename to vendor/geshi/geshi/src/geshi/latex.php
index 6925a16f0ac79dd62c5f9d6fee7e7a05e5157a2a..d03dde9241f7cfd35210079ac12dd45a31ea5972 100644
--- a/vendor/easybook/geshi/geshi/latex.php
+++ b/vendor/geshi/geshi/src/geshi/latex.php
@@ -4,7 +4,7 @@
  * -----
  * 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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/09/23
  *
  * LaTeX language file for GeSHi.
@@ -131,7 +131,7 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => 'http://www.golatex.de/wiki/index.php?title=%5C{FNAME}',
+        1 => 'http://www.golatex.de/wiki/%5C{FNAME}',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
@@ -219,4 +219,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/lb.php b/vendor/geshi/geshi/src/geshi/lb.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/lb.php
rename to vendor/geshi/geshi/src/geshi/lb.php
index 8746ad26de7d7907b1fc019607eb922243bfac47..6882ea86d85143d89a4084fc0105d1d08ab4ae4a 100644
--- a/vendor/easybook/geshi/geshi/lb.php
+++ b/vendor/geshi/geshi/src/geshi/lb.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Chris Iverson (cj.no.one@gmail.com)
  * Copyright: (c) 2010 Chris Iverson
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/07/18
  *
  * Liberty BASIC language file for GeSHi.
@@ -158,4 +158,3 @@ $language_data = array(
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/ldif.php b/vendor/geshi/geshi/src/geshi/ldif.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ldif.php
rename to vendor/geshi/geshi/src/geshi/ldif.php
index c085683958a46c5b72a15106569b0381f7d2b108..86be996c780b7d303298ffeec5facd897aa80bac 100644
--- a/vendor/easybook/geshi/geshi/ldif.php
+++ b/vendor/geshi/geshi/src/geshi/ldif.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Bruno Harbulot (Bruno.Harbulot@manchester.ac.uk)
  * Copyright: (c) 2005 deguix, (c) 2010 Bruno Harbulot
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/03/01
  *
  * LDIF language file for GeSHi.
@@ -112,4 +112,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/lisp.php b/vendor/geshi/geshi/src/geshi/lisp.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/lisp.php
rename to vendor/geshi/geshi/src/geshi/lisp.php
index a2301914e0968eea90f6967a7a3a291b9c1d6b7e..9b3dbf8321451c85f50dd8894e0e96ff4221e3aa 100644
--- a/vendor/easybook/geshi/geshi/lisp.php
+++ b/vendor/geshi/geshi/src/geshi/lisp.php
@@ -4,14 +4,14 @@
  * --------
  * 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.12
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * Generic Lisp language file for GeSHi.
  *
  * CHANGES
  * -------
- * 2013/11/13 (1.0.8.12)
+ * 2013/11/13 (1.0.8.13)
  *  -  Fixed bug where a keyword was highlighted in identifiers (Edward Hart)
  * 2005/12/9  (1.0.2)
  *  -  Added support for :keywords and ::access (Denis Mashkevich)
diff --git a/vendor/easybook/geshi/geshi/llvm.php b/vendor/geshi/geshi/src/geshi/llvm.php
similarity index 75%
rename from vendor/easybook/geshi/geshi/llvm.php
rename to vendor/geshi/geshi/src/geshi/llvm.php
index b0fbce72d307cc9f7d29b358b9bc93027c9d6b10..ca375bb1ff75c38c07279b7fc9c5f48513c06ac6 100644
--- a/vendor/easybook/geshi/geshi/llvm.php
+++ b/vendor/geshi/geshi/src/geshi/llvm.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org), Azriel Fasten (azriel.fasten@gmail.com)
  * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/), Azriel Fasten (azriel.fasten@gmail.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/10/14
  *
  * LLVM language file for GeSHi.
@@ -66,15 +66,15 @@ $language_data = array(
     GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         0 => array(
-            'to', 'nuw', 'nsw', 'align', 'inbounds', 'entry', 'return'
+            'to', 'nuw', 'nsw', 'inbounds', 'entry', 'return'
             ),
         //Terminator Instructions
         1 => array(
-            'ret', 'br', 'switch', 'indirectbr', 'invoke', 'unwind', 'unreachable'
+            'ret', 'br', 'switch', 'indirectbr', 'invoke', 'resume', 'catchswitch', 'catchret', 'cleanupret', 'unreachable'
             ),
         //Binary Operations
         2 => array(
-            'add', 'fadd', 'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'frem', 'srem'
+            'add', 'fadd', 'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'srem', 'frem'
             ),
         //Bitwise Binary Operations
         3 => array(
@@ -90,39 +90,44 @@ $language_data = array(
             ),
         //Memory Access and Addressing Operations
         6 => array(
-            'alloca', 'load', 'store', 'getelementptr'
+            'alloca', 'load', 'store', 'fence', 'cmpxchg', 'atomicrmw', 'getelementptr'
             ),
         //Conversion Operations
         7 => array(
-            'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'fptoui', 'fptosi',
-            'uitofp', 'sitofp', 'ptrtoint', 'inttoptr', 'bitcast'
+            'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'fptoui', 'fptosi', 'uitofp', 'sitofp',
+            'ptrtoint', 'inttoptr', 'bitcast', 'addrspacecast'
             ),
         //Other Operations
         8 => array(
-            'icmp', 'fcmp', 'phi', 'select', 'call', 'va_arg'
+            'icmp', 'fcmp', 'phi', 'select', 'call', 'va_arg', 'landingpad', 'catchpad', 'cleanuppad'
             ),
         //Linkage Types
         9 => array(
-            'private', 'linker_private', 'linker_private_weak', 'linker_private_weak_def_auto',
-            'internal', 'available_externally', 'linkonce', 'common', 'weak', 'appending',
-            'extern_weak', 'linkonce_odr', 'weak_odr', 'externally visible', 'dllimport', 'dllexport',
+            'private', 'internal', 'available_externally', 'linkonce', 'weak', 'common', 'appending',
+            'extern_weak', 'linkonce_odr', 'weak_odr', 'external'
             ),
         //Calling Conventions
         10 => array(
-            'ccc', 'fastcc', 'coldcc', 'cc 10'
+            'ccc', 'fastcc', 'coldcc', 'cc 10', 'cc 11', 'webkit_jscc', 'anyregcc', 'preserve_mostcc',
+            'preserve_allcc', 'cxx_fast_tlscc', 'swiftcc', 'cc'
             ),
-        //Named Types
+        //Structure Types
         11 => array(
             'type'
             ),
         //Parameter Attributes
         12 => array(
-            'zeroext', 'signext', 'inreg', 'byval', 'sret', 'noalias', 'nocapture', 'nest'
+            'zeroext', 'signext', 'inreg', 'byval', 'inalloca', 'sret', 'align', 'noalias', 'nocapture', 'nest',
+            'returned', 'nonnull', 'dereferenceable', 'dereferenceable_or_null', 'swiftself', 'swifterror'
             ),
         //Function Attributes
         13 => array(
-            'alignstack', 'alwaysinline', 'inlinehint', 'naked', 'noimplicitfloat', 'noinline', 'noredzone', 'noreturn',
-            'nounwind', 'optsize', 'readnone', 'readonly', 'ssp', 'sspreq',
+            'alignstack', 'allocsize', 'alwaysinline', 'builtin', 'cold', 'convergent', 'inaccessiblememonly',
+            'inaccessiblemem_or_argmemonly', 'inlinehint', 'jumptable', 'minsize', 'naked', 'nobuiltin', 'noduplicate',
+            'noimplicitfloat', 'noinline', 'nonlazybind', 'noredzone', 'noreturn', 'norecurse', 'nounwind',
+            'optnone', 'optsize', 'patchable-function', 'readnone', 'readonly', 'writeonly', 'argmemonly',
+            'returns_twice', 'safestack', 'sanitize_address', 'sanitize_memory', 'sanitize_thread', 'ssp',
+            'sspreq', 'sspstrong', 'thunk', 'uwtable'
             ),
         //Module-Level Inline Assembly
         14 => array(
@@ -132,9 +137,9 @@ $language_data = array(
         15 => array(
             'target datalayout'
             ),
-        //Primitive Types
+        //Type System
         16 => array(
-            'x86mmx',
+            'x86_mmx',
             'void',
             'label',
             'metadata',
@@ -142,13 +147,13 @@ $language_data = array(
             ),
         //Floating Point Types
         17 => array(
-            'float', 'double', 'fp128', 'x86_fp80', 'ppc_fp128',
+            'half', 'float', 'double', 'fp128', 'x86_fp80', 'ppc_fp128',
             ),
         //Simple Constants
         18 => array(
             'false', 'true', 'null'
             ),
-        //Global Variable and Function Addresses
+        //Global Variable
         19 => array(
             'global', 'addrspace', 'constant', 'section'
             ),
@@ -172,6 +177,7 @@ $language_data = array(
         24 => array(
             'default', 'hidden', 'protected'
             ),
+        //Volatile Memory Accesses
         25 => array(
             'volatile'
             ),
@@ -304,32 +310,32 @@ $language_data = array(
         ),
     'URLS' => array(
         0 => '',
-        1 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        2 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        3 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        4 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        5 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        6 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        7 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        8 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
-        9 => 'http://llvm.org/docs/LangRef.html#linkage_{FNAME}',
-        10 => 'http://llvm.org/docs/LangRef.html#callingconv',
-        11 => 'http://llvm.org/docs/LangRef.html#namedtypes',
-        12 => 'http://llvm.org/docs/LangRef.html#paramattrs',
-        13 => 'http://llvm.org/docs/LangRef.html#fnattrs',
-        14 => 'http://llvm.org/docs/LangRef.html#moduleasm',
-        15 => 'http://llvm.org/docs/LangRef.html#datalayout',
-        16 => 'http://llvm.org/docs/LangRef.html#t_{FNAME}',
-        17 => 'http://llvm.org/docs/LangRef.html#t_floating',
-        18 => 'http://llvm.org/docs/LangRef.html#simpleconstants',
-        19 => 'http://llvm.org/docs/LangRef.html#globalvars',
-        20 => 'http://llvm.org/docs/LangRef.html#functionstructure',
-        21 => 'http://llvm.org/docs/LangRef.html#complexconstants',
-        22 => 'http://llvm.org/docs/LangRef.html#undefvalues',
-        23 => 'http://llvm.org/docs/LangRef.html#blockaddress',
-        24 => 'http://llvm.org/docs/LangRef.html#visibility',
-        25 => 'http://llvm.org/docs/LangRef.html#volatile',
-        26 => 'http://llvm.org/docs/LangRef.html#i_call',
+        1 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        2 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        3 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        4 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        5 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        6 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        7 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        8 => 'http://llvm.org/docs/LangRef.html#{FNAME}-instruction',
+        9 => 'http://llvm.org/docs/LangRef.html#linkage-types',
+        10 => 'http://llvm.org/docs/LangRef.html#calling-conventions',
+        11 => 'http://llvm.org/docs/LangRef.html#opaque-structure-types',
+        12 => 'http://llvm.org/docs/LangRef.html#parameter-attributes',
+        13 => 'http://llvm.org/docs/LangRef.html#function-attributes',
+        14 => 'http://llvm.org/docs/LangRef.html#module-level-inline-assembly',
+        15 => 'http://llvm.org/docs/LangRef.html#data-layout',
+        16 => 'http://llvm.org/docs/LangRef.html#type-system',
+        17 => 'http://llvm.org/docs/LangRef.html#floating-point-types',
+        18 => 'http://llvm.org/docs/LangRef.html#simple-constants',
+        19 => 'http://llvm.org/docs/LangRef.html#global-variables',
+        20 => 'http://llvm.org/docs/LangRef.html#functions',
+        21 => 'http://llvm.org/docs/LangRef.html#complex-constants',
+        22 => 'http://llvm.org/docs/LangRef.html#undefined-values',
+        23 => 'http://llvm.org/docs/LangRef.html#addresses-of-basic-blocks',
+        24 => 'http://llvm.org/docs/LangRef.html#visibility-styles',
+        25 => 'http://llvm.org/docs/LangRef.html#volatile-memory-accesses',
+        26 => 'http://llvm.org/docs/LangRef.html#call-instruction',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
@@ -381,4 +387,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/locobasic.php b/vendor/geshi/geshi/src/geshi/locobasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/locobasic.php
rename to vendor/geshi/geshi/src/geshi/locobasic.php
index 47de30e2847628c5a1b31d53121dc462e7fa870f..596cb120764640d1ff7d0c355decb7ef77a39c28 100644
--- a/vendor/easybook/geshi/geshi/locobasic.php
+++ b/vendor/geshi/geshi/src/geshi/locobasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Nacho Cabanes
  * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/03/22
  *
  * Locomotive Basic (Amstrad CPC series) language file for GeSHi.
@@ -126,4 +126,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/logtalk.php b/vendor/geshi/geshi/src/geshi/logtalk.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/logtalk.php
rename to vendor/geshi/geshi/src/geshi/logtalk.php
index da249eb2486ecf0d2746206865637982945a690b..a3ed129a37306b6b09161ab8cc42c7af90e70786 100644
--- a/vendor/easybook/geshi/geshi/logtalk.php
+++ b/vendor/geshi/geshi/src/geshi/logtalk.php
@@ -5,7 +5,7 @@
  *
  * Author: Paulo Moura (pmoura@logtalk.org)
  * Copyright: (c) 2009-2011 Paulo Moura (http://logtalk.org/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/24
  *
  * Logtalk language file for GeSHi.
@@ -308,37 +308,36 @@ $language_data = array(
     'PARSER_CONTROL' => array(
         'ENABLE_FLAGS' => array(
             'BRACKETS' => GESHI_NEVER
-        ),
+            ),
         'KEYWORDS' => array(
             1 => array(
                 'DISALLOWED_BEFORE' => '(?<=:-\s)',
                 'DISALLOWED_AFTER' => '(?=\()'
-            ),
+                ),
             2 => array(
                 'DISALLOWED_BEFORE' => '(?<=:-\s)',
                 'DISALLOWED_AFTER' => '(?=\.)'
-            ),
+                ),
             3 => array(
                 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
                 'DISALLOWED_AFTER' => '(?=\()'
-            ),
+                ),
             4 => array(
                 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
                 'DISALLOWED_AFTER' => '(?=\()'
-            ),
+                ),
             5 => array(
                 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
                 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
-            ),
+                ),
             6 => array(
                 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])',
                 'DISALLOWED_AFTER' => '(?=\()'
-            ),
+                ),
             7 => array(
                 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])',
                 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
+                )
             )
         )
-    ),
 );
-
diff --git a/vendor/easybook/geshi/geshi/lolcode.php b/vendor/geshi/geshi/src/geshi/lolcode.php
similarity index 92%
rename from vendor/easybook/geshi/geshi/lolcode.php
rename to vendor/geshi/geshi/src/geshi/lolcode.php
index c8e623acf0296184acd9fcd4c7e87d97b5b9d37b..39cae20149d413185ca877bd16918f9118b04794 100644
--- a/vendor/easybook/geshi/geshi/lolcode.php
+++ b/vendor/geshi/geshi/src/geshi/lolcode.php
@@ -4,13 +4,16 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/31
  *
  * LOLcode language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2014/2/25
+ *   -  Fixed to not throw missing index exception.
+ *
  * 2008/10/31 (1.0.8.1)
  *   -  First Release
  *
@@ -36,10 +39,11 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  ************************************************************************************/
-$language_data = array (
+
+$language_data = array(
     'LANG_NAME' => 'LOLcode',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
+    'COMMENT_SINGLE' => array('BTW'),
+    'COMMENT_MULTI' => array('BTW','WTB'),
     'COMMENT_REGEXP' => array(
         1 => "/\bBTW\b.*$/im",
         2 => "/(^|\b)(?:OBTW\b.+?\bTLDR|LOL\b.+?\/LOL)(\b|$)/si"
@@ -102,6 +106,7 @@ $language_data = array (
             4 => 'color: #800000;'
             ),
         'COMMENTS' => array(
+            0 => 'color: #666666; style: italic;',
             1 => 'color: #666666; style: italic;',
             2 => 'color: #666666; style: italic;'
             ),
@@ -112,15 +117,19 @@ $language_data = array (
             0 => 'color: #ff0000;'
             ),
         'NUMBERS' => array(
+            0 => 'color: #00F;'
             ),
         'METHODS' => array(
+            0 => 'color: #0F0;'
             ),
         'SYMBOLS' => array(
             0 => 'color: #66cc66;'
             ),
         'ESCAPE_CHAR' => array(
+            0 => 'color: #00F;'
             ),
         'SCRIPT' => array(
+            0 => 'color: #00F;'
             ),
         'REGEXPS' => array(
             )
@@ -148,4 +157,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/lotusformulas.php b/vendor/geshi/geshi/src/geshi/lotusformulas.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/lotusformulas.php
rename to vendor/geshi/geshi/src/geshi/lotusformulas.php
index 18d6f7822b563cce5fa63761af204a39ce75d12d..4f1c6781941f7e89d312123c0958af4ca49a7bea 100644
--- a/vendor/easybook/geshi/geshi/lotusformulas.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/04/12
  *
  * @Formula/@Command language file for GeSHi.
@@ -313,4 +313,4 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
     'TAB_WIDTH' => 2
-    );
+);
diff --git a/vendor/easybook/geshi/geshi/lotusscript.php b/vendor/geshi/geshi/src/geshi/lotusscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/lotusscript.php
rename to vendor/geshi/geshi/src/geshi/lotusscript.php
index 5d8b6d596af09801c3e91627fe5cfbf6924e3cc8..069e603a67675323b2e43e8c99ceb9b27c894fb3 100644
--- a/vendor/easybook/geshi/geshi/lotusscript.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/04/12
  *
  * LotusScript language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/lscript.php b/vendor/geshi/geshi/src/geshi/lscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/lscript.php
rename to vendor/geshi/geshi/src/geshi/lscript.php
index 0f404f817b32e7216a83797d1c65f1c6f9432205..432d54aab9e4f3d5466cc38b19b11ea0e5d80825 100644
--- a/vendor/easybook/geshi/geshi/lscript.php
+++ b/vendor/geshi/geshi/src/geshi/lscript.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Arendedwinter (admin@arendedwinter.com)
  * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 15/11/2008
  *
  * Lightwave Script language file for GeSHi.
@@ -383,4 +383,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/lsl2.php b/vendor/geshi/geshi/src/geshi/lsl2.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/lsl2.php
rename to vendor/geshi/geshi/src/geshi/lsl2.php
index dd0bcce8bf2e30397b52c7becd0900760411fb98..608b5e124faa249e797e2f7eb6787c3aff809800 100644
--- a/vendor/easybook/geshi/geshi/lsl2.php
+++ b/vendor/geshi/geshi/src/geshi/lsl2.php
@@ -4,7 +4,7 @@
  * --------
  * Author: William Fry (william.fry@nyu.edu)
  * Copyright: (c) 2009 William Fry
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/02/04
  *
  * Linden Scripting Language (LSL2) language file for GeSHi.
@@ -17,9 +17,8 @@
  *   -  Modified by Sei Lisa for compatibility with the geshi.py output module
  *      which is part of the LSL2 Derived Files Generator, available at:
  *      http://code.google.com/p/lsl-keywords
- *
- * TODO (updated 2009/02/05)
- * -------------------------
+ * 2013-07-11
+ *   -  Modified by Sei Lisa to fix symbols and to add multiline comment support
  *
  *************************************************************************************
  *
@@ -41,15 +40,16 @@
  *
  ************************************************************************************/
 
-$language_data = array (
+// Generated by LSL2 Derived Files Generator. Database version: 0.0.20140116001; output module version: 0.0.20130817000
+
+$language_data = array(
     'LANG_NAME' => 'LSL2',
     'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array(),
+    'COMMENT_MULTI' => array('/*' => '*/'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
-// Generated by LSL2 Derived Files Generator. Database version: 0.0.20130627001; output module version: 0.0.20130619000
         1 => array( // flow control
             'do',
             'else',
@@ -252,6 +252,7 @@ $language_data = array (
             'INVENTORY_TEXTURE',
             'JSON_APPEND',
             'JSON_ARRAY',
+            'JSON_DELETE',
             'JSON_FALSE',
             'JSON_INVALID',
             'JSON_NULL',
@@ -316,6 +317,7 @@ $language_data = array (
             'OBJECT_PHYSICS_COST',
             'OBJECT_POS',
             'OBJECT_PRIM_EQUIVALENCE',
+            'OBJECT_RENDER_WEIGHT',
             'OBJECT_RETURN_PARCEL',
             'OBJECT_RETURN_PARCEL_OWNER',
             'OBJECT_RETURN_REGION',
@@ -513,10 +515,21 @@ $language_data = array (
             'PRIM_TYPE_TUBE',
             'PROFILE_NONE',
             'PROFILE_SCRIPT_MEMORY',
+            'PSYS_PART_BF_DEST_COLOR',
+            'PSYS_PART_BF_ONE',
+            'PSYS_PART_BF_ONE_MINUS_DEST_COLOR',
+            'PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA',
+            'PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR',
+            'PSYS_PART_BF_SOURCE_ALPHA',
+            'PSYS_PART_BF_SOURCE_COLOR',
+            'PSYS_PART_BF_ZERO',
+            'PSYS_PART_BLEND_FUNC_DEST',
+            'PSYS_PART_BLEND_FUNC_SOURCE',
             'PSYS_PART_BOUNCE_MASK',
             'PSYS_PART_EMISSIVE_MASK',
             'PSYS_PART_END_ALPHA',
             'PSYS_PART_END_COLOR',
+            'PSYS_PART_END_GLOW',
             'PSYS_PART_END_SCALE',
             'PSYS_PART_FLAGS',
             'PSYS_PART_FOLLOW_SRC_MASK',
@@ -524,8 +537,10 @@ $language_data = array (
             'PSYS_PART_INTERP_COLOR_MASK',
             'PSYS_PART_INTERP_SCALE_MASK',
             'PSYS_PART_MAX_AGE',
+            'PSYS_PART_RIBBON_MASK',
             'PSYS_PART_START_ALPHA',
             'PSYS_PART_START_COLOR',
+            'PSYS_PART_START_GLOW',
             'PSYS_PART_START_SCALE',
             'PSYS_PART_TARGET_LINEAR_MASK',
             'PSYS_PART_TARGET_POS_MASK',
@@ -858,7 +873,9 @@ $language_data = array (
             'llGetLocalRot',
             'llGetMass',
             'llGetMassMKS',
+            'llGetMaxScaleFactor',
             'llGetMemoryLimit',
+            'llGetMinScaleFactor',
             'llGetNextEmail',
             'llGetNotecardLine',
             'llGetNumberOfNotecardLines',
@@ -1033,6 +1050,7 @@ $language_data = array (
             'llRound',
             'llSameGroup',
             'llSay',
+            'llScaleByFactor',
             'llScaleTexture',
             'llScriptDanger',
             'llScriptProfiler',
@@ -1183,7 +1201,7 @@ $language_data = array (
     'SYMBOLS' => array(
         '{', '}', '(', ')', '[', ']',
         '=', '+', '-', '*', '/',
-        '+=', '-=', '*=', '/=', '++', '--',
+        '+=', '-=', '*=', '/=', '%=', '++', '--',
         '!', '%', '&', '|', '&&', '||',
         '==', '!=', '<', '>', '<=', '>=',
         '~', '<<', '>>', '^', ':',
@@ -1212,6 +1230,7 @@ $language_data = array (
             ),
         'COMMENTS' => array(
             1 => 'color: #ff7f50; font-style: italic;',
+            'MULTI' => 'color: #ff7f50; font-style: italic;',
             ),
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099;'
diff --git a/vendor/easybook/geshi/geshi/lua.php b/vendor/geshi/geshi/src/geshi/lua.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/lua.php
rename to vendor/geshi/geshi/src/geshi/lua.php
index 985cb8c272dad7ed7bafa12b1e19f8cbdc8a8a46..313bbb53544432c763aa35e8424e13b44b1eb22a 100644
--- a/vendor/easybook/geshi/geshi/lua.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/10
  *
  * LUA language file for GeSHi.
@@ -45,8 +45,8 @@
 $language_data = array (
     'LANG_NAME' => 'Lua',
     'COMMENT_SINGLE' => array(1 => "--"),
-    'COMMENT_MULTI' => array('--[[' => ']]'),
-    'COMMENT_REGEXP' => array(2 => '/\[(=*)\[.*?\]\1\]/s'),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(1 => '/--\[(=*)\[.*?\]\1\]/s'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '',
@@ -127,7 +127,7 @@ $language_data = array (
             ),
         'COMMENTS' => array(
             1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #ff0000;',
+            //2 => 'color: #ff0000;',
             'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
diff --git a/vendor/easybook/geshi/geshi/m68k.php b/vendor/geshi/geshi/src/geshi/m68k.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/m68k.php
rename to vendor/geshi/geshi/src/geshi/m68k.php
index 983c288ecb2c8ea462c6365b1e242e3ba5e3ffd0..e2040a64810fa2ba98025f4318bf688bbffe9f68 100644
--- a/vendor/easybook/geshi/geshi/m68k.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/02/06
  *
  * Motorola 68000 Assembler language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/magiksf.php b/vendor/geshi/geshi/src/geshi/magiksf.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/magiksf.php
rename to vendor/geshi/geshi/src/geshi/magiksf.php
index 9aefbc6eb63912382e3dc9b04ff6acabef2468c3..154cd26d3090bde16180d40fa645435e3a8ca1ac 100644
--- a/vendor/easybook/geshi/geshi/magiksf.php
+++ b/vendor/geshi/geshi/src/geshi/magiksf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Sjoerd van Leent (svanleent@gmail.com)
  * Copyright: (c) 2010 Sjoerd van Leent
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/02/15
  *
  * MagikSF language file for GeSHi.
@@ -51,7 +51,7 @@ $language_data = array (
     //Multiline-continued single-line comments
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
+    'ESCAPE_CHAR' => '', // FIXME: Duplicate array key. null or ''?
     'KEYWORDS' => array(
         1 => array(
             '_block', '_endblock', '_proc', '_endproc', '_loop', '_endloop',
@@ -189,4 +189,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/make.php b/vendor/geshi/geshi/src/geshi/make.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/make.php
rename to vendor/geshi/geshi/src/geshi/make.php
index 24dda4a1ddfd6810b91c1749a125992e10a986fa..fa3193e7e8c8560791c8983a51ba9c11fe472ece 100644
--- a/vendor/easybook/geshi/geshi/make.php
+++ b/vendor/geshi/geshi/src/geshi/make.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Neil Bird <phoenix@fnxweb.com>
  * Copyright: (c) 2008 Neil Bird
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/08/26
  *
  * make language file for GeSHi.
@@ -146,6 +146,4 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array(),
     'TAB_WIDTH' => 8
-// vim: set sw=4 sts=4 :
 );
-
diff --git a/vendor/easybook/geshi/geshi/mapbasic.php b/vendor/geshi/geshi/src/geshi/mapbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/mapbasic.php
rename to vendor/geshi/geshi/src/geshi/mapbasic.php
index 4441d64016e85dc889fb68600b0af9f1671a5d2e..d85e5741b3d05c32652cbdba30587bc68268351b 100644
--- a/vendor/easybook/geshi/geshi/mapbasic.php
+++ b/vendor/geshi/geshi/src/geshi/mapbasic.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Tomasz Berus (t.berus@gisodkuchni.pl)
  * Copyright: (c) 2009 Tomasz Berus (http://sourceforge.net/projects/mbsyntax/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/11/25
  *
  * MapBasic language file for GeSHi.
@@ -904,4 +904,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/mathematica.php b/vendor/geshi/geshi/src/geshi/mathematica.php
new file mode 100644
index 0000000000000000000000000000000000000000..77d8653a0edbc89029f7a70dd90154903f0345b4
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/mathematica.php
@@ -0,0 +1,5035 @@
+<?php
+/*************************************************************************************
+ * mathematica.php
+ * --------
+ * Author: Connor Glosser (glosser1@gmail.com)
+ * Copyright: (c) 2014 Connor Glosser (http://www.msu.edu/~glosser1)
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/08/11
+ *
+ * Mathematica language file for GeSHi.
+ *
+ * COMMENTS
+ * --------
+ * Mathematica itself uses a lot of hyper-contextual syntax highlighting
+ * that doesn't work well outside of their proprietary Notebook interface.
+ * Consequently, external syntax highlighting tends to get noisy quickly.
+ * Here, I've tried to create a triadic color scheme to distinguish keywords,
+ * infix functions, and $-designated variables.
+ *
+ * CHANGES
+ * -------
+ * 2016/10/27 (1.0.8.13)
+ *  - Update function list to Ver. 11
+ *  - Add delimiters for associative arrays
+ * 2014/10/13 (1.0.8.11)
+ *  - Removed style variables for compatability
+ * 2014/08/11 (1.0.8.11)
+ *  - First Release
+ *  - Symbols taken from http://reference.wolfram.com/language/guide/AlphabeticalListing.html
+ *    (Mathematica Version 10)
+ *
+ * TODO (updated 2014/08/12)
+ * -------------------------
+ * - evaluate colored array syntax
+ *************************************************************************************
+ *
+ *     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
+ *
+ ************************************************************************************/
+//"Base" styles
+//string     = 'color: #666666; font-style: italic;';
+//comment    = 'color: #999999; font-style: italic;';
+
+//Purple-green colors
+//primary    = 'color: #500D75; font-weight: bold;'; //keywords
+//secondary  = 'color: #70A30A; font-weight: bold;'; //infix functions
+//tertiary   = 'color: #8C0953; font-weight: bold;'; //$variables
+//quaternary = 'color: #AFAF0B; font-weight: bold;'; //potentially array syntax in the future
+
+//Orange-blue colors (similar to python coloring)
+//primary    = 'color: #FF7700; font-weight: bold;'; //keywords
+//secondary  = 'color: #133CAC; font-weight: bold;'; //infix functions
+//tertiary   = 'color: #028E9B; font-weight: bold;'; //$variables
+//quaternary = 'color: #FFAD00; font-weight: bold;'; //potentially array syntax in the future
+
+$language_data = array(
+    'LANG_NAME' => 'Mathematica',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(
+        '(*' => '*)',
+    ),
+    'COMMENT_REGEXP' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(
+        1 => '"',
+    ),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(),
+    'HARDQUOTE' => array(),
+    'HARDESCAPE' => array(),
+    'HARDCHAR' => '',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        1 => array(
+            'AASTriangle',
+            'APIFunction',
+            'ARCHProcess',
+            'ARIMAProcess',
+            'ARMAProcess',
+            'ARProcess',
+            'ASATriangle',
+            'AbelianGroup',
+            'Abort',
+            'AbortKernels',
+            'AbortProtect',
+            'AbortScheduledTask',
+            'Above',
+            'Abs',
+            'AbsArg',
+            'AbsoluteCorrelation',
+            'AbsoluteCorrelationFunction',
+            'AbsoluteCurrentValue',
+            'AbsoluteDashing',
+            'AbsoluteFileName',
+            'AbsoluteOptions',
+            'AbsolutePointSize',
+            'AbsoluteThickness',
+            'AbsoluteTime',
+            'AbsoluteTiming',
+            'AccountingForm',
+            'Accumulate',
+            'Accuracy',
+            'AccuracyGoal',
+            'ActionMenu',
+            'Activate',
+            'ActiveStyle',
+            'AcyclicGraphQ',
+            'AddTo',
+            'AddUsers',
+            'AdjacencyGraph',
+            'AdjacencyList',
+            'AdjacencyMatrix',
+            'AdjustTimeSeriesForecast',
+            'AdjustmentBox',
+            'AdjustmentBoxOptions',
+            'AdministrativeDivisionData',
+            'AffineHalfSpace',
+            'AffineSpace',
+            'AffineStateSpaceModel',
+            'AffineTransform',
+            'After',
+            'AirPressureData',
+            'AirTemperatureData',
+            'AircraftData',
+            'AirportData',
+            'AiryAi',
+            'AiryAiPrime',
+            'AiryAiZero',
+            'AiryBi',
+            'AiryBiPrime',
+            'AiryBiZero',
+            'AlgebraicIntegerQ',
+            'AlgebraicNumber',
+            'AlgebraicNumberDenominator',
+            'AlgebraicNumberNorm',
+            'AlgebraicNumberPolynomial',
+            'AlgebraicNumberTrace',
+            'AlgebraicUnitQ',
+            'Algebraics',
+            'Alignment',
+            'AlignmentPoint',
+            'All',
+            'AllTrue',
+            'AllowGroupClose',
+            'AllowInlineCells',
+            'AllowLooseGrammar',
+            'AllowReverseGroupClose',
+            'AllowedDimensions',
+            'AlphaChannel',
+            'Alphabet',
+            'AlphabeticOrder',
+            'AlphabeticSort',
+            'AlternateImage',
+            'AlternatingFactorial',
+            'AlternatingGroup',
+            'AlternativeHypothesis',
+            'Alternatives',
+            'AltitudeMethod',
+            'AmbiguityFunction',
+            'AmbiguityList',
+            'AnatomyData',
+            'AnatomyForm',
+            'AnatomyPlot3D',
+            'AnchoredSearch',
+            'And',
+            'AndersonDarlingTest',
+            'AngerJ',
+            'AngleBracket',
+            'AnglePath',
+            'AngleVector',
+            'AngularGauge',
+            'Animate',
+            'AnimationDirection',
+            'AnimationRate',
+            'AnimationRepetitions',
+            'AnimationRunTime',
+            'AnimationRunning',
+            'AnimationTimeIndex',
+            'Animator',
+            'Annotation',
+            'Annuity',
+            'AnnuityDue',
+            'Annulus',
+            'Anonymous',
+            'Antialiasing',
+            'AntihermitianMatrixQ',
+            'Antisymmetric',
+            'AntisymmetricMatrixQ',
+            'AnyOrder',
+            'AnySubset',
+            'AnyTrue',
+            'Apart',
+            'ApartSquareFree',
+            'Appearance',
+            'AppearanceElements',
+            'AppearanceRules',
+            'AppellF1',
+            'Append',
+            'AppendTo',
+            'Apply',
+            'ArcCos',
+            'ArcCosh',
+            'ArcCot',
+            'ArcCoth',
+            'ArcCsc',
+            'ArcCsch',
+            'ArcCurvature',
+            'ArcLength',
+            'ArcSec',
+            'ArcSech',
+            'ArcSin',
+            'ArcSinDistribution',
+            'ArcSinh',
+            'ArcTan',
+            'ArcTanh',
+            'Area',
+            'Arg',
+            'ArgMax',
+            'ArgMin',
+            'ArithmeticGeometricMean',
+            'Array',
+            'ArrayComponents',
+            'ArrayDepth',
+            'ArrayFilter',
+            'ArrayFlatten',
+            'ArrayMesh',
+            'ArrayPad',
+            'ArrayPlot',
+            'ArrayQ',
+            'ArrayResample',
+            'ArrayReshape',
+            'ArrayRules',
+            'Arrays',
+            'Arrow',
+            'Arrowheads',
+            'Ask',
+            'AskAppend',
+            'AskConfirm',
+            'AskDisplay',
+            'AskFunction',
+            'AskTemplateDisplay',
+            'AskedQ',
+            'AskedValue',
+            'AspectRatio',
+            'Assert',
+            'AssociateTo',
+            'Association',
+            'AssociationFormat',
+            'AssociationMap',
+            'AssociationQ',
+            'AssociationThread',
+            'AssumeDeterministic',
+            'Assuming',
+            'Assumptions',
+            'AsymptoticOutputTracker',
+            'Asynchronous',
+            'AsynchronousTaskObject',
+            'AsynchronousTasks',
+            'AtomQ',
+            'Attributes',
+            'Audio',
+            'AudioAmplify',
+            'AudioBlockMap',
+            'AudioChannelCombine',
+            'AudioChannelMix',
+            'AudioChannelSeparate',
+            'AudioChannels',
+            'AudioData',
+            'AudioDelay',
+            'AudioDelete',
+            'AudioDevice',
+            'AudioFade',
+            'AudioFrequencyShift',
+            'AudioGenerator',
+            'AudioIntervals',
+            'AudioJoin',
+            'AudioLabel',
+            'AudioLength',
+            'AudioLocalMeasurements',
+            'AudioMeasurements',
+            'AudioNormalize',
+            'AudioOverlay',
+            'AudioPad',
+            'AudioPan',
+            'AudioPartition',
+            'AudioPitchShift',
+            'AudioPlot',
+            'AudioQ',
+            'AudioResample',
+            'AudioReverb',
+            'AudioSampleRate',
+            'AudioSplit',
+            'AudioTimeStretch',
+            'AudioTrim',
+            'AudioType',
+            'AugmentedSymmetricPolynomial',
+            'Authentication',
+            'AutoAction',
+            'AutoDelete',
+            'AutoIndent',
+            'AutoItalicWords',
+            'AutoMultiplicationSymbol',
+            'AutoRefreshed',
+            'AutoRemove',
+            'AutoScroll',
+            'AutoSpacing',
+            'AutoSubmitting',
+            'Autocomplete',
+            'AutocompletionFunction',
+            'AutocorrelationTest',
+            'Automatic',
+            'AutorunSequencing',
+            'Axes',
+            'AxesEdge',
+            'AxesLabel',
+            'AxesOrigin',
+            'AxesStyle',
+            'Axis',
+            'BSplineBasis',
+            'BSplineCurve',
+            'BSplineFunction',
+            'BSplineSurface',
+            'BabyMonsterGroupB',
+            'Back',
+            'Background',
+            'Backslash',
+            'Backward',
+            'Ball',
+            'Band',
+            'BandpassFilter',
+            'BandstopFilter',
+            'BarChart',
+            'BarChart3D',
+            'BarLegend',
+            'BarOrigin',
+            'BarSpacing',
+            'BarabasiAlbertGraphDistribution',
+            'BarcodeImage',
+            'BarcodeRecognize',
+            'BaringhausHenzeTest',
+            'BarlowProschanImportance',
+            'BarnesG',
+            'BartlettHannWindow',
+            'BartlettWindow',
+            'BaseForm',
+            'BaseStyle',
+            'Baseline',
+            'BaselinePosition',
+            'BatchNormalizationLayer',
+            'BatchSize',
+            'BatesDistribution',
+            'BattleLemarieWavelet',
+            'BayesianMaximization',
+            'BayesianMaximizationObject',
+            'BayesianMinimization',
+            'BayesianMinimizationObject',
+            'Because',
+            'BeckmannDistribution',
+            'Beep',
+            'Before',
+            'Begin',
+            'BeginDialogPacket',
+            'BeginPackage',
+            'BellB',
+            'BellY',
+            'Below',
+            'BenfordDistribution',
+            'BeniniDistribution',
+            'BenktanderGibratDistribution',
+            'BenktanderWeibullDistribution',
+            'BernoulliB',
+            'BernoulliDistribution',
+            'BernoulliGraphDistribution',
+            'BernoulliProcess',
+            'BernsteinBasis',
+            'BesselFilterModel',
+            'BesselI',
+            'BesselJ',
+            'BesselJZero',
+            'BesselK',
+            'BesselY',
+            'BesselYZero',
+            'Beta',
+            'BetaBinomialDistribution',
+            'BetaDistribution',
+            'BetaNegativeBinomialDistribution',
+            'BetaPrimeDistribution',
+            'BetaRegularized',
+            'Between',
+            'BetweennessCentrality',
+            'BezierCurve',
+            'BezierFunction',
+            'BilateralFilter',
+            'BinCounts',
+            'BinLists',
+            'Binarize',
+            'BinaryDistance',
+            'BinaryFormat',
+            'BinaryImageQ',
+            'BinaryRead',
+            'BinaryReadList',
+            'BinaryWrite',
+            'Binomial',
+            'BinomialDistribution',
+            'BinomialProcess',
+            'BinormalDistribution',
+            'BiorthogonalSplineWavelet',
+            'BipartiteGraphQ',
+            'BiquadraticFilterModel',
+            'BirnbaumImportance',
+            'BirnbaumSaundersDistribution',
+            'BitAnd',
+            'BitClear',
+            'BitGet',
+            'BitLength',
+            'BitNot',
+            'BitOr',
+            'BitSet',
+            'BitShiftLeft',
+            'BitShiftRight',
+            'BitXor',
+            'Black',
+            'BlackmanHarrisWindow',
+            'BlackmanNuttallWindow',
+            'BlackmanWindow',
+            'Blank',
+            'BlankNullSequence',
+            'BlankSequence',
+            'Blend',
+            'Block',
+            'BlockMap',
+            'BlockRandom',
+            'BlomqvistBeta',
+            'BlomqvistBetaTest',
+            'Blue',
+            'Blur',
+            'BodePlot',
+            'BohmanWindow',
+            'Bold',
+            'Bookmarks',
+            'Boole',
+            'BooleanConsecutiveFunction',
+            'BooleanConvert',
+            'BooleanCountingFunction',
+            'BooleanFunction',
+            'BooleanGraph',
+            'BooleanMaxterms',
+            'BooleanMinimize',
+            'BooleanMinterms',
+            'BooleanQ',
+            'BooleanRegion',
+            'BooleanStrings',
+            'BooleanTable',
+            'BooleanVariables',
+            'Booleans',
+            'BorderDimensions',
+            'BorelTannerDistribution',
+            'Bottom',
+            'BottomHatTransform',
+            'BoundaryDiscretizeGraphics',
+            'BoundaryDiscretizeRegion',
+            'BoundaryMesh',
+            'BoundaryMeshRegion',
+            'BoundaryMeshRegionQ',
+            'BoundaryStyle',
+            'BoundedRegionQ',
+            'BoundingRegion',
+            'BoxData',
+            'BoxMatrix',
+            'BoxObject',
+            'BoxRatios',
+            'BoxStyle',
+            'BoxWhiskerChart',
+            'Boxed',
+            'BracketingBar',
+            'BrayCurtisDistance',
+            'BreadthFirstScan',
+            'Break',
+            'BridgeData',
+            'BroadcastStationData',
+            'Brown',
+            'BrownForsytheTest',
+            'BrownianBridgeProcess',
+            'BubbleChart',
+            'BubbleChart3D',
+            'BubbleScale',
+            'BubbleSizes',
+            'BuildingData',
+            'BulletGauge',
+            'BusinessDayQ',
+            'ButterflyGraph',
+            'ButterworthFilterModel',
+            'Button',
+            'ButtonBar',
+            'ButtonBox',
+            'ButtonBoxOptions',
+            'ButtonData',
+            'ButtonFunction',
+            'ButtonMinHeight',
+            'ButtonNotebook',
+            'ButtonSource',
+            'Byte',
+            'ByteArray',
+            'ByteArrayQ',
+            'ByteCount',
+            'ByteOrdering',
+
+            'C',
+            'CDF',
+            'CDFDeploy',
+            'CDFInformation',
+            'CDFWavelet',
+            'CForm',
+            'CMYKColor',
+            'CachePersistence',
+            'CalendarConvert',
+            'CalendarData',
+            'CalendarType',
+            'CallPacket',
+            'Callout',
+            'CalloutMarker',
+            'CalloutStyle',
+            'CanberraDistance',
+            'Cancel',
+            'CancelButton',
+            'CandlestickChart',
+            'CanonicalGraph',
+            'CanonicalName',
+            'CanonicalWarpingCorrespondence',
+            'CanonicalWarpingDistance',
+            'CantorStaircase',
+            'Cap',
+            'CapForm',
+            'CapitalDifferentialD',
+            'Capitalize',
+            'CapsuleShape',
+            'CarlemanLinearize',
+            'CarmichaelLambda',
+            'CaseOrdering',
+            'CaseSensitive',
+            'Cases',
+            'Cashflow',
+            'Casoratian',
+            'Catalan',
+            'CatalanNumber',
+            'Catch',
+            'Catenate',
+            'CatenateLayer',
+            'CauchyDistribution',
+            'CauchyWindow',
+            'CayleyGraph',
+            'Ceiling',
+            'CelestialSystem',
+            'Cell',
+            'CellAutoOverwrite',
+            'CellBaseline',
+            'CellBracketOptions',
+            'CellChangeTimes',
+            'CellContext',
+            'CellDingbat',
+            'CellDynamicExpression',
+            'CellEditDuplicate',
+            'CellEpilog',
+            'CellEvaluationDuplicate',
+            'CellEvaluationFunction',
+            'CellEventActions',
+            'CellFrame',
+            'CellFrameColor',
+            'CellFrameLabelMargins',
+            'CellFrameLabels',
+            'CellFrameMargins',
+            'CellGroup',
+            'CellGroupData',
+            'CellGrouping',
+            'CellID',
+            'CellLabel',
+            'CellLabelAutoDelete',
+            'CellMargins',
+            'CellObject',
+            'CellOpen',
+            'CellPrint',
+            'CellProlog',
+            'CellStyle',
+            'CellTags',
+            'Cells',
+            'CellularAutomaton',
+            'CensoredDistribution',
+            'Censoring',
+            'Center',
+            'CenterArray',
+            'CenterDot',
+            'CentralMoment',
+            'CentralMomentGeneratingFunction',
+            'ChampernowneNumber',
+            'ChanVeseBinarize',
+            'ChannelBase',
+            'ChannelDatabin',
+            'ChannelListen',
+            'ChannelListener',
+            'ChannelListeners',
+            'ChannelObject',
+            'ChannelPreSendFunction',
+            'ChannelSend',
+            'ChannelSubscribers',
+            'Character',
+            'CharacterCounts',
+            'CharacterEncoding',
+            'CharacterName',
+            'CharacterRange',
+            'CharacteristicFunction',
+            'CharacteristicPolynomial',
+            'Characters',
+            'ChartBaseStyle',
+            'ChartElementFunction',
+            'ChartElements',
+            'ChartLabels',
+            'ChartLayout',
+            'ChartLegends',
+            'ChartStyle',
+            'Chebyshev1FilterModel',
+            'Chebyshev2FilterModel',
+            'ChebyshevT',
+            'ChebyshevU',
+            'Check',
+            'CheckAbort',
+            'Checkbox',
+            'CheckboxBar',
+            'ChemicalData',
+            'ChessboardDistance',
+            'ChiDistribution',
+            'ChiSquareDistribution',
+            'ChineseRemainder',
+            'ChoiceButtons',
+            'ChoiceDialog',
+            'CholeskyDecomposition',
+            'Chop',
+            'ChromaticPolynomial',
+            'ChromaticityPlot',
+            'ChromaticityPlot3D',
+            'Circle',
+            'CircleDot',
+            'CircleMinus',
+            'CirclePlus',
+            'CirclePoints',
+            'CircleTimes',
+            'CirculantGraph',
+            'CircularOrthogonalMatrixDistribution',
+            'CircularQuaternionMatrixDistribution',
+            'CircularRealMatrixDistribution',
+            'CircularSymplecticMatrixDistribution',
+            'CircularUnitaryMatrixDistribution',
+            'Circumsphere',
+            'CityData',
+            'ClassPriors',
+            'ClassifierFunction',
+            'ClassifierInformation',
+            'ClassifierMeasurements',
+            'ClassifierMeasurementsObject',
+            'Classify',
+            'Clear',
+            'ClearAll',
+            'ClearAttributes',
+            'ClearCookies',
+            'ClearPermissions',
+            'ClearSystemCache',
+            'ClebschGordan',
+            'ClickPane',
+            'Clip',
+            'ClipPlanes',
+            'ClipPlanesStyle',
+            'ClipRange',
+            'ClippingStyle',
+            'Clock',
+            'ClockGauge',
+            'Close',
+            'CloseKernels',
+            'ClosenessCentrality',
+            'Closing',
+            'CloudAccountData',
+            'CloudBase',
+            'CloudConnect',
+            'CloudDeploy',
+            'CloudDirectory',
+            'CloudDisconnect',
+            'CloudEvaluate',
+            'CloudExport',
+            'CloudExpression',
+            'CloudExpressions',
+            'CloudFunction',
+            'CloudGet',
+            'CloudImport',
+            'CloudLoggingData',
+            'CloudObject',
+            'CloudObjects',
+            'CloudPublish',
+            'CloudPut',
+            'CloudSave',
+            'CloudShare',
+            'CloudSubmit',
+            'CloudSymbol',
+            'ClusterClassify',
+            'ClusterDissimilarityFunction',
+            'ClusteringComponents',
+            'ClusteringTree',
+            'CodeAssistOptions',
+            'Coefficient',
+            'CoefficientArrays',
+            'CoefficientList',
+            'CoefficientRules',
+            'CoifletWavelet',
+            'Collect',
+            'Colon',
+            'ColorBalance',
+            'ColorCombine',
+            'ColorConvert',
+            'ColorCoverage',
+            'ColorData',
+            'ColorDataFunction',
+            'ColorDistance',
+            'ColorFunction',
+            'ColorFunctionScaling',
+            'ColorNegate',
+            'ColorProfileData',
+            'ColorQ',
+            'ColorQuantize',
+            'ColorReplace',
+            'ColorRules',
+            'ColorSeparate',
+            'ColorSetter',
+            'ColorSlider',
+            'ColorSpace',
+            'ColorToneMapping',
+            'Colorize',
+            'Column',
+            'ColumnAlignments',
+            'ColumnLines',
+            'ColumnSpacings',
+            'ColumnWidths',
+            'ColumnsEqual',
+            'CombinerFunction',
+            'CometData',
+            'CommonName',
+            'CommonUnits',
+            'Commonest',
+            'CommonestFilter',
+            'CommunityBoundaryStyle',
+            'CommunityGraphPlot',
+            'CommunityLabels',
+            'CommunityRegionStyle',
+            'CompanyData',
+            'CompatibleUnitQ',
+            'CompilationOptions',
+            'CompilationTarget',
+            'Compile',
+            'Compiled',
+            'CompiledFunction',
+            'Complement',
+            'CompleteGraph',
+            'CompleteGraphQ',
+            'CompleteKaryTree',
+            'Complex',
+            'ComplexExpand',
+            'ComplexInfinity',
+            'Complexes',
+            'ComplexityFunction',
+            'ComponentMeasurements',
+            'ComposeList',
+            'ComposeSeries',
+            'CompositeQ',
+            'Composition',
+            'CompoundElement',
+            'CompoundExpression',
+            'CompoundPoissonDistribution',
+            'CompoundPoissonProcess',
+            'CompoundRenewalProcess',
+            'Compress',
+            'Condition',
+            'ConditionalExpression',
+            'Conditioned',
+            'Cone',
+            'ConfidenceLevel',
+            'ConfidenceRange',
+            'ConfidenceTransform',
+            'ConformAudio',
+            'ConformImages',
+            'Congruent',
+            'ConicHullRegion',
+            'Conjugate',
+            'ConjugateTranspose',
+            'Conjunction',
+            'ConnectLibraryCallbackFunction',
+            'ConnectedComponents',
+            'ConnectedGraphComponents',
+            'ConnectedGraphQ',
+            'ConnectedMeshComponents',
+            'ConnesWindow',
+            'ConoverTest',
+            'Constant',
+            'ConstantArray',
+            'ConstantImage',
+            'ConstantRegionQ',
+            'Constants',
+            'ConstellationData',
+            'Containing',
+            'ContainsAll',
+            'ContainsAny',
+            'ContainsExactly',
+            'ContainsNone',
+            'ContainsOnly',
+            'ContentFieldOptions',
+            'ContentLocationFunction',
+            'ContentObject',
+            'ContentPadding',
+            'ContentSelectable',
+            'ContentSize',
+            'Context',
+            'ContextToFileName',
+            'Contexts',
+            'Continue',
+            'ContinuedFraction',
+            'ContinuedFractionK',
+            'ContinuousAction',
+            'ContinuousMarkovProcess',
+            'ContinuousTask',
+            'ContinuousTimeModelQ',
+            'ContinuousWaveletData',
+            'ContinuousWaveletTransform',
+            'ContourDetect',
+            'ContourLabels',
+            'ContourPlot',
+            'ContourPlot3D',
+            'ContourShading',
+            'ContourStyle',
+            'Contours',
+            'ContraharmonicMean',
+            'Control',
+            'ControlActive',
+            'ControlPlacement',
+            'ControlType',
+            'ControllabilityGramian',
+            'ControllabilityMatrix',
+            'ControllableDecomposition',
+            'ControllableModelQ',
+            'ControllerInformation',
+            'ControllerLinking',
+            'ControllerManipulate',
+            'ControllerMethod',
+            'ControllerPath',
+            'ControllerState',
+            'ControlsRendering',
+            'Convergents',
+            'ConversionRules',
+            'ConvexHullMesh',
+            'ConvolutionLayer',
+            'Convolve',
+            'ConwayGroupCo1',
+            'ConwayGroupCo2',
+            'ConwayGroupCo3',
+            'CookieFunction',
+            'CoordinateBoundingBox',
+            'CoordinateBoundingBoxArray',
+            'CoordinateBounds',
+            'CoordinateBoundsArray',
+            'CoordinateChartData',
+            'CoordinateTransform',
+            'CoordinateTransformData',
+            'CoordinatesToolOptions',
+            'CoprimeQ',
+            'Coproduct',
+            'CopulaDistribution',
+            'CopyDatabin',
+            'CopyDirectory',
+            'CopyFile',
+            'CopyToClipboard',
+            'Copyable',
+            'CornerFilter',
+            'CornerNeighbors',
+            'Correlation',
+            'CorrelationDistance',
+            'CorrelationFunction',
+            'CorrelationTest',
+            'Cos',
+            'CosIntegral',
+            'Cosh',
+            'CoshIntegral',
+            'CosineDistance',
+            'CosineWindow',
+            'Cot',
+            'Coth',
+            'Count',
+            'CountDistinct',
+            'CountDistinctBy',
+            'CountRoots',
+            'CountryData',
+            'Counts',
+            'CountsBy',
+            'Covariance',
+            'CovarianceEstimatorFunction',
+            'CovarianceFunction',
+            'CoxIngersollRossProcess',
+            'CoxModel',
+            'CoxModelFit',
+            'CoxianDistribution',
+            'CramerVonMisesTest',
+            'CreateArchive',
+            'CreateCellID',
+            'CreateChannel',
+            'CreateCloudExpression',
+            'CreateDatabin',
+            'CreateDialog',
+            'CreateDirectory',
+            'CreateDocument',
+            'CreateFile',
+            'CreateIntermediateDirectories',
+            'CreateManagedLibraryExpression',
+            'CreateNotebook',
+            'CreatePalette',
+            'CreatePermissionsGroup',
+            'CreateScheduledTask',
+            'CreateSearchIndex',
+            'CreateUUID',
+            'CreateWindow',
+            'CriterionFunction',
+            'CriticalSection',
+            'CriticalityFailureImportance',
+            'CriticalitySuccessImportance',
+            'Cross',
+            'CrossEntropyLossLayer',
+            'CrossMatrix',
+            'CrossingDetect',
+            'Csc',
+            'Csch',
+            'CubeRoot',
+            'Cubics',
+            'Cuboid',
+            'Cumulant',
+            'CumulantGeneratingFunction',
+            'Cup',
+            'CupCap',
+            'Curl',
+            'CurrencyConvert',
+            'CurrentImage',
+            'CurrentValue',
+            'CurvatureFlowFilter',
+            'CurveClosed',
+            'Cyan',
+            'CycleGraph',
+            'CycleIndexPolynomial',
+            'Cycles',
+            'CyclicGroup',
+            'Cyclotomic',
+            'Cylinder',
+            'CylindricalDecomposition',
+
+            'D',
+            'DEigensystem',
+            'DEigenvalues',
+            'DGaussianWavelet',
+            'DMSList',
+            'DMSString',
+            'DSolve',
+            'DSolveValue',
+            'DagumDistribution',
+            'DamData',
+            'DamerauLevenshteinDistance',
+            'Darker',
+            'Dashed',
+            'Dashing',
+            'DataDistribution',
+            'DataRange',
+            'DataReversed',
+            'Databin',
+            'DatabinAdd',
+            'DatabinRemove',
+            'DatabinUpload',
+            'Databins',
+            'Dataset',
+            'DateBounds',
+            'DateDifference',
+            'DateFormat',
+            'DateFunction',
+            'DateHistogram',
+            'DateList',
+            'DateListLogPlot',
+            'DateListPlot',
+            'DateListStepPlot',
+            'DateObject',
+            'DateObjectQ',
+            'DatePattern',
+            'DatePlus',
+            'DateRange',
+            'DateReduction',
+            'DateString',
+            'DateTicksFormat',
+            'DateValue',
+            'Dated',
+            'DatedUnit',
+            'DaubechiesWavelet',
+            'DavisDistribution',
+            'DawsonF',
+            'DayCount',
+            'DayCountConvention',
+            'DayHemisphere',
+            'DayMatchQ',
+            'DayName',
+            'DayNightTerminator',
+            'DayPlus',
+            'DayRange',
+            'DayRound',
+            'DaylightQ',
+            'DeBruijnGraph',
+            'Decapitalize',
+            'DeclarePackage',
+            'Decompose',
+            'DeconvolutionLayer',
+            'Decrement',
+            'Decrypt',
+            'DedekindEta',
+            'DeepSpaceProbeData',
+            'Default',
+            'DefaultAxesStyle',
+            'DefaultBaseStyle',
+            'DefaultBoxStyle',
+            'DefaultButton',
+            'DefaultDuplicateCellStyle',
+            'DefaultDuration',
+            'DefaultElement',
+            'DefaultFaceGridsStyle',
+            'DefaultFieldHintStyle',
+            'DefaultFrameStyle',
+            'DefaultFrameTicksStyle',
+            'DefaultGridLinesStyle',
+            'DefaultLabelStyle',
+            'DefaultMenuStyle',
+            'DefaultNaturalLanguage',
+            'DefaultNewCellStyle',
+            'DefaultOptions',
+            'DefaultTicksStyle',
+            'DefaultTooltipStyle',
+            'Defer',
+            'DefineInputStreamMethod',
+            'DefineOutputStreamMethod',
+            'Definition',
+            'Degree',
+            'DegreeCentrality',
+            'DegreeGraphDistribution',
+            'Deinitialization',
+            'Del',
+            'DelaunayMesh',
+            'Delayed',
+            'Deletable',
+            'Delete',
+            'DeleteBorderComponents',
+            'DeleteCases',
+            'DeleteChannel',
+            'DeleteCloudExpression',
+            'DeleteContents',
+            'DeleteDirectory',
+            'DeleteDuplicates',
+            'DeleteDuplicatesBy',
+            'DeleteFile',
+            'DeleteMissing',
+            'DeletePermissionsKey',
+            'DeleteSearchIndex',
+            'DeleteSmallComponents',
+            'DeleteStopwords',
+            'DelimitedSequence',
+            'Delimiter',
+            'DelimiterFlashTime',
+            'Delimiters',
+            'DeliveryFunction',
+            'Dendrogram',
+            'Denominator',
+            'DensityHistogram',
+            'DensityPlot',
+            'DensityPlot3D',
+            'DependentVariables',
+            'Deploy',
+            'Deployed',
+            'Depth',
+            'DepthFirstScan',
+            'Derivative',
+            'DerivativeFilter',
+            'DescriptorStateSpace',
+            'DesignMatrix',
+            'Det',
+            'DeviceClose',
+            'DeviceConfigure',
+            'DeviceExecute',
+            'DeviceExecuteAsynchronous',
+            'DeviceObject',
+            'DeviceOpen',
+            'DeviceRead',
+            'DeviceReadBuffer',
+            'DeviceReadLatest',
+            'DeviceReadList',
+            'DeviceReadTimeSeries',
+            'DeviceStreams',
+            'DeviceWrite',
+            'DeviceWriteBuffer',
+            'Devices',
+            'Diagonal',
+            'DiagonalMatrix',
+            'DiagonalizableMatrixQ',
+            'Dialog',
+            'DialogInput',
+            'DialogNotebook',
+            'DialogProlog',
+            'DialogReturn',
+            'DialogSymbols',
+            'Diamond',
+            'DiamondMatrix',
+            'DiceDissimilarity',
+            'DictionaryLookup',
+            'DictionaryWordQ',
+            'DifferenceDelta',
+            'DifferenceQuotient',
+            'DifferenceRoot',
+            'DifferenceRootReduce',
+            'Differences',
+            'DifferentialD',
+            'DifferentialRoot',
+            'DifferentialRootReduce',
+            'DifferentiatorFilter',
+            'DigitBlock',
+            'DigitCharacter',
+            'DigitCount',
+            'DigitQ',
+            'DihedralGroup',
+            'Dilation',
+            'DimensionReduce',
+            'DimensionReducerFunction',
+            'DimensionReduction',
+            'DimensionalCombinations',
+            'DimensionalMeshComponents',
+            'Dimensions',
+            'DiracComb',
+            'DiracDelta',
+            'DirectedEdge',
+            'DirectedEdges',
+            'DirectedGraph',
+            'DirectedGraphQ',
+            'DirectedInfinity',
+            'Direction',
+            'Directive',
+            'Directory',
+            'DirectoryName',
+            'DirectoryQ',
+            'DirectoryStack',
+            'DirichletBeta',
+            'DirichletCharacter',
+            'DirichletCondition',
+            'DirichletConvolve',
+            'DirichletDistribution',
+            'DirichletEta',
+            'DirichletL',
+            'DirichletLambda',
+            'DirichletTransform',
+            'DirichletWindow',
+            'DisableFormatting',
+            'DiscreteChirpZTransform',
+            'DiscreteConvolve',
+            'DiscreteDelta',
+            'DiscreteHadamardTransform',
+            'DiscreteIndicator',
+            'DiscreteLQEstimatorGains',
+            'DiscreteLQRegulatorGains',
+            'DiscreteLyapunovSolve',
+            'DiscreteMarkovProcess',
+            'DiscretePlot',
+            'DiscretePlot3D',
+            'DiscreteRatio',
+            'DiscreteRiccatiSolve',
+            'DiscreteShift',
+            'DiscreteTimeModelQ',
+            'DiscreteUniformDistribution',
+            'DiscreteVariables',
+            'DiscreteWaveletData',
+            'DiscreteWaveletPacketTransform',
+            'DiscreteWaveletTransform',
+            'DiscretizeGraphics',
+            'DiscretizeRegion',
+            'Discriminant',
+            'DisjointQ',
+            'Disjunction',
+            'Disk',
+            'DiskMatrix',
+            'DiskSegment',
+            'Dispatch',
+            'DispersionEstimatorFunction',
+            'DisplayAllSteps',
+            'DisplayEndPacket',
+            'DisplayForm',
+            'DisplayFunction',
+            'DisplayPacket',
+            'DistanceFunction',
+            'DistanceMatrix',
+            'DistanceTransform',
+            'Distribute',
+            'DistributeDefinitions',
+            'Distributed',
+            'DistributedContexts',
+            'DistributionChart',
+            'DistributionFitTest',
+            'DistributionParameterAssumptions',
+            'DistributionParameterQ',
+            'Dithering',
+            'Div',
+            'Divide',
+            'DivideBy',
+            'Dividers',
+            'Divisible',
+            'DivisorSigma',
+            'DivisorSum',
+            'Divisors',
+            'Do',
+            'DockedCells',
+            'DocumentGenerator',
+            'DocumentGeneratorInformation',
+            'DocumentGenerators',
+            'DocumentNotebook',
+            'DominantColors',
+            'Dot',
+            'DotDashed',
+            'DotEqual',
+            'DotPlusLayer',
+            'Dotted',
+            'DoubleBracketingBar',
+            'DoubleDownArrow',
+            'DoubleLeftArrow',
+            'DoubleLeftRightArrow',
+            'DoubleLeftTee',
+            'DoubleLongLeftArrow',
+            'DoubleLongLeftRightArrow',
+            'DoubleLongRightArrow',
+            'DoubleRightArrow',
+            'DoubleRightTee',
+            'DoubleUpArrow',
+            'DoubleUpDownArrow',
+            'DoubleVerticalBar',
+            'DownArrow',
+            'DownArrowBar',
+            'DownArrowUpArrow',
+            'DownLeftRightVector',
+            'DownLeftTeeVector',
+            'DownLeftVector',
+            'DownLeftVectorBar',
+            'DownRightTeeVector',
+            'DownRightVector',
+            'DownRightVectorBar',
+            'DownTee',
+            'DownTeeArrow',
+            'DownValues',
+            'Downsample',
+            'Drop',
+            'DropoutLayer',
+            'Dt',
+            'DualSystemsModel',
+            'DumpSave',
+            'DuplicateFreeQ',
+            'Duration',
+            'Dynamic',
+            'DynamicEvaluationTimeout',
+            'DynamicGeoGraphics',
+            'DynamicImage',
+            'DynamicModule',
+            'DynamicModuleValues',
+            'DynamicSetting',
+            'DynamicWrapper',
+
+            'E',
+            'EarthImpactData',
+            'EarthquakeData',
+            'EccentricityCentrality',
+            'Echo',
+            'EchoFunction',
+            'EclipseType',
+            'EdgeAdd',
+            'EdgeBetweennessCentrality',
+            'EdgeCapacity',
+            'EdgeConnectivity',
+            'EdgeContract',
+            'EdgeCost',
+            'EdgeCount',
+            'EdgeCoverQ',
+            'EdgeCycleMatrix',
+            'EdgeDelete',
+            'EdgeDetect',
+            'EdgeForm',
+            'EdgeIndex',
+            'EdgeLabelStyle',
+            'EdgeLabeling',
+            'EdgeLabels',
+            'EdgeList',
+            'EdgeQ',
+            'EdgeRenderingFunction',
+            'EdgeRules',
+            'EdgeShapeFunction',
+            'EdgeStyle',
+            'EdgeWeight',
+            'EditDistance',
+            'Editable',
+            'EffectiveInterest',
+            'Eigensystem',
+            'Eigenvalues',
+            'EigenvectorCentrality',
+            'Eigenvectors',
+            'Element',
+            'ElementData',
+            'ElementwiseLayer',
+            'ElidedForms',
+            'Eliminate',
+            'Ellipsoid',
+            'EllipticE',
+            'EllipticExp',
+            'EllipticExpPrime',
+            'EllipticF',
+            'EllipticFilterModel',
+            'EllipticK',
+            'EllipticLog',
+            'EllipticNomeQ',
+            'EllipticPi',
+            'EllipticTheta',
+            'EllipticThetaPrime',
+            'EmbedCode',
+            'EmbeddedHTML',
+            'EmbeddedService',
+            'EmbeddingLayer',
+            'EmitSound',
+            'EmpiricalDistribution',
+            'EmptyGraphQ',
+            'EmptyRegion',
+            'Enabled',
+            'Encode',
+            'Encrypt',
+            'EncryptedObject',
+            'End',
+            'EndDialogPacket',
+            'EndOfBuffer',
+            'EndOfFile',
+            'EndOfLine',
+            'EndOfString',
+            'EndPackage',
+            'EngineeringForm',
+            'EnterExpressionPacket',
+            'EnterTextPacket',
+            'Entity',
+            'EntityClass',
+            'EntityClassList',
+            'EntityCopies',
+            'EntityGroup',
+            'EntityInstance',
+            'EntityList',
+            'EntityProperties',
+            'EntityProperty',
+            'EntityPropertyClass',
+            'EntityStore',
+            'EntityTypeName',
+            'EntityValue',
+            'Entropy',
+            'EntropyFilter',
+            'Environment',
+            'Epilog',
+            'EpilogFunction',
+            'Equal',
+            'EqualTilde',
+            'EqualTo',
+            'Equilibrium',
+            'EquirippleFilterKernel',
+            'Equivalent',
+            'Erf',
+            'Erfc',
+            'Erfi',
+            'ErlangB',
+            'ErlangC',
+            'ErlangDistribution',
+            'Erosion',
+            'ErrorBox',
+            'EscapeRadius',
+            'EstimatedBackground',
+            'EstimatedDistribution',
+            'EstimatedProcess',
+            'EstimatorGains',
+            'EstimatorRegulator',
+            'EuclideanDistance',
+            'EulerAngles',
+            'EulerE',
+            'EulerGamma',
+            'EulerMatrix',
+            'EulerPhi',
+            'EulerianGraphQ',
+            'Evaluatable',
+            'Evaluate',
+            'EvaluatePacket',
+            'EvaluateScheduledTask',
+            'EvaluationBox',
+            'EvaluationCell',
+            'EvaluationData',
+            'EvaluationElements',
+            'EvaluationMonitor',
+            'EvaluationNotebook',
+            'EvaluationObject',
+            'Evaluator',
+            'EvenQ',
+            'EventData',
+            'EventHandler',
+            'EventLabels',
+            'EventSeries',
+            'ExactBlackmanWindow',
+            'ExactNumberQ',
+            'ExampleData',
+            'Except',
+            'ExcludePods',
+            'ExcludedForms',
+            'ExcludedLines',
+            'ExcludedPhysicalQuantities',
+            'Exclusions',
+            'ExclusionsStyle',
+            'Exists',
+            'Exit',
+            'ExoplanetData',
+            'Exp',
+            'ExpGammaDistribution',
+            'ExpIntegralE',
+            'ExpIntegralEi',
+            'ExpToTrig',
+            'Expand',
+            'ExpandAll',
+            'ExpandDenominator',
+            'ExpandFileName',
+            'ExpandNumerator',
+            'Expectation',
+            'Exponent',
+            'ExponentFunction',
+            'ExponentStep',
+            'ExponentialDistribution',
+            'ExponentialFamily',
+            'ExponentialGeneratingFunction',
+            'ExponentialMovingAverage',
+            'ExponentialPowerDistribution',
+            'Export',
+            'ExportForm',
+            'ExportString',
+            'Expression',
+            'ExpressionCell',
+            'ExtendedGCD',
+            'Extension',
+            'ExtentElementFunction',
+            'ExtentMarkers',
+            'ExtentSize',
+            'ExternalBundle',
+            'ExternalOptions',
+            'ExternalTypeSignature',
+            'Extract',
+            'ExtractArchive',
+            'ExtremeValueDistribution',
+
+            'FARIMAProcess',
+            'FRatioDistribution',
+            'FaceForm',
+            'FaceGrids',
+            'FaceGridsStyle',
+            'Factor',
+            'FactorInteger',
+            'FactorList',
+            'FactorSquareFree',
+            'FactorSquareFreeList',
+            'FactorTerms',
+            'FactorTermsList',
+            'Factorial',
+            'Factorial2',
+            'FactorialMoment',
+            'FactorialMomentGeneratingFunction',
+            'FactorialPower',
+            'Failure',
+            'FailureAction',
+            'FailureDistribution',
+            'FailureQ',
+            'False',
+            'FareySequence',
+            'FeatureDistance',
+            'FeatureExtract',
+            'FeatureExtraction',
+            'FeatureExtractor',
+            'FeatureExtractorFunction',
+            'FeatureNames',
+            'FeatureTypes',
+            'FeedbackLinearize',
+            'FeedbackSector',
+            'FeedbackSectorStyle',
+            'FeedbackType',
+            'FetalGrowthData',
+            'Fibonacci',
+            'Fibonorial',
+            'FieldHint',
+            'FieldHintStyle',
+            'FieldMasked',
+            'FieldSize',
+            'File',
+            'FileBaseName',
+            'FileByteCount',
+            'FileDate',
+            'FileExistsQ',
+            'FileExtension',
+            'FileFormat',
+            'FileHash',
+            'FileNameDepth',
+            'FileNameDrop',
+            'FileNameForms',
+            'FileNameJoin',
+            'FileNameSetter',
+            'FileNameSplit',
+            'FileNameTake',
+            'FileNames',
+            'FilePrint',
+            'FileSystemMap',
+            'FileSystemScan',
+            'FileTemplate',
+            'FileTemplateApply',
+            'FileType',
+            'FilledCurve',
+            'Filling',
+            'FillingStyle',
+            'FillingTransform',
+            'FilterRules',
+            'FinancialBond',
+            'FinancialData',
+            'FinancialDerivative',
+            'FinancialIndicator',
+            'Find',
+            'FindArgMax',
+            'FindArgMin',
+            'FindChannels',
+            'FindClique',
+            'FindClusters',
+            'FindCookies',
+            'FindCurvePath',
+            'FindCycle',
+            'FindDevices',
+            'FindDistribution',
+            'FindDistributionParameters',
+            'FindDivisions',
+            'FindEdgeCover',
+            'FindEdgeCut',
+            'FindEdgeIndependentPaths',
+            'FindEulerianCycle',
+            'FindFaces',
+            'FindFile',
+            'FindFit',
+            'FindFormula',
+            'FindFundamentalCycles',
+            'FindGeneratingFunction',
+            'FindGeoLocation',
+            'FindGeometricTransform',
+            'FindGraphCommunities',
+            'FindGraphIsomorphism',
+            'FindGraphPartition',
+            'FindHamiltonianCycle',
+            'FindHamiltonianPath',
+            'FindHiddenMarkovStates',
+            'FindIndependentEdgeSet',
+            'FindIndependentVertexSet',
+            'FindInstance',
+            'FindIntegerNullVector',
+            'FindKClan',
+            'FindKClique',
+            'FindKClub',
+            'FindKPlex',
+            'FindLibrary',
+            'FindLinearRecurrence',
+            'FindList',
+            'FindMaxValue',
+            'FindMaximum',
+            'FindMaximumFlow',
+            'FindMeshDefects',
+            'FindMinValue',
+            'FindMinimum',
+            'FindMinimumCostFlow',
+            'FindMinimumCut',
+            'FindPath',
+            'FindPeaks',
+            'FindPermutation',
+            'FindPostmanTour',
+            'FindProcessParameters',
+            'FindRoot',
+            'FindSequenceFunction',
+            'FindSettings',
+            'FindShortestPath',
+            'FindShortestTour',
+            'FindSpanningTree',
+            'FindThreshold',
+            'FindTransientRepeat',
+            'FindVertexCover',
+            'FindVertexCut',
+            'FindVertexIndependentPaths',
+            'FinishDynamic',
+            'FiniteAbelianGroupCount',
+            'FiniteGroupCount',
+            'FiniteGroupData',
+            'First',
+            'FirstCase',
+            'FirstPassageTimeDistribution',
+            'FirstPosition',
+            'FischerGroupFi22',
+            'FischerGroupFi23',
+            'FischerGroupFi24Prime',
+            'FisherHypergeometricDistribution',
+            'FisherRatioTest',
+            'FisherZDistribution',
+            'Fit',
+            'FittedModel',
+            'FixedOrder',
+            'FixedPoint',
+            'FixedPointList',
+            'Flat',
+            'FlatTopWindow',
+            'Flatten',
+            'FlattenAt',
+            'FlattenLayer',
+            'FlipView',
+            'Floor',
+            'FlowPolynomial',
+            'Fold',
+            'FoldList',
+            'FoldPair',
+            'FoldPairList',
+            'FollowRedirects',
+            'FontColor',
+            'FontFamily',
+            'FontSize',
+            'FontSlant',
+            'FontSubstitutions',
+            'FontTracking',
+            'FontVariations',
+            'FontWeight',
+            'For',
+            'ForAll',
+            'FormBox',
+            'FormBoxOptions',
+            'FormControl',
+            'FormFunction',
+            'FormLayoutFunction',
+            'FormObject',
+            'FormPage',
+            'Format',
+            'FormatType',
+            'FormulaData',
+            'FormulaLookup',
+            'FortranForm',
+            'Forward',
+            'ForwardBackward',
+            'Fourier',
+            'FourierCoefficient',
+            'FourierCosCoefficient',
+            'FourierCosSeries',
+            'FourierCosTransform',
+            'FourierDCT',
+            'FourierDCTFilter',
+            'FourierDCTMatrix',
+            'FourierDST',
+            'FourierDSTMatrix',
+            'FourierMatrix',
+            'FourierParameters',
+            'FourierSequenceTransform',
+            'FourierSeries',
+            'FourierSinCoefficient',
+            'FourierSinSeries',
+            'FourierSinTransform',
+            'FourierTransform',
+            'FourierTrigSeries',
+            'FractionBox',
+            'FractionBoxOptions',
+            'FractionalBrownianMotionProcess',
+            'FractionalGaussianNoiseProcess',
+            'FractionalPart',
+            'Frame',
+            'FrameBox',
+            'FrameBoxOptions',
+            'FrameLabel',
+            'FrameMargins',
+            'FrameStyle',
+            'FrameTicks',
+            'FrameTicksStyle',
+            'Framed',
+            'FrechetDistribution',
+            'FreeQ',
+            'FrenetSerretSystem',
+            'FrequencySamplingFilterKernel',
+            'FresnelC',
+            'FresnelF',
+            'FresnelG',
+            'FresnelS',
+            'Friday',
+            'FrobeniusNumber',
+            'FrobeniusSolve',
+            'FromCharacterCode',
+            'FromCoefficientRules',
+            'FromContinuedFraction',
+            'FromDMS',
+            'FromDigits',
+            'FromEntity',
+            'FromJulianDate',
+            'FromLetterNumber',
+            'FromPolarCoordinates',
+            'FromRomanNumeral',
+            'FromSphericalCoordinates',
+            'FromUnixTime',
+            'Front',
+            'FrontEndDynamicExpression',
+            'FrontEndEventActions',
+            'FrontEndExecute',
+            'FrontEndToken',
+            'FrontEndTokenExecute',
+            'Full',
+            'FullDefinition',
+            'FullForm',
+            'FullGraphics',
+            'FullInformationOutputRegulator',
+            'FullRegion',
+            'FullSimplify',
+            'Function',
+            'FunctionDomain',
+            'FunctionExpand',
+            'FunctionInterpolation',
+            'FunctionPeriod',
+            'FunctionRange',
+            'FunctionSpace',
+            'FussellVeselyImportance',
+
+            'GARCHProcess',
+            'GCD',
+            'GaborFilter',
+            'GaborMatrix',
+            'GaborWavelet',
+            'GainMargins',
+            'GainPhaseMargins',
+            'GalaxyData',
+            'GalleryView',
+            'Gamma',
+            'GammaDistribution',
+            'GammaRegularized',
+            'GapPenalty',
+            'Gather',
+            'GatherBy',
+            'GaugeFaceElementFunction',
+            'GaugeFaceStyle',
+            'GaugeFrameElementFunction',
+            'GaugeFrameSize',
+            'GaugeFrameStyle',
+            'GaugeLabels',
+            'GaugeMarkers',
+            'GaugeStyle',
+            'GaussianFilter',
+            'GaussianIntegers',
+            'GaussianMatrix',
+            'GaussianOrthogonalMatrixDistribution',
+            'GaussianSymplecticMatrixDistribution',
+            'GaussianUnitaryMatrixDistribution',
+            'GaussianWindow',
+            'GegenbauerC',
+            'General',
+            'GeneralizedLinearModelFit',
+            'GenerateAsymmetricKeyPair',
+            'GenerateConditions',
+            'GenerateDocument',
+            'GenerateHTTPResponse',
+            'GenerateSymmetricKey',
+            'GeneratedCell',
+            'GeneratedDocumentBinding',
+            'GeneratedParameters',
+            'GeneratingFunction',
+            'GeneratorDescription',
+            'GeneratorHistoryLength',
+            'GeneratorOutputType',
+            'GenericCylindricalDecomposition',
+            'GenomeData',
+            'GenomeLookup',
+            'GeoArea',
+            'GeoBackground',
+            'GeoBoundingBox',
+            'GeoBounds',
+            'GeoBoundsRegion',
+            'GeoCenter',
+            'GeoCircle',
+            'GeoDestination',
+            'GeoDirection',
+            'GeoDisk',
+            'GeoDisplacement',
+            'GeoDistance',
+            'GeoDistanceList',
+            'GeoElevationData',
+            'GeoEntities',
+            'GeoGraphics',
+            'GeoGridLines',
+            'GeoGridLinesStyle',
+            'GeoGridPosition',
+            'GeoGroup',
+            'GeoHemisphere',
+            'GeoHemisphereBoundary',
+            'GeoHistogram',
+            'GeoIdentify',
+            'GeoLabels',
+            'GeoLength',
+            'GeoListPlot',
+            'GeoLocation',
+            'GeoMarker',
+            'GeoModel',
+            'GeoNearest',
+            'GeoPath',
+            'GeoPosition',
+            'GeoPositionENU',
+            'GeoPositionXYZ',
+            'GeoProjection',
+            'GeoProjectionData',
+            'GeoRange',
+            'GeoRangePadding',
+            'GeoRegionValuePlot',
+            'GeoScaleBar',
+            'GeoServer',
+            'GeoStyling',
+            'GeoStylingImageFunction',
+            'GeoVariant',
+            'GeoVisibleRegion',
+            'GeoVisibleRegionBoundary',
+            'GeoWithinQ',
+            'GeoZoomLevel',
+            'GeodesicClosing',
+            'GeodesicDilation',
+            'GeodesicErosion',
+            'GeodesicOpening',
+            'GeodesyData',
+            'GeogravityModelData',
+            'GeologicalPeriodData',
+            'GeomagneticModelData',
+            'GeometricBrownianMotionProcess',
+            'GeometricDistribution',
+            'GeometricMean',
+            'GeometricMeanFilter',
+            'GeometricTransformation',
+            'GestureHandler',
+            'Get',
+            'GetEnvironment',
+            'Glaisher',
+            'GlobalClusteringCoefficient',
+            'Glow',
+            'GoldenAngle',
+            'GoldenRatio',
+            'GompertzMakehamDistribution',
+            'GoodmanKruskalGamma',
+            'GoodmanKruskalGammaTest',
+            'Goto',
+            'Grad',
+            'Gradient',
+            'GradientFilter',
+            'GradientOrientationFilter',
+            'GrammarApply',
+            'GrammarRules',
+            'GrammarToken',
+            'Graph',
+            'Graph3D',
+            'GraphAssortativity',
+            'GraphAutomorphismGroup',
+            'GraphCenter',
+            'GraphComplement',
+            'GraphData',
+            'GraphDensity',
+            'GraphDiameter',
+            'GraphDifference',
+            'GraphDisjointUnion',
+            'GraphDistance',
+            'GraphDistanceMatrix',
+            'GraphEmbedding',
+            'GraphHighlight',
+            'GraphHighlightStyle',
+            'GraphHub',
+            'GraphIntersection',
+            'GraphLayout',
+            'GraphLinkEfficiency',
+            'GraphPeriphery',
+            'GraphPlot',
+            'GraphPlot3D',
+            'GraphPower',
+            'GraphPropertyDistribution',
+            'GraphQ',
+            'GraphRadius',
+            'GraphReciprocity',
+            'GraphStyle',
+            'GraphUnion',
+            'Graphics',
+            'Graphics3D',
+            'GraphicsColumn',
+            'GraphicsComplex',
+            'GraphicsGrid',
+            'GraphicsGroup',
+            'GraphicsRow',
+            'Gray',
+            'GrayLevel',
+            'Greater',
+            'GreaterEqual',
+            'GreaterEqualLess',
+            'GreaterEqualThan',
+            'GreaterFullEqual',
+            'GreaterGreater',
+            'GreaterLess',
+            'GreaterSlantEqual',
+            'GreaterThan',
+            'GreaterTilde',
+            'Green',
+            'GreenFunction',
+            'Grid',
+            'GridBox',
+            'GridDefaultElement',
+            'GridGraph',
+            'GridLines',
+            'GridLinesStyle',
+            'GroebnerBasis',
+            'GroupActionBase',
+            'GroupBy',
+            'GroupCentralizer',
+            'GroupElementFromWord',
+            'GroupElementPosition',
+            'GroupElementQ',
+            'GroupElementToWord',
+            'GroupElements',
+            'GroupGenerators',
+            'GroupMultiplicationTable',
+            'GroupOrbits',
+            'GroupOrder',
+            'GroupPageBreakWithin',
+            'GroupSetwiseStabilizer',
+            'GroupStabilizer',
+            'GroupStabilizerChain',
+            'Groupings',
+            'GrowCutComponents',
+            'Gudermannian',
+            'GuidedFilter',
+            'GumbelDistribution',
+
+            'HITSCentrality',
+            'HTTPErrorResponse',
+            'HTTPRedirect',
+            'HTTPRequest',
+            'HTTPRequestData',
+            'HTTPResponse',
+            'HaarWavelet',
+            'HadamardMatrix',
+            'HalfLine',
+            'HalfNormalDistribution',
+            'HalfPlane',
+            'HalfSpace',
+            'HamiltonianGraphQ',
+            'HammingDistance',
+            'HammingWindow',
+            'HandlerFunctions',
+            'HandlerFunctionsKeys',
+            'HankelH1',
+            'HankelH2',
+            'HankelMatrix',
+            'HannPoissonWindow',
+            'HannWindow',
+            'HaradaNortonGroupHN',
+            'HararyGraph',
+            'HarmonicMean',
+            'HarmonicMeanFilter',
+            'HarmonicNumber',
+            'Hash',
+            'Haversine',
+            'HazardFunction',
+            'Head',
+            'HeaderLines',
+            'Heads',
+            'HeavisideLambda',
+            'HeavisidePi',
+            'HeavisideTheta',
+            'HeldGroupHe',
+            'Here',
+            'HermiteDecomposition',
+            'HermiteH',
+            'HermitianMatrixQ',
+            'HessenbergDecomposition',
+            'HexadecimalCharacter',
+            'Hexahedron',
+            'HiddenMarkovProcess',
+            'HighlightGraph',
+            'HighlightImage',
+            'HighlightMesh',
+            'Highlighted',
+            'HighpassFilter',
+            'HigmanSimsGroupHS',
+            'HilbertFilter',
+            'HilbertMatrix',
+            'Histogram',
+            'Histogram3D',
+            'HistogramDistribution',
+            'HistogramList',
+            'HistogramTransform',
+            'HistogramTransformInterpolation',
+            'HistoricalPeriodData',
+            'HitMissTransform',
+            'HodgeDual',
+            'HoeffdingD',
+            'HoeffdingDTest',
+            'Hold',
+            'HoldAll',
+            'HoldAllComplete',
+            'HoldComplete',
+            'HoldFirst',
+            'HoldForm',
+            'HoldPattern',
+            'HoldRest',
+            'HolidayCalendar',
+            'HorizontalGauge',
+            'HornerForm',
+            'HostLookup',
+            'HotellingTSquareDistribution',
+            'HoytDistribution',
+            'Hue',
+            'HumanGrowthData',
+            'HumpDownHump',
+            'HumpEqual',
+            'HurwitzLerchPhi',
+            'HurwitzZeta',
+            'HyperbolicDistribution',
+            'HypercubeGraph',
+            'HyperexponentialDistribution',
+            'Hyperfactorial',
+            'Hypergeometric0F1',
+            'Hypergeometric0F1Regularized',
+            'Hypergeometric1F1',
+            'Hypergeometric1F1Regularized',
+            'Hypergeometric2F1',
+            'Hypergeometric2F1Regularized',
+            'HypergeometricDistribution',
+            'HypergeometricPFQ',
+            'HypergeometricPFQRegularized',
+            'HypergeometricU',
+            'Hyperlink',
+            'Hyperplane',
+            'Hyphenation',
+            'HypoexponentialDistribution',
+            'HypothesisTestData',
+
+            'I',
+            'IPAddress',
+            'IconData',
+            'IconRules',
+            'Identity',
+            'IdentityMatrix',
+            'If',
+            'IgnoreCase',
+            'IgnoreDiacritics',
+            'IgnorePunctuation',
+            'IgnoringInactive',
+            'Im',
+            'Image',
+            'Image3D',
+            'Image3DSlices',
+            'ImageAccumulate',
+            'ImageAdd',
+            'ImageAdjust',
+            'ImageAlign',
+            'ImageApply',
+            'ImageApplyIndexed',
+            'ImageAspectRatio',
+            'ImageAssemble',
+            'ImageCapture',
+            'ImageChannels',
+            'ImageClip',
+            'ImageCollage',
+            'ImageColorSpace',
+            'ImageCompose',
+            'ImageConvolve',
+            'ImageCooccurrence',
+            'ImageCorners',
+            'ImageCorrelate',
+            'ImageCorrespondingPoints',
+            'ImageCrop',
+            'ImageData',
+            'ImageDeconvolve',
+            'ImageDemosaic',
+            'ImageDifference',
+            'ImageDimensions',
+            'ImageDisplacements',
+            'ImageDistance',
+            'ImageEffect',
+            'ImageExposureCombine',
+            'ImageFeatureTrack',
+            'ImageFileApply',
+            'ImageFileFilter',
+            'ImageFileScan',
+            'ImageFilter',
+            'ImageFocusCombine',
+            'ImageForestingComponents',
+            'ImageFormattingWidth',
+            'ImageForwardTransformation',
+            'ImageHistogram',
+            'ImageIdentify',
+            'ImageInstanceQ',
+            'ImageKeypoints',
+            'ImageLevels',
+            'ImageLines',
+            'ImageMargins',
+            'ImageMarker',
+            'ImageMeasurements',
+            'ImageMesh',
+            'ImageMultiply',
+            'ImagePad',
+            'ImagePadding',
+            'ImagePartition',
+            'ImagePeriodogram',
+            'ImagePerspectiveTransformation',
+            'ImageQ',
+            'ImageReflect',
+            'ImageResize',
+            'ImageResolution',
+            'ImageRotate',
+            'ImageSaliencyFilter',
+            'ImageScaled',
+            'ImageScan',
+            'ImageSize',
+            'ImageSizeAction',
+            'ImageSizeMultipliers',
+            'ImageSubtract',
+            'ImageTake',
+            'ImageTransformation',
+            'ImageTrim',
+            'ImageType',
+            'ImageValue',
+            'ImageValuePositions',
+            'ImagingDevice',
+            'ImplicitRegion',
+            'Implies',
+            'Import',
+            'ImportOptions',
+            'ImportString',
+            'ImprovementImportance',
+            'In',
+            'InString',
+            'Inactivate',
+            'Inactive',
+            'IncidenceGraph',
+            'IncidenceList',
+            'IncidenceMatrix',
+            'IncludeConstantBasis',
+            'IncludeGeneratorTasks',
+            'IncludeInflections',
+            'IncludeMetaInformation',
+            'IncludePods',
+            'IncludeQuantities',
+            'IncludeWindowTimes',
+            'Increment',
+            'IndefiniteMatrixQ',
+            'IndependenceTest',
+            'IndependentEdgeSetQ',
+            'IndependentUnit',
+            'IndependentVertexSetQ',
+            'Indeterminate',
+            'IndeterminateThreshold',
+            'IndexGraph',
+            'Indexed',
+            'InexactNumberQ',
+            'InfiniteLine',
+            'InfinitePlane',
+            'Infinity',
+            'Infix',
+            'InflationAdjust',
+            'InflationMethod',
+            'Information',
+            'InheritScope',
+            'Inherited',
+            'InhomogeneousPoissonProcess',
+            'InitialEvaluationHistory',
+            'Initialization',
+            'InitializationCell',
+            'Inner',
+            'Inpaint',
+            'Input',
+            'InputAliases',
+            'InputAssumptions',
+            'InputAutoReplacements',
+            'InputField',
+            'InputForm',
+            'InputNamePacket',
+            'InputNotebook',
+            'InputPacket',
+            'InputStream',
+            'InputString',
+            'InputStringPacket',
+            'Insert',
+            'InsertLinebreaks',
+            'InsertResults',
+            'InsertionFunction',
+            'Inset',
+            'Insphere',
+            'Install',
+            'InstallService',
+            'Integer',
+            'IntegerDigits',
+            'IntegerExponent',
+            'IntegerLength',
+            'IntegerName',
+            'IntegerPart',
+            'IntegerPartitions',
+            'IntegerQ',
+            'IntegerReverse',
+            'IntegerString',
+            'Integers',
+            'Integrate',
+            'Interactive',
+            'InteractiveTradingChart',
+            'Interleaving',
+            'InternallyBalancedDecomposition',
+            'InterpolatingFunction',
+            'InterpolatingPolynomial',
+            'Interpolation',
+            'InterpolationOrder',
+            'InterpolationPoints',
+            'Interpretation',
+            'InterpretationBox',
+            'InterpretationBoxOptions',
+            'Interpreter',
+            'InterquartileRange',
+            'Interrupt',
+            'IntersectingQ',
+            'Intersection',
+            'Interval',
+            'IntervalIntersection',
+            'IntervalMemberQ',
+            'IntervalSlider',
+            'IntervalUnion',
+            'Inverse',
+            'InverseBetaRegularized',
+            'InverseCDF',
+            'InverseChiSquareDistribution',
+            'InverseContinuousWaveletTransform',
+            'InverseDistanceTransform',
+            'InverseEllipticNomeQ',
+            'InverseErf',
+            'InverseErfc',
+            'InverseFourier',
+            'InverseFourierCosTransform',
+            'InverseFourierSequenceTransform',
+            'InverseFourierSinTransform',
+            'InverseFourierTransform',
+            'InverseFunction',
+            'InverseFunctions',
+            'InverseGammaDistribution',
+            'InverseGammaRegularized',
+            'InverseGaussianDistribution',
+            'InverseGudermannian',
+            'InverseHaversine',
+            'InverseJacobiCD',
+            'InverseJacobiCN',
+            'InverseJacobiCS',
+            'InverseJacobiDC',
+            'InverseJacobiDN',
+            'InverseJacobiDS',
+            'InverseJacobiNC',
+            'InverseJacobiND',
+            'InverseJacobiNS',
+            'InverseJacobiSC',
+            'InverseJacobiSD',
+            'InverseJacobiSN',
+            'InverseLaplaceTransform',
+            'InverseMellinTransform',
+            'InversePermutation',
+            'InverseRadon',
+            'InverseSeries',
+            'InverseSurvivalFunction',
+            'InverseTransformedRegion',
+            'InverseWaveletTransform',
+            'InverseWeierstrassP',
+            'InverseWishartMatrixDistribution',
+            'InverseZTransform',
+            'Invisible',
+            'IrreduciblePolynomialQ',
+            'IslandData',
+            'IsolatingInterval',
+            'IsomorphicGraphQ',
+            'IsotopeData',
+            'Italic',
+            'Item',
+            'ItemAspectRatio',
+            'ItemSize',
+            'ItemStyle',
+            'ItoProcess',
+
+            'JaccardDissimilarity',
+            'JacobiAmplitude',
+            'JacobiCD',
+            'JacobiCN',
+            'JacobiCS',
+            'JacobiDC',
+            'JacobiDN',
+            'JacobiDS',
+            'JacobiNC',
+            'JacobiND',
+            'JacobiNS',
+            'JacobiP',
+            'JacobiSC',
+            'JacobiSD',
+            'JacobiSN',
+            'JacobiSymbol',
+            'JacobiZeta',
+            'JankoGroupJ1',
+            'JankoGroupJ2',
+            'JankoGroupJ3',
+            'JankoGroupJ4',
+            'JarqueBeraALMTest',
+            'JohnsonDistribution',
+            'Join',
+            'JoinAcross',
+            'JoinForm',
+            'Joined',
+            'JoinedCurve',
+            'JordanDecomposition',
+            'JordanModelDecomposition',
+            'JuliaSetBoettcher',
+            'JuliaSetIterationCount',
+            'JuliaSetPlot',
+            'JuliaSetPoints',
+            'JulianDate',
+
+            'KCoreComponents',
+            'KDistribution',
+            'KEdgeConnectedComponents',
+            'KEdgeConnectedGraphQ',
+            'KVertexConnectedComponents',
+            'KVertexConnectedGraphQ',
+            'KagiChart',
+            'KaiserBesselWindow',
+            'KaiserWindow',
+            'KalmanEstimator',
+            'KalmanFilter',
+            'KarhunenLoeveDecomposition',
+            'KaryTree',
+            'KatzCentrality',
+            'KelvinBei',
+            'KelvinBer',
+            'KelvinKei',
+            'KelvinKer',
+            'KendallTau',
+            'KendallTauTest',
+            'KernelMixtureDistribution',
+            'KernelObject',
+            'Kernels',
+            'Key',
+            'KeyCollisionFunction',
+            'KeyComplement',
+            'KeyDrop',
+            'KeyDropFrom',
+            'KeyExistsQ',
+            'KeyFreeQ',
+            'KeyIntersection',
+            'KeyMap',
+            'KeyMemberQ',
+            'KeySelect',
+            'KeySort',
+            'KeySortBy',
+            'KeyTake',
+            'KeyUnion',
+            'KeyValueMap',
+            'KeyValuePattern',
+            'KeypointStrength',
+            'Keys',
+            'Khinchin',
+            'KillProcess',
+            'KirchhoffGraph',
+            'KirchhoffMatrix',
+            'KleinInvariantJ',
+            'KnapsackSolve',
+            'KnightTourGraph',
+            'KnotData',
+            'KnownUnitQ',
+            'KolmogorovSmirnovTest',
+            'KroneckerDelta',
+            'KroneckerModelDecomposition',
+            'KroneckerProduct',
+            'KroneckerSymbol',
+            'KuiperTest',
+            'KumaraswamyDistribution',
+            'Kurtosis',
+            'KuwaharaFilter',
+
+            'LABColor',
+            'LCHColor',
+            'LCM',
+            'LQEstimatorGains',
+            'LQGRegulator',
+            'LQOutputRegulatorGains',
+            'LQRegulatorGains',
+            'LUDecomposition',
+            'LUVColor',
+            'Label',
+            'LabelStyle',
+            'Labeled',
+            'LabelingFunction',
+            'LaguerreL',
+            'LakeData',
+            'LambdaComponents',
+            'LaminaData',
+            'LanczosWindow',
+            'LandauDistribution',
+            'Language',
+            'LanguageCategory',
+            'LanguageData',
+            'LanguageIdentify',
+            'LaplaceDistribution',
+            'LaplaceTransform',
+            'Laplacian',
+            'LaplacianFilter',
+            'LaplacianGaussianFilter',
+            'Large',
+            'Larger',
+            'Last',
+            'Latitude',
+            'LatitudeLongitude',
+            'LatticeData',
+            'LatticeReduce',
+            'LaunchKernels',
+            'LayerSizeFunction',
+            'LayeredGraphPlot',
+            'LeaderSize',
+            'LeafCount',
+            'LeapYearQ',
+            'LeastSquares',
+            'LeastSquaresFilterKernel',
+            'Left',
+            'LeftArrow',
+            'LeftArrowBar',
+            'LeftArrowRightArrow',
+            'LeftDownTeeVector',
+            'LeftDownVector',
+            'LeftDownVectorBar',
+            'LeftRightArrow',
+            'LeftRightVector',
+            'LeftTee',
+            'LeftTeeArrow',
+            'LeftTeeVector',
+            'LeftTriangle',
+            'LeftTriangleBar',
+            'LeftTriangleEqual',
+            'LeftUpDownVector',
+            'LeftUpTeeVector',
+            'LeftUpVector',
+            'LeftUpVectorBar',
+            'LeftVector',
+            'LeftVectorBar',
+            'LegendAppearance',
+            'LegendFunction',
+            'LegendLabel',
+            'LegendLayout',
+            'LegendMargins',
+            'LegendMarkerSize',
+            'LegendMarkers',
+            'Legended',
+            'LegendreP',
+            'LegendreQ',
+            'Length',
+            'LengthWhile',
+            'LerchPhi',
+            'Less',
+            'LessEqual',
+            'LessEqualGreater',
+            'LessEqualThan',
+            'LessFullEqual',
+            'LessGreater',
+            'LessLess',
+            'LessSlantEqual',
+            'LessThan',
+            'LessTilde',
+            'LetterCharacter',
+            'LetterCounts',
+            'LetterNumber',
+            'LetterQ',
+            'Level',
+            'LeveneTest',
+            'LeviCivitaTensor',
+            'LevyDistribution',
+            'LibraryDataType',
+            'LibraryFunction',
+            'LibraryFunctionError',
+            'LibraryFunctionInformation',
+            'LibraryFunctionLoad',
+            'LibraryFunctionUnload',
+            'LibraryLoad',
+            'LibraryUnload',
+            'LiftingFilterData',
+            'LiftingWaveletTransform',
+            'LightBlue',
+            'LightBrown',
+            'LightCyan',
+            'LightGray',
+            'LightGreen',
+            'LightMagenta',
+            'LightOrange',
+            'LightPink',
+            'LightPurple',
+            'LightRed',
+            'LightYellow',
+            'Lighter',
+            'Lighting',
+            'LightingAngle',
+            'Likelihood',
+            'Limit',
+            'LimitsPositioning',
+            'LindleyDistribution',
+            'Line',
+            'LineBreakChart',
+            'LineGraph',
+            'LineIndent',
+            'LineIndentMaxFraction',
+            'LineIntegralConvolutionPlot',
+            'LineIntegralConvolutionScale',
+            'LineLegend',
+            'LineSpacing',
+            'LinearFractionalTransform',
+            'LinearGradientImage',
+            'LinearModelFit',
+            'LinearOffsetFunction',
+            'LinearProgramming',
+            'LinearRecurrence',
+            'LinearSolve',
+            'LinearSolveFunction',
+            'LinearizingTransformationData',
+            'LinkActivate',
+            'LinkClose',
+            'LinkConnect',
+            'LinkCreate',
+            'LinkFunction',
+            'LinkInterrupt',
+            'LinkLaunch',
+            'LinkObject',
+            'LinkPatterns',
+            'LinkProtocol',
+            'LinkRankCentrality',
+            'LinkRead',
+            'LinkReadyQ',
+            'LinkWrite',
+            'Links',
+            'LiouvilleLambda',
+            'List',
+            'ListAnimate',
+            'ListContourPlot',
+            'ListContourPlot3D',
+            'ListConvolve',
+            'ListCorrelate',
+            'ListCurvePathPlot',
+            'ListDeconvolve',
+            'ListDensityPlot',
+            'ListDensityPlot3D',
+            'ListFormat',
+            'ListFourierSequenceTransform',
+            'ListInterpolation',
+            'ListLineIntegralConvolutionPlot',
+            'ListLinePlot',
+            'ListLogLinearPlot',
+            'ListLogLogPlot',
+            'ListLogPlot',
+            'ListPicker',
+            'ListPickerBox',
+            'ListPickerBoxOptions',
+            'ListPlay',
+            'ListPlot',
+            'ListPlot3D',
+            'ListPointPlot3D',
+            'ListPolarPlot',
+            'ListQ',
+            'ListSliceContourPlot3D',
+            'ListSliceDensityPlot3D',
+            'ListSliceVectorPlot3D',
+            'ListStepPlot',
+            'ListStreamDensityPlot',
+            'ListStreamPlot',
+            'ListSurfacePlot3D',
+            'ListVectorDensityPlot',
+            'ListVectorPlot',
+            'ListVectorPlot3D',
+            'ListZTransform',
+            'Listable',
+            'LocalAdaptiveBinarize',
+            'LocalCache',
+            'LocalClusteringCoefficient',
+            'LocalObject',
+            'LocalObjects',
+            'LocalSymbol',
+            'LocalTime',
+            'LocalTimeZone',
+            'LocalizeVariables',
+            'LocationEquivalenceTest',
+            'LocationTest',
+            'Locator',
+            'LocatorAutoCreate',
+            'LocatorPane',
+            'LocatorRegion',
+            'Locked',
+            'Log',
+            'Log10',
+            'Log2',
+            'LogBarnesG',
+            'LogGamma',
+            'LogGammaDistribution',
+            'LogIntegral',
+            'LogLikelihood',
+            'LogLinearPlot',
+            'LogLogPlot',
+            'LogLogisticDistribution',
+            'LogMultinormalDistribution',
+            'LogNormalDistribution',
+            'LogPlot',
+            'LogRankTest',
+            'LogSeriesDistribution',
+            'LogicalExpand',
+            'LogisticDistribution',
+            'LogisticSigmoid',
+            'LogitModelFit',
+            'LongLeftArrow',
+            'LongLeftRightArrow',
+            'LongRightArrow',
+            'Longest',
+            'LongestCommonSequence',
+            'LongestCommonSequencePositions',
+            'LongestCommonSubsequence',
+            'LongestCommonSubsequencePositions',
+            'LongestOrderedSequence',
+            'Longitude',
+            'Lookup',
+            'LoopFreeGraphQ',
+            'LowerCaseQ',
+            'LowerLeftArrow',
+            'LowerRightArrow',
+            'LowerTriangularize',
+            'LowpassFilter',
+            'LucasL',
+            'LuccioSamiComponents',
+            'LunarEclipse',
+            'LyapunovSolve',
+            'LyonsGroupLy',
+
+            'MAProcess',
+            'MachineNumberQ',
+            'MachinePrecision',
+            'Magenta',
+            'Magnification',
+            'Magnify',
+            'MailReceiverFunction',
+            'MailResponseFunction',
+            'Majority',
+            'MakeBoxes',
+            'MakeExpression',
+            'ManagedLibraryExpressionID',
+            'ManagedLibraryExpressionQ',
+            'MandelbrotSetBoettcher',
+            'MandelbrotSetDistance',
+            'MandelbrotSetIterationCount',
+            'MandelbrotSetMemberQ',
+            'MandelbrotSetPlot',
+            'MangoldtLambda',
+            'ManhattanDistance',
+            'Manipulate',
+            'Manipulator',
+            'MannWhitneyTest',
+            'MannedSpaceMissionData',
+            'MantissaExponent',
+            'Manual',
+            'Map',
+            'MapAll',
+            'MapAt',
+            'MapIndexed',
+            'MapThread',
+            'MarchenkoPasturDistribution',
+            'MarcumQ',
+            'MardiaCombinedTest',
+            'MardiaKurtosisTest',
+            'MardiaSkewnessTest',
+            'MarginalDistribution',
+            'MarkovProcessProperties',
+            'Masking',
+            'MatchLocalNames',
+            'MatchQ',
+            'MatchingDissimilarity',
+            'MathMLForm',
+            'MathematicalFunctionData',
+            'MathieuC',
+            'MathieuCPrime',
+            'MathieuCharacteristicA',
+            'MathieuCharacteristicB',
+            'MathieuCharacteristicExponent',
+            'MathieuGroupM11',
+            'MathieuGroupM12',
+            'MathieuGroupM22',
+            'MathieuGroupM23',
+            'MathieuGroupM24',
+            'MathieuS',
+            'MathieuSPrime',
+            'Matrices',
+            'MatrixExp',
+            'MatrixForm',
+            'MatrixFunction',
+            'MatrixLog',
+            'MatrixNormalDistribution',
+            'MatrixPlot',
+            'MatrixPower',
+            'MatrixPropertyDistribution',
+            'MatrixQ',
+            'MatrixRank',
+            'MatrixTDistribution',
+            'Max',
+            'MaxCellMeasure',
+            'MaxDetect',
+            'MaxExtraBandwidths',
+            'MaxExtraConditions',
+            'MaxFeatureDisplacement',
+            'MaxFeatures',
+            'MaxFilter',
+            'MaxItems',
+            'MaxIterations',
+            'MaxMemoryUsed',
+            'MaxMixtureKernels',
+            'MaxPlotPoints',
+            'MaxRecursion',
+            'MaxStableDistribution',
+            'MaxStepFraction',
+            'MaxStepSize',
+            'MaxSteps',
+            'MaxTrainingRounds',
+            'MaxValue',
+            'MaxWordGap',
+            'MaximalBy',
+            'Maximize',
+            'MaxwellDistribution',
+            'McLaughlinGroupMcL',
+            'Mean',
+            'MeanAbsoluteLossLayer',
+            'MeanClusteringCoefficient',
+            'MeanDegreeConnectivity',
+            'MeanDeviation',
+            'MeanFilter',
+            'MeanGraphDistance',
+            'MeanNeighborDegree',
+            'MeanShift',
+            'MeanShiftFilter',
+            'MeanSquaredLossLayer',
+            'Median',
+            'MedianDeviation',
+            'MedianFilter',
+            'MedicalTestData',
+            'Medium',
+            'MeijerG',
+            'MeijerGReduce',
+            'MeixnerDistribution',
+            'MellinConvolve',
+            'MellinTransform',
+            'MemberQ',
+            'MemoryConstrained',
+            'MemoryConstraint',
+            'MemoryInUse',
+            'MenuCommandKey',
+            'MenuPacket',
+            'MenuSortingValue',
+            'MenuStyle',
+            'MenuView',
+            'Merge',
+            'MersennePrimeExponent',
+            'MersennePrimeExponentQ',
+            'Mesh',
+            'MeshCellCentroid',
+            'MeshCellCount',
+            'MeshCellHighlight',
+            'MeshCellIndex',
+            'MeshCellLabel',
+            'MeshCellMarker',
+            'MeshCellMeasure',
+            'MeshCellQuality',
+            'MeshCellShapeFunction',
+            'MeshCellStyle',
+            'MeshCells',
+            'MeshCoordinates',
+            'MeshFunctions',
+            'MeshPrimitives',
+            'MeshQualityGoal',
+            'MeshRefinementFunction',
+            'MeshRegion',
+            'MeshRegionQ',
+            'MeshShading',
+            'MeshStyle',
+            'Message',
+            'MessageDialog',
+            'MessageList',
+            'MessageName',
+            'MessagePacket',
+            'Messages',
+            'MetaInformation',
+            'MeteorShowerData',
+            'Method',
+            'MexicanHatWavelet',
+            'MeyerWavelet',
+            'Min',
+            'MinColorDistance',
+            'MinDetect',
+            'MinFilter',
+            'MinIntervalSize',
+            'MinMax',
+            'MinStableDistribution',
+            'MinValue',
+            'MineralData',
+            'MinimalBy',
+            'MinimalPolynomial',
+            'MinimalStateSpaceModel',
+            'Minimize',
+            'MinimumTimeIncrement',
+            'MinkowskiQuestionMark',
+            'MinorPlanetData',
+            'Minors',
+            'Minus',
+            'MinusPlus',
+            'Missing',
+            'MissingBehavior',
+            'MissingDataMethod',
+            'MissingDataRules',
+            'MissingQ',
+            'MissingString',
+            'MissingStyle',
+            'MittagLefflerE',
+            'MixedGraphQ',
+            'MixedMagnitude',
+            'MixedRadix',
+            'MixedRadixQuantity',
+            'MixedUnit',
+            'MixtureDistribution',
+            'Mod',
+            'Modal',
+            'ModularLambda',
+            'Module',
+            'Modulus',
+            'MoebiusMu',
+            'Moment',
+            'MomentConvert',
+            'MomentEvaluate',
+            'MomentGeneratingFunction',
+            'MomentOfInertia',
+            'Monday',
+            'Monitor',
+            'MonomialList',
+            'MonsterGroupM',
+            'MoonPhase',
+            'MoonPosition',
+            'MorletWavelet',
+            'MorphologicalBinarize',
+            'MorphologicalBranchPoints',
+            'MorphologicalComponents',
+            'MorphologicalEulerNumber',
+            'MorphologicalGraph',
+            'MorphologicalPerimeter',
+            'MorphologicalTransform',
+            'MortalityData',
+            'Most',
+            'MountainData',
+            'MouseAnnotation',
+            'MouseAppearance',
+            'MousePosition',
+            'Mouseover',
+            'MovieData',
+            'MovingAverage',
+            'MovingMap',
+            'MovingMedian',
+            'MoyalDistribution',
+            'Multicolumn',
+            'MultiedgeStyle',
+            'MultigraphQ',
+            'Multinomial',
+            'MultinomialDistribution',
+            'MultinormalDistribution',
+            'MultiplicativeOrder',
+            'Multiselection',
+            'MultivariateHypergeometricDistribution',
+            'MultivariatePoissonDistribution',
+            'MultivariateTDistribution',
+
+            'N',
+            'NArgMax',
+            'NArgMin',
+            'NCache',
+            'NDEigensystem',
+            'NDEigenvalues',
+            'NDSolve',
+            'NDSolveValue',
+            'NExpectation',
+            'NHoldAll',
+            'NHoldFirst',
+            'NHoldRest',
+            'NIntegrate',
+            'NMaxValue',
+            'NMaximize',
+            'NMinValue',
+            'NMinimize',
+            'NProbability',
+            'NProduct',
+            'NRoots',
+            'NSolve',
+            'NSum',
+            'NakagamiDistribution',
+            'NameQ',
+            'Names',
+            'Nand',
+            'Nearest',
+            'NearestFunction',
+            'NearestNeighborGraph',
+            'NebulaData',
+            'NeedlemanWunschSimilarity',
+            'Needs',
+            'Negative',
+            'NegativeBinomialDistribution',
+            'NegativeDefiniteMatrixQ',
+            'NegativeMultinomialDistribution',
+            'NegativeSemidefiniteMatrixQ',
+            'NeighborhoodData',
+            'NeighborhoodGraph',
+            'Nest',
+            'NestGraph',
+            'NestList',
+            'NestWhile',
+            'NestWhileList',
+            'NestedGreaterGreater',
+            'NestedLessLess',
+            'NetChain',
+            'NetDecoder',
+            'NetEncoder',
+            'NetExtract',
+            'NetGraph',
+            'NetInitialize',
+            'NetPort',
+            'NetTrain',
+            'NeumannValue',
+            'NevilleThetaC',
+            'NevilleThetaD',
+            'NevilleThetaN',
+            'NevilleThetaS',
+            'NextCell',
+            'NextPrime',
+            'NextScheduledTaskTime',
+            'NicholsGridLines',
+            'NicholsPlot',
+            'NightHemisphere',
+            'NoWhitespace',
+            'NominalVariables',
+            'NonCommutativeMultiply',
+            'NonConstants',
+            'NonNegative',
+            'NonPositive',
+            'NoncentralBetaDistribution',
+            'NoncentralChiSquareDistribution',
+            'NoncentralFRatioDistribution',
+            'NoncentralStudentTDistribution',
+            'None',
+            'NoneTrue',
+            'NonlinearModelFit',
+            'NonlinearStateSpaceModel',
+            'NonlocalMeansFilter',
+            'Nor',
+            'NorlundB',
+            'Norm',
+            'NormFunction',
+            'Normal',
+            'NormalDistribution',
+            'NormalMatrixQ',
+            'Normalize',
+            'Normalized',
+            'NormalizedSquaredEuclideanDistance',
+            'NormalsFunction',
+            'Not',
+            'NotCongruent',
+            'NotCupCap',
+            'NotDoubleVerticalBar',
+            'NotElement',
+            'NotEqualTilde',
+            'NotExists',
+            'NotGreater',
+            'NotGreaterEqual',
+            'NotGreaterFullEqual',
+            'NotGreaterGreater',
+            'NotGreaterLess',
+            'NotGreaterSlantEqual',
+            'NotGreaterTilde',
+            'NotHumpDownHump',
+            'NotHumpEqual',
+            'NotLeftTriangle',
+            'NotLeftTriangleBar',
+            'NotLeftTriangleEqual',
+            'NotLess',
+            'NotLessEqual',
+            'NotLessFullEqual',
+            'NotLessGreater',
+            'NotLessLess',
+            'NotLessSlantEqual',
+            'NotLessTilde',
+            'NotNestedGreaterGreater',
+            'NotNestedLessLess',
+            'NotPrecedes',
+            'NotPrecedesEqual',
+            'NotPrecedesSlantEqual',
+            'NotPrecedesTilde',
+            'NotReverseElement',
+            'NotRightTriangle',
+            'NotRightTriangleBar',
+            'NotRightTriangleEqual',
+            'NotSquareSubset',
+            'NotSquareSubsetEqual',
+            'NotSquareSuperset',
+            'NotSquareSupersetEqual',
+            'NotSubset',
+            'NotSubsetEqual',
+            'NotSucceeds',
+            'NotSucceedsEqual',
+            'NotSucceedsSlantEqual',
+            'NotSucceedsTilde',
+            'NotSuperset',
+            'NotSupersetEqual',
+            'NotTilde',
+            'NotTildeEqual',
+            'NotTildeFullEqual',
+            'NotTildeTilde',
+            'NotVerticalBar',
+            'Notebook',
+            'NotebookApply',
+            'NotebookAutoSave',
+            'NotebookClose',
+            'NotebookDelete',
+            'NotebookDirectory',
+            'NotebookDynamicExpression',
+            'NotebookEvaluate',
+            'NotebookEventActions',
+            'NotebookFileName',
+            'NotebookFind',
+            'NotebookGet',
+            'NotebookImport',
+            'NotebookInformation',
+            'NotebookLocate',
+            'NotebookObject',
+            'NotebookOpen',
+            'NotebookPrint',
+            'NotebookPut',
+            'NotebookRead',
+            'NotebookSave',
+            'NotebookSelection',
+            'NotebookTemplate',
+            'NotebookWrite',
+            'Notebooks',
+            'Nothing',
+            'NotificationFunction',
+            'Now',
+            'NuclearExplosionData',
+            'NuclearReactorData',
+            'Null',
+            'NullRecords',
+            'NullSpace',
+            'NullWords',
+            'Number',
+            'NumberCompose',
+            'NumberDecompose',
+            'NumberExpand',
+            'NumberFieldClassNumber',
+            'NumberFieldDiscriminant',
+            'NumberFieldFundamentalUnits',
+            'NumberFieldIntegralBasis',
+            'NumberFieldNormRepresentatives',
+            'NumberFieldRegulator',
+            'NumberFieldRootsOfUnity',
+            'NumberFieldSignature',
+            'NumberForm',
+            'NumberFormat',
+            'NumberLinePlot',
+            'NumberMarks',
+            'NumberMultiplier',
+            'NumberPadding',
+            'NumberPoint',
+            'NumberQ',
+            'NumberSeparator',
+            'NumberSigns',
+            'NumberString',
+            'Numerator',
+            'NumericFunction',
+            'NumericQ',
+            'NuttallWindow',
+            'NyquistGridLines',
+            'NyquistPlot',
+
+            'O',
+            'ONanGroupON',
+            'ObservabilityGramian',
+            'ObservabilityMatrix',
+            'ObservableDecomposition',
+            'ObservableModelQ',
+            'OceanData',
+            'OddQ',
+            'Off',
+            'Offset',
+            'On',
+            'Once',
+            'OneIdentity',
+            'Opacity',
+            'OpacityFunction',
+            'OpacityFunctionScaling',
+            'OpenAppend',
+            'OpenRead',
+            'OpenWrite',
+            'Opener',
+            'OpenerView',
+            'Opening',
+            'Operate',
+            'OperatingSystem',
+            'OptimumFlowData',
+            'OptionValue',
+            'Optional',
+            'OptionalElement',
+            'Options',
+            'OptionsPattern',
+            'Or',
+            'Orange',
+            'Order',
+            'OrderDistribution',
+            'OrderedQ',
+            'Ordering',
+            'Orderless',
+            'OrderlessPatternSequence',
+            'OrnsteinUhlenbeckProcess',
+            'OrthogonalMatrixQ',
+            'Orthogonalize',
+            'Out',
+            'Outer',
+            'OutputControllabilityMatrix',
+            'OutputControllableModelQ',
+            'OutputForm',
+            'OutputNamePacket',
+            'OutputResponse',
+            'OutputSizeLimit',
+            'OutputStream',
+            'OverBar',
+            'OverDot',
+            'OverHat',
+            'OverTilde',
+            'OverVector',
+            'Overflow',
+            'Overlaps',
+            'Overlay',
+            'Overscript',
+            'OverscriptBox',
+            'OverscriptBoxOptions',
+            'OverwriteTarget',
+            'OwenT',
+            'OwnValues',
+
+            'PDF',
+            'PERTDistribution',
+            'PIDData',
+            'PIDDerivativeFilter',
+            'PIDFeedforward',
+            'PIDTune',
+            'PackingMethod',
+            'PadLeft',
+            'PadRight',
+            'PaddedForm',
+            'Padding',
+            'PaddingSize',
+            'PadeApproximant',
+            'PageBreakAbove',
+            'PageBreakBelow',
+            'PageBreakWithin',
+            'PageFooters',
+            'PageHeaders',
+            'PageRankCentrality',
+            'PageTheme',
+            'PageWidth',
+            'Pagination',
+            'PairedBarChart',
+            'PairedHistogram',
+            'PairedSmoothHistogram',
+            'PairedTTest',
+            'PairedZTest',
+            'PaletteNotebook',
+            'PalindromeQ',
+            'Pane',
+            'PaneSelector',
+            'Panel',
+            'Paneled',
+            'ParabolicCylinderD',
+            'ParagraphIndent',
+            'ParagraphSpacing',
+            'ParallelArray',
+            'ParallelCombine',
+            'ParallelDo',
+            'ParallelEvaluate',
+            'ParallelMap',
+            'ParallelNeeds',
+            'ParallelProduct',
+            'ParallelSubmit',
+            'ParallelSum',
+            'ParallelTable',
+            'ParallelTry',
+            'Parallelepiped',
+            'Parallelization',
+            'Parallelize',
+            'Parallelogram',
+            'ParameterEstimator',
+            'ParameterMixtureDistribution',
+            'ParametricFunction',
+            'ParametricNDSolve',
+            'ParametricNDSolveValue',
+            'ParametricPlot',
+            'ParametricPlot3D',
+            'ParametricRegion',
+            'ParentBox',
+            'ParentCell',
+            'ParentDirectory',
+            'ParentNotebook',
+            'ParetoDistribution',
+            'ParkData',
+            'Part',
+            'PartBehavior',
+            'PartOfSpeech',
+            'PartProtection',
+            'PartialCorrelationFunction',
+            'ParticleAcceleratorData',
+            'ParticleData',
+            'Partition',
+            'PartitionGranularity',
+            'PartitionsP',
+            'PartitionsQ',
+            'ParzenWindow',
+            'PascalDistribution',
+            'PassEventsDown',
+            'PassEventsUp',
+            'Paste',
+            'PasteButton',
+            'Path',
+            'PathGraph',
+            'PathGraphQ',
+            'Pattern',
+            'PatternSequence',
+            'PatternTest',
+            'PaulWavelet',
+            'PauliMatrix',
+            'Pause',
+            'PeakDetect',
+            'PearsonChiSquareTest',
+            'PearsonCorrelationTest',
+            'PearsonDistribution',
+            'PerfectNumber',
+            'PerfectNumberQ',
+            'PerformanceGoal',
+            'PeriodicBoundaryCondition',
+            'Periodogram',
+            'PeriodogramArray',
+            'Permanent',
+            'Permissions',
+            'PermissionsGroup',
+            'PermissionsGroups',
+            'PermissionsKey',
+            'PermissionsKeys',
+            'PermutationCycles',
+            'PermutationCyclesQ',
+            'PermutationGroup',
+            'PermutationLength',
+            'PermutationList',
+            'PermutationListQ',
+            'PermutationMax',
+            'PermutationMin',
+            'PermutationOrder',
+            'PermutationPower',
+            'PermutationProduct',
+            'PermutationReplace',
+            'PermutationSupport',
+            'Permutations',
+            'Permute',
+            'PeronaMalikFilter',
+            'PersonData',
+            'PetersenGraph',
+            'PhaseMargins',
+            'PhaseRange',
+            'PhysicalSystemData',
+            'Pi',
+            'Pick',
+            'PieChart',
+            'PieChart3D',
+            'Piecewise',
+            'PiecewiseExpand',
+            'PillaiTrace',
+            'PillaiTraceTest',
+            'PingTime',
+            'Pink',
+            'PixelConstrained',
+            'PixelValue',
+            'PixelValuePositions',
+            'Placed',
+            'Placeholder',
+            'PlaceholderReplace',
+            'Plain',
+            'PlanarGraph',
+            'PlanarGraphQ',
+            'PlanckRadiationLaw',
+            'PlaneCurveData',
+            'PlanetData',
+            'PlanetaryMoonData',
+            'PlantData',
+            'Play',
+            'PlayRange',
+            'Plot',
+            'Plot3D',
+            'PlotLabel',
+            'PlotLabels',
+            'PlotLayout',
+            'PlotLegends',
+            'PlotMarkers',
+            'PlotPoints',
+            'PlotRange',
+            'PlotRangeClipping',
+            'PlotRangePadding',
+            'PlotRegion',
+            'PlotStyle',
+            'PlotTheme',
+            'Pluralize',
+            'Plus',
+            'PlusMinus',
+            'Pochhammer',
+            'PodStates',
+            'PodWidth',
+            'Point',
+            'PointFigureChart',
+            'PointLegend',
+            'PointSize',
+            'PoissonConsulDistribution',
+            'PoissonDistribution',
+            'PoissonProcess',
+            'PoissonWindow',
+            'PolarAxes',
+            'PolarAxesOrigin',
+            'PolarGridLines',
+            'PolarPlot',
+            'PolarTicks',
+            'PoleZeroMarkers',
+            'PolyGamma',
+            'PolyLog',
+            'PolyaAeppliDistribution',
+            'Polygon',
+            'PolygonalNumber',
+            'PolyhedronData',
+            'PolynomialExtendedGCD',
+            'PolynomialGCD',
+            'PolynomialLCM',
+            'PolynomialMod',
+            'PolynomialQ',
+            'PolynomialQuotient',
+            'PolynomialQuotientRemainder',
+            'PolynomialReduce',
+            'PolynomialRemainder',
+            'PoolingLayer',
+            'PopupMenu',
+            'PopupView',
+            'PopupWindow',
+            'Position',
+            'PositionIndex',
+            'Positive',
+            'PositiveDefiniteMatrixQ',
+            'PositiveSemidefiniteMatrixQ',
+            'PossibleZeroQ',
+            'Postfix',
+            'Power',
+            'PowerDistribution',
+            'PowerExpand',
+            'PowerMod',
+            'PowerModList',
+            'PowerRange',
+            'PowerSpectralDensity',
+            'PowerSymmetricPolynomial',
+            'PowersRepresentations',
+            'PreDecrement',
+            'PreIncrement',
+            'PrecedenceForm',
+            'Precedes',
+            'PrecedesEqual',
+            'PrecedesSlantEqual',
+            'PrecedesTilde',
+            'Precision',
+            'PrecisionGoal',
+            'Predict',
+            'PredictorFunction',
+            'PredictorInformation',
+            'PredictorMeasurements',
+            'PredictorMeasurementsObject',
+            'PreemptProtect',
+            'Prefix',
+            'Prepend',
+            'PrependTo',
+            'PreserveImageOptions',
+            'PreviousCell',
+            'PriceGraphDistribution',
+            'Prime',
+            'PrimeNu',
+            'PrimeOmega',
+            'PrimePi',
+            'PrimePowerQ',
+            'PrimeQ',
+            'PrimeZetaP',
+            'Primes',
+            'PrimitiveRoot',
+            'PrimitiveRootList',
+            'PrincipalComponents',
+            'PrincipalValue',
+            'Print',
+            'PrintTemporary',
+            'PrintableASCIIQ',
+            'PrintingStyleEnvironment',
+            'Printout3D',
+            'Printout3DPreviewer',
+            'Prism',
+            'PrivateCellOptions',
+            'PrivateFontOptions',
+            'PrivateKey',
+            'PrivateNotebookOptions',
+            'Probability',
+            'ProbabilityDistribution',
+            'ProbabilityPlot',
+            'ProbabilityScalePlot',
+            'ProbitModelFit',
+            'ProcessConnection',
+            'ProcessDirectory',
+            'ProcessEnvironment',
+            'ProcessEstimator',
+            'ProcessInformation',
+            'ProcessObject',
+            'ProcessParameterAssumptions',
+            'ProcessParameterQ',
+            'ProcessStatus',
+            'Processes',
+            'Product',
+            'ProductDistribution',
+            'ProductLog',
+            'ProgressIndicator',
+            'Projection',
+            'Prolog',
+            'Properties',
+            'Property',
+            'PropertyList',
+            'PropertyValue',
+            'Proportion',
+            'Proportional',
+            'Protect',
+            'Protected',
+            'ProteinData',
+            'Pruning',
+            'PseudoInverse',
+            'PublicKey',
+            'PulsarData',
+            'PunctuationCharacter',
+            'Purple',
+            'Put',
+            'PutAppend',
+            'Pyramid',
+
+            'QBinomial',
+            'QFactorial',
+            'QGamma',
+            'QHypergeometricPFQ',
+            'QPochhammer',
+            'QPolyGamma',
+            'QRDecomposition',
+            'QuadraticIrrationalQ',
+            'Quantile',
+            'QuantilePlot',
+            'Quantity',
+            'QuantityArray',
+            'QuantityDistribution',
+            'QuantityForm',
+            'QuantityMagnitude',
+            'QuantityQ',
+            'QuantityUnit',
+            'QuantityVariable',
+            'QuantityVariableCanonicalUnit',
+            'QuantityVariableDimensions',
+            'QuantityVariableIdentifier',
+            'QuantityVariablePhysicalQuantity',
+            'Quartics',
+            'QuartileDeviation',
+            'QuartileSkewness',
+            'Quartiles',
+            'Query',
+            'QueueProperties',
+            'QueueingNetworkProcess',
+            'QueueingProcess',
+            'Quiet',
+            'Quit',
+            'Quotient',
+            'QuotientRemainder',
+
+            'RGBColor',
+            'RSolve',
+            'RSolveValue',
+            'RadialGradientImage',
+            'RadialityCentrality',
+            'RadicalBox',
+            'RadicalBoxOptions',
+            'RadioButton',
+            'RadioButtonBar',
+            'Radon',
+            'RamanujanTau',
+            'RamanujanTauL',
+            'RamanujanTauTheta',
+            'RamanujanTauZ',
+            'Ramp',
+            'RandomChoice',
+            'RandomColor',
+            'RandomComplex',
+            'RandomEntity',
+            'RandomFunction',
+            'RandomGraph',
+            'RandomImage',
+            'RandomInteger',
+            'RandomPermutation',
+            'RandomPoint',
+            'RandomPrime',
+            'RandomReal',
+            'RandomSample',
+            'RandomVariate',
+            'RandomWalkProcess',
+            'RandomWord',
+            'Range',
+            'RangeFilter',
+            'RankedMax',
+            'RankedMin',
+            'Raster',
+            'Raster3D',
+            'RasterSize',
+            'Rasterize',
+            'Rational',
+            'Rationalize',
+            'Rationals',
+            'Ratios',
+            'RawBoxes',
+            'RawData',
+            'RayleighDistribution',
+            'Re',
+            'ReIm',
+            'Read',
+            'ReadLine',
+            'ReadList',
+            'ReadProtected',
+            'ReadString',
+            'Real',
+            'RealBlockDiagonalForm',
+            'RealDigits',
+            'RealExponent',
+            'Reals',
+            'Reap',
+            'RecognitionPrior',
+            'RecognitionThreshold',
+            'Record',
+            'RecordLists',
+            'RecordSeparators',
+            'Rectangle',
+            'RectangleChart',
+            'RectangleChart3D',
+            'RecurrenceFilter',
+            'RecurrenceTable',
+            'Red',
+            'Reduce',
+            'ReferenceLineStyle',
+            'Refine',
+            'ReflectionMatrix',
+            'ReflectionTransform',
+            'Refresh',
+            'RefreshRate',
+            'RegionBinarize',
+            'RegionBoundary',
+            'RegionBounds',
+            'RegionCentroid',
+            'RegionDifference',
+            'RegionDimension',
+            'RegionDistance',
+            'RegionDistanceFunction',
+            'RegionEmbeddingDimension',
+            'RegionFunction',
+            'RegionIntersection',
+            'RegionMeasure',
+            'RegionMember',
+            'RegionMemberFunction',
+            'RegionMoment',
+            'RegionNearest',
+            'RegionNearestFunction',
+            'RegionPlot',
+            'RegionPlot3D',
+            'RegionProduct',
+            'RegionQ',
+            'RegionResize',
+            'RegionSize',
+            'RegionSymmetricDifference',
+            'RegionUnion',
+            'RegularExpression',
+            'RegularPolygon',
+            'Regularization',
+            'RegularlySampledQ',
+            'RelationGraph',
+            'ReleaseHold',
+            'ReliabilityDistribution',
+            'ReliefImage',
+            'ReliefPlot',
+            'Remove',
+            'RemoveAlphaChannel',
+            'RemoveAsynchronousTask',
+            'RemoveBackground',
+            'RemoveChannelListener',
+            'RemoveDiacritics',
+            'RemoveInputStreamMethod',
+            'RemoveOutputStreamMethod',
+            'RemoveProperty',
+            'RemoveScheduledTask',
+            'RemoveUsers',
+            'RenameDirectory',
+            'RenameFile',
+            'RenewalProcess',
+            'RenkoChart',
+            'RepairMesh',
+            'Repeated',
+            'RepeatedNull',
+            'RepeatedTiming',
+            'RepeatingElement',
+            'Replace',
+            'ReplaceAll',
+            'ReplaceImageValue',
+            'ReplaceList',
+            'ReplacePart',
+            'ReplacePixelValue',
+            'ReplaceRepeated',
+            'RequiredPhysicalQuantities',
+            'Resampling',
+            'ResamplingAlgorithmData',
+            'ResamplingMethod',
+            'Rescale',
+            'RescalingTransform',
+            'ResetDirectory',
+            'ResetScheduledTask',
+            'ReshapeLayer',
+            'Residue',
+            'Resolve',
+            'ResourceData',
+            'ResourceObject',
+            'ResourceRemove',
+            'ResourceSearch',
+            'ResponseForm',
+            'Rest',
+            'RestartInterval',
+            'Restricted',
+            'Resultant',
+            'Return',
+            'ReturnExpressionPacket',
+            'ReturnPacket',
+            'ReturnReceiptFunction',
+            'ReturnTextPacket',
+            'Reverse',
+            'ReverseBiorthogonalSplineWavelet',
+            'ReverseElement',
+            'ReverseEquilibrium',
+            'ReverseGraph',
+            'ReverseUpEquilibrium',
+            'RevolutionAxis',
+            'RevolutionPlot3D',
+            'RiccatiSolve',
+            'RiceDistribution',
+            'RidgeFilter',
+            'RiemannR',
+            'RiemannSiegelTheta',
+            'RiemannSiegelZ',
+            'RiemannXi',
+            'Riffle',
+            'Right',
+            'RightArrow',
+            'RightArrowBar',
+            'RightArrowLeftArrow',
+            'RightComposition',
+            'RightCosetRepresentative',
+            'RightDownTeeVector',
+            'RightDownVector',
+            'RightDownVectorBar',
+            'RightTee',
+            'RightTeeArrow',
+            'RightTeeVector',
+            'RightTriangle',
+            'RightTriangleBar',
+            'RightTriangleEqual',
+            'RightUpDownVector',
+            'RightUpTeeVector',
+            'RightUpVector',
+            'RightUpVectorBar',
+            'RightVector',
+            'RightVectorBar',
+            'RiskAchievementImportance',
+            'RiskReductionImportance',
+            'RogersTanimotoDissimilarity',
+            'RollPitchYawAngles',
+            'RollPitchYawMatrix',
+            'RomanNumeral',
+            'Root',
+            'RootApproximant',
+            'RootIntervals',
+            'RootLocusPlot',
+            'RootMeanSquare',
+            'RootOfUnityQ',
+            'RootReduce',
+            'RootSum',
+            'Roots',
+            'Rotate',
+            'RotateLabel',
+            'RotateLeft',
+            'RotateRight',
+            'RotationAction',
+            'RotationMatrix',
+            'RotationTransform',
+            'Round',
+            'RoundingRadius',
+            'Row',
+            'RowAlignments',
+            'RowBox',
+            'RowLines',
+            'RowMinHeight',
+            'RowReduce',
+            'RowSpacings',
+            'RowsEqual',
+            'RudinShapiro',
+            'RudvalisGroupRu',
+            'Rule',
+            'RuleDelayed',
+            'RulePlot',
+            'Run',
+            'RunProcess',
+            'RunScheduledTask',
+            'RunThrough',
+            'RuntimeAttributes',
+            'RuntimeOptions',
+            'RussellRaoDissimilarity',
+
+            'SARIMAProcess',
+            'SARMAProcess',
+            'SASTriangle',
+            'SSSTriangle',
+            'SameQ',
+            'SameTest',
+            'SampleDepth',
+            'SampleRate',
+            'SampledSoundFunction',
+            'SampledSoundList',
+            'SamplingPeriod',
+            'SatelliteData',
+            'SatisfiabilityCount',
+            'SatisfiabilityInstances',
+            'SatisfiableQ',
+            'Saturday',
+            'Save',
+            'SaveDefinitions',
+            'SavitzkyGolayMatrix',
+            'SawtoothWave',
+            'Scale',
+            'ScaleDivisions',
+            'ScaleOrigin',
+            'ScalePadding',
+            'ScaleRangeStyle',
+            'ScaleRanges',
+            'Scaled',
+            'ScalingFunctions',
+            'ScalingMatrix',
+            'ScalingTransform',
+            'Scan',
+            'ScheduledTask',
+            'ScheduledTaskActiveQ',
+            'ScheduledTaskInformation',
+            'ScheduledTaskObject',
+            'ScheduledTasks',
+            'SchurDecomposition',
+            'ScientificForm',
+            'ScorerGi',
+            'ScorerGiPrime',
+            'ScorerHi',
+            'ScorerHiPrime',
+            'ScreenStyleEnvironment',
+            'ScriptBaselineShifts',
+            'ScriptMinSize',
+            'ScriptSizeMultipliers',
+            'ScrollPosition',
+            'Scrollbars',
+            'ScrollingOptions',
+            'SearchAdjustment',
+            'SearchIndexObject',
+            'SearchIndices',
+            'SearchQueryString',
+            'SearchResultObject',
+            'Sec',
+            'Sech',
+            'SechDistribution',
+            'SectorChart',
+            'SectorChart3D',
+            'SectorOrigin',
+            'SectorSpacing',
+            'SeedRandom',
+            'Select',
+            'SelectComponents',
+            'SelectFirst',
+            'Selectable',
+            'SelectedCells',
+            'SelectedNotebook',
+            'SelectionCreateCell',
+            'SelectionEvaluate',
+            'SelectionEvaluateCreateCell',
+            'SelectionMove',
+            'SelfLoopStyle',
+            'SemanticImport',
+            'SemanticImportString',
+            'SemanticInterpretation',
+            'SemialgebraicComponentInstances',
+            'SendMail',
+            'SendMessage',
+            'Sequence',
+            'SequenceAlignment',
+            'SequenceCases',
+            'SequenceCount',
+            'SequenceFold',
+            'SequenceFoldList',
+            'SequenceHold',
+            'SequencePosition',
+            'Series',
+            'SeriesCoefficient',
+            'SeriesData',
+            'ServiceConnect',
+            'ServiceDisconnect',
+            'ServiceExecute',
+            'ServiceObject',
+            'SessionTime',
+            'Set',
+            'SetAccuracy',
+            'SetAlphaChannel',
+            'SetAttributes',
+            'SetCloudDirectory',
+            'SetCookies',
+            'SetDelayed',
+            'SetDirectory',
+            'SetEnvironment',
+            'SetFileDate',
+            'SetOptions',
+            'SetPermissions',
+            'SetPrecision',
+            'SetProperty',
+            'SetSelectedNotebook',
+            'SetSharedFunction',
+            'SetSharedVariable',
+            'SetStreamPosition',
+            'SetSystemOptions',
+            'SetUsers',
+            'Setter',
+            'SetterBar',
+            'Setting',
+            'Shallow',
+            'ShannonWavelet',
+            'ShapiroWilkTest',
+            'Share',
+            'Sharpen',
+            'ShearingMatrix',
+            'ShearingTransform',
+            'ShellRegion',
+            'ShenCastanMatrix',
+            'ShiftRegisterSequence',
+            'ShiftedGompertzDistribution',
+            'Short',
+            'ShortDownArrow',
+            'ShortLeftArrow',
+            'ShortRightArrow',
+            'ShortUpArrow',
+            'Shortest',
+            'ShortestPathFunction',
+            'Show',
+            'ShowAutoSpellCheck',
+            'ShowAutoStyles',
+            'ShowCellBracket',
+            'ShowCellLabel',
+            'ShowCellTags',
+            'ShowCursorTracker',
+            'ShowGroupOpener',
+            'ShowPageBreaks',
+            'ShowSelection',
+            'ShowSpecialCharacters',
+            'ShowStringCharacters',
+            'ShrinkingDelay',
+            'SiderealTime',
+            'SiegelTheta',
+            'SiegelTukeyTest',
+            'Sign',
+            'SignPadding',
+            'SignTest',
+            'Signature',
+            'SignedRankTest',
+            'SignedRegionDistance',
+            'SignificanceLevel',
+            'SimilarityRules',
+            'SimpleGraph',
+            'SimpleGraphQ',
+            'Simplex',
+            'Simplify',
+            'Sin',
+            'SinIntegral',
+            'Sinc',
+            'SinghMaddalaDistribution',
+            'SingleLetterItalics',
+            'SingularValueDecomposition',
+            'SingularValueList',
+            'SingularValuePlot',
+            'Sinh',
+            'SinhIntegral',
+            'SixJSymbol',
+            'Skeleton',
+            'SkeletonTransform',
+            'SkellamDistribution',
+            'SkewNormalDistribution',
+            'Skewness',
+            'SkinStyle',
+            'Skip',
+            'SliceContourPlot3D',
+            'SliceDensityPlot3D',
+            'SliceDistribution',
+            'SliceVectorPlot3D',
+            'SlideView',
+            'Slider',
+            'Slider2D',
+            'Slot',
+            'SlotSequence',
+            'Small',
+            'SmallCircle',
+            'Smaller',
+            'SmithDecomposition',
+            'SmithDelayCompensator',
+            'SmithWatermanSimilarity',
+            'SmoothDensityHistogram',
+            'SmoothHistogram',
+            'SmoothHistogram3D',
+            'SmoothKernelDistribution',
+            'Snippet',
+            'SocialMediaData',
+            'SocketConnect',
+            'SocketObject',
+            'SoftmaxLayer',
+            'SokalSneathDissimilarity',
+            'SolarEclipse',
+            'SolarSystemFeatureData',
+            'SolidData',
+            'SolidRegionQ',
+            'Solve',
+            'SolveAlways',
+            'Sort',
+            'SortBy',
+            'Sound',
+            'SoundNote',
+            'SoundVolume',
+            'SourceLink',
+            'Sow',
+            'SpaceCurveData',
+            'Spacer',
+            'Spacings',
+            'Span',
+            'SpanFromAbove',
+            'SpanFromBoth',
+            'SpanFromLeft',
+            'SparseArray',
+            'SpatialGraphDistribution',
+            'Speak',
+            'SpearmanRankTest',
+            'SpearmanRho',
+            'SpeciesData',
+            'SpecificityGoal',
+            'Spectrogram',
+            'SpectrogramArray',
+            'Specularity',
+            'SpellingCorrection',
+            'SpellingCorrectionList',
+            'SpellingOptions',
+            'Sphere',
+            'SphericalBesselJ',
+            'SphericalBesselY',
+            'SphericalHankelH1',
+            'SphericalHankelH2',
+            'SphericalHarmonicY',
+            'SphericalPlot3D',
+            'SphericalRegion',
+            'SphericalShell',
+            'SpheroidalEigenvalue',
+            'SpheroidalJoiningFactor',
+            'SpheroidalPS',
+            'SpheroidalPSPrime',
+            'SpheroidalQS',
+            'SpheroidalQSPrime',
+            'SpheroidalRadialFactor',
+            'SpheroidalS1',
+            'SpheroidalS1Prime',
+            'SpheroidalS2',
+            'SpheroidalS2Prime',
+            'SplicedDistribution',
+            'SplineClosed',
+            'SplineDegree',
+            'SplineKnots',
+            'SplineWeights',
+            'Split',
+            'SplitBy',
+            'SpokenString',
+            'Sqrt',
+            'SqrtBox',
+            'SqrtBoxOptions',
+            'Square',
+            'SquareFreeQ',
+            'SquareIntersection',
+            'SquareMatrixQ',
+            'SquareSubset',
+            'SquareSubsetEqual',
+            'SquareSuperset',
+            'SquareSupersetEqual',
+            'SquareUnion',
+            'SquareWave',
+            'SquaredEuclideanDistance',
+            'SquaresR',
+            'StabilityMargins',
+            'StabilityMarginsStyle',
+            'StableDistribution',
+            'Stack',
+            'StackBegin',
+            'StackComplete',
+            'StackInhibit',
+            'StadiumShape',
+            'StandardAtmosphereData',
+            'StandardDeviation',
+            'StandardDeviationFilter',
+            'StandardForm',
+            'StandardOceanData',
+            'Standardize',
+            'Standardized',
+            'StandbyDistribution',
+            'Star',
+            'StarClusterData',
+            'StarData',
+            'StarGraph',
+            'StartAsynchronousTask',
+            'StartOfLine',
+            'StartOfString',
+            'StartProcess',
+            'StartScheduledTask',
+            'StartingStepSize',
+            'StateFeedbackGains',
+            'StateOutputEstimator',
+            'StateResponse',
+            'StateSpaceModel',
+            'StateSpaceRealization',
+            'StateSpaceTransform',
+            'StateTransformationLinearize',
+            'StationaryDistribution',
+            'StationaryWaveletPacketTransform',
+            'StationaryWaveletTransform',
+            'StatusArea',
+            'StatusCentrality',
+            'StepMonitor',
+            'StieltjesGamma',
+            'StirlingS1',
+            'StirlingS2',
+            'StopAsynchronousTask',
+            'StopScheduledTask',
+            'StoppingPowerData',
+            'StrataVariables',
+            'StratonovichProcess',
+            'StreamColorFunction',
+            'StreamColorFunctionScaling',
+            'StreamDensityPlot',
+            'StreamPlot',
+            'StreamPoints',
+            'StreamPosition',
+            'StreamScale',
+            'StreamStyle',
+            'Streams',
+            'String',
+            'StringCases',
+            'StringContainsQ',
+            'StringCount',
+            'StringDelete',
+            'StringDrop',
+            'StringEndsQ',
+            'StringExpression',
+            'StringExtract',
+            'StringForm',
+            'StringFormat',
+            'StringFreeQ',
+            'StringInsert',
+            'StringJoin',
+            'StringLength',
+            'StringMatchQ',
+            'StringPadLeft',
+            'StringPadRight',
+            'StringPart',
+            'StringPartition',
+            'StringPosition',
+            'StringQ',
+            'StringRepeat',
+            'StringReplace',
+            'StringReplaceList',
+            'StringReplacePart',
+            'StringReverse',
+            'StringRiffle',
+            'StringRotateLeft',
+            'StringRotateRight',
+            'StringSkeleton',
+            'StringSplit',
+            'StringStartsQ',
+            'StringTake',
+            'StringTemplate',
+            'StringToStream',
+            'StringTrim',
+            'StripBoxes',
+            'StripOnInput',
+            'StripWrapperBoxes',
+            'StructuralImportance',
+            'StructuredArray',
+            'StructuredSelection',
+            'StruveH',
+            'StruveL',
+            'Stub',
+            'StudentTDistribution',
+            'Style',
+            'StyleBox',
+            'StyleData',
+            'StyleDefinitions',
+            'SubMinus',
+            'SubPlus',
+            'SubStar',
+            'Subdivide',
+            'Subfactorial',
+            'Subgraph',
+            'SubresultantPolynomialRemainders',
+            'SubresultantPolynomials',
+            'Subresultants',
+            'Subscript',
+            'SubscriptBox',
+            'SubscriptBoxOptions',
+            'Subsequences',
+            'Subset',
+            'SubsetEqual',
+            'SubsetQ',
+            'Subsets',
+            'SubstitutionSystem',
+            'Subsuperscript',
+            'SubsuperscriptBox',
+            'SubsuperscriptBoxOptions',
+            'Subtract',
+            'SubtractFrom',
+            'Succeeds',
+            'SucceedsEqual',
+            'SucceedsSlantEqual',
+            'SucceedsTilde',
+            'SuchThat',
+            'Sum',
+            'SumConvergence',
+            'SummationLayer',
+            'SunPosition',
+            'Sunday',
+            'Sunrise',
+            'Sunset',
+            'SuperDagger',
+            'SuperMinus',
+            'SuperPlus',
+            'SuperStar',
+            'SupernovaData',
+            'Superscript',
+            'SuperscriptBox',
+            'SuperscriptBoxOptions',
+            'Superset',
+            'SupersetEqual',
+            'Surd',
+            'SurfaceData',
+            'SurvivalDistribution',
+            'SurvivalFunction',
+            'SurvivalModel',
+            'SurvivalModelFit',
+            'SuzukiDistribution',
+            'SuzukiGroupSuz',
+            'SwatchLegend',
+            'Switch',
+            'Symbol',
+            'SymbolName',
+            'SymletWavelet',
+            'Symmetric',
+            'SymmetricGroup',
+            'SymmetricKey',
+            'SymmetricMatrixQ',
+            'SymmetricPolynomial',
+            'SymmetricReduction',
+            'Symmetrize',
+            'SymmetrizedArray',
+            'SymmetrizedArrayRules',
+            'SymmetrizedDependentComponents',
+            'SymmetrizedIndependentComponents',
+            'SymmetrizedReplacePart',
+            'SynchronousInitialization',
+            'SynchronousUpdating',
+            'SyntaxForm',
+            'SyntaxInformation',
+            'SyntaxLength',
+            'SyntaxPacket',
+            'SyntaxQ',
+            'SystemDialogInput',
+            'SystemInformation',
+            'SystemOpen',
+            'SystemOptions',
+            'SystemsModelDelay',
+            'SystemsModelDelayApproximate',
+            'SystemsModelDelete',
+            'SystemsModelDimensions',
+            'SystemsModelExtract',
+            'SystemsModelFeedbackConnect',
+            'SystemsModelLabels',
+            'SystemsModelLinearity',
+            'SystemsModelMerge',
+            'SystemsModelOrder',
+            'SystemsModelParallelConnect',
+            'SystemsModelSeriesConnect',
+            'SystemsModelStateFeedbackConnect',
+            'SystemsModelVectorRelativeOrders',
+
+            'TTest',
+            'TabView',
+            'Table',
+            'TableAlignments',
+            'TableDepth',
+            'TableDirections',
+            'TableForm',
+            'TableHeadings',
+            'TableSpacing',
+            'TagBox',
+            'TagBoxOptions',
+            'TagSet',
+            'TagSetDelayed',
+            'TagUnset',
+            'TaggingRules',
+            'Take',
+            'TakeDrop',
+            'TakeLargest',
+            'TakeLargestBy',
+            'TakeSmallest',
+            'TakeSmallestBy',
+            'TakeWhile',
+            'Tally',
+            'Tan',
+            'Tanh',
+            'TargetDevice',
+            'TargetFunctions',
+            'TargetUnits',
+            'TautologyQ',
+            'TeXForm',
+            'TelegraphProcess',
+            'TemplateApply',
+            'TemplateBox',
+            'TemplateBoxOptions',
+            'TemplateExpression',
+            'TemplateIf',
+            'TemplateObject',
+            'TemplateSequence',
+            'TemplateSlot',
+            'TemplateWith',
+            'TemporalData',
+            'TemporalRegularity',
+            'Temporary',
+            'TensorContract',
+            'TensorDimensions',
+            'TensorExpand',
+            'TensorProduct',
+            'TensorRank',
+            'TensorReduce',
+            'TensorSymmetry',
+            'TensorTranspose',
+            'TensorWedge',
+            'TestID',
+            'TestReport',
+            'TestReportObject',
+            'TestResultObject',
+            'Tetrahedron',
+            'Text',
+            'TextAlignment',
+            'TextCases',
+            'TextCell',
+            'TextClipboardType',
+            'TextData',
+            'TextElement',
+            'TextGrid',
+            'TextJustification',
+            'TextPacket',
+            'TextPosition',
+            'TextRecognize',
+            'TextSearch',
+            'TextSearchReport',
+            'TextSentences',
+            'TextString',
+            'TextStructure',
+            'TextWords',
+            'Texture',
+            'TextureCoordinateFunction',
+            'TextureCoordinateScaling',
+            'Therefore',
+            'ThermodynamicData',
+            'ThermometerGauge',
+            'Thick',
+            'Thickness',
+            'Thin',
+            'Thinning',
+            'ThompsonGroupTh',
+            'Thread',
+            'ThreeJSymbol',
+            'Threshold',
+            'Through',
+            'Throw',
+            'ThueMorse',
+            'Thumbnail',
+            'Thursday',
+            'Ticks',
+            'TicksStyle',
+            'Tilde',
+            'TildeEqual',
+            'TildeFullEqual',
+            'TildeTilde',
+            'TimeConstrained',
+            'TimeConstraint',
+            'TimeDirection',
+            'TimeFormat',
+            'TimeObject',
+            'TimeObjectQ',
+            'TimeSeries',
+            'TimeSeriesAggregate',
+            'TimeSeriesForecast',
+            'TimeSeriesInsert',
+            'TimeSeriesInvertibility',
+            'TimeSeriesMap',
+            'TimeSeriesMapThread',
+            'TimeSeriesModel',
+            'TimeSeriesModelFit',
+            'TimeSeriesResample',
+            'TimeSeriesRescale',
+            'TimeSeriesShift',
+            'TimeSeriesThread',
+            'TimeSeriesWindow',
+            'TimeUsed',
+            'TimeValue',
+            'TimeZone',
+            'TimeZoneConvert',
+            'TimeZoneOffset',
+            'TimelinePlot',
+            'Times',
+            'TimesBy',
+            'Timing',
+            'Tiny',
+            'TitsGroupT',
+            'ToBoxes',
+            'ToCharacterCode',
+            'ToContinuousTimeModel',
+            'ToDiscreteTimeModel',
+            'ToEntity',
+            'ToExpression',
+            'ToInvertibleTimeSeries',
+            'ToLowerCase',
+            'ToNumberField',
+            'ToPolarCoordinates',
+            'ToRadicals',
+            'ToRules',
+            'ToSphericalCoordinates',
+            'ToString',
+            'ToUpperCase',
+            'Today',
+            'ToeplitzMatrix',
+            'Together',
+            'Toggler',
+            'TogglerBar',
+            'TokenWords',
+            'Tolerance',
+            'Tomorrow',
+            'Tooltip',
+            'TooltipDelay',
+            'TooltipStyle',
+            'Top',
+            'TopHatTransform',
+            'TopologicalSort',
+            'Total',
+            'TotalLayer',
+            'TotalVariationFilter',
+            'TotalWidth',
+            'TouchPosition',
+            'TouchscreenAutoZoom',
+            'TouchscreenControlPlacement',
+            'Tr',
+            'Trace',
+            'TraceAbove',
+            'TraceBackward',
+            'TraceDepth',
+            'TraceDialog',
+            'TraceForward',
+            'TraceOff',
+            'TraceOn',
+            'TraceOriginal',
+            'TracePrint',
+            'TraceScan',
+            'TrackedSymbols',
+            'TrackingFunction',
+            'TracyWidomDistribution',
+            'TradingChart',
+            'TraditionalForm',
+            'TransferFunctionCancel',
+            'TransferFunctionExpand',
+            'TransferFunctionFactor',
+            'TransferFunctionModel',
+            'TransferFunctionPoles',
+            'TransferFunctionTransform',
+            'TransferFunctionZeros',
+            'TransformationClass',
+            'TransformationFunction',
+            'TransformationFunctions',
+            'TransformationMatrix',
+            'TransformedDistribution',
+            'TransformedField',
+            'TransformedProcess',
+            'TransformedRegion',
+            'TransitionDirection',
+            'TransitionDuration',
+            'TransitionEffect',
+            'TransitiveClosureGraph',
+            'TransitiveReductionGraph',
+            'Translate',
+            'TranslationOptions',
+            'TranslationTransform',
+            'Transliterate',
+            'Transparent',
+            'Transpose',
+            'TravelDirections',
+            'TravelDirectionsData',
+            'TravelDistance',
+            'TravelDistanceList',
+            'TravelMethod',
+            'TravelTime',
+            'TreeForm',
+            'TreeGraph',
+            'TreeGraphQ',
+            'TreePlot',
+            'TrendStyle',
+            'Triangle',
+            'TriangleWave',
+            'TriangularDistribution',
+            'TriangulateMesh',
+            'Trig',
+            'TrigExpand',
+            'TrigFactor',
+            'TrigFactorList',
+            'TrigReduce',
+            'TrigToExp',
+            'Trigger',
+            'TrimmedMean',
+            'TropicalStormData',
+            'True',
+            'TrueQ',
+            'TruncatedDistribution',
+            'TsallisQExponentialDistribution',
+            'TsallisQGaussianDistribution',
+            'Tube',
+            'Tuesday',
+            'TukeyLambdaDistribution',
+            'TukeyWindow',
+            'TunnelData',
+            'Tuples',
+            'TuranGraph',
+            'TuringMachine',
+            'TuttePolynomial',
+
+            'URL',
+            'URLBuild',
+            'URLDecode',
+            'URLDispatcher',
+            'URLDownload',
+            'URLEncode',
+            'URLExecute',
+            'URLExpand',
+            'URLParse',
+            'URLQueryDecode',
+            'URLQueryEncode',
+            'URLRead',
+            'URLSaveAsynchronous',
+            'URLShorten',
+            'URLSubmit',
+            'UnateQ',
+            'Uncompress',
+            'Undefined',
+            'UnderBar',
+            'Underflow',
+            'Underlined',
+            'Underoverscript',
+            'UnderoverscriptBox',
+            'UnderoverscriptBoxOptions',
+            'Underscript',
+            'UnderscriptBox',
+            'UnderscriptBoxOptions',
+            'UnderseaFeatureData',
+            'UndirectedEdge',
+            'UndirectedGraph',
+            'UndirectedGraphQ',
+            'UndoOptions',
+            'UndoTrackedVariables',
+            'Unequal',
+            'UnequalTo',
+            'Unevaluated',
+            'UniformDistribution',
+            'UniformGraphDistribution',
+            'UniformSumDistribution',
+            'Uninstall',
+            'Union',
+            'UnionPlus',
+            'Unique',
+            'UnitBox',
+            'UnitConvert',
+            'UnitDimensions',
+            'UnitRootTest',
+            'UnitSimplify',
+            'UnitStep',
+            'UnitSystem',
+            'UnitTriangle',
+            'UnitVector',
+            'UnitaryMatrixQ',
+            'Unitize',
+            'UnityDimensions',
+            'UniverseModelData',
+            'UniversityData',
+            'UnixTime',
+            'Unprotect',
+            'UnsameQ',
+            'UnsavedVariables',
+            'Unset',
+            'UnsetShared',
+            'UpArrow',
+            'UpArrowBar',
+            'UpArrowDownArrow',
+            'UpDownArrow',
+            'UpEquilibrium',
+            'UpSet',
+            'UpSetDelayed',
+            'UpTee',
+            'UpTeeArrow',
+            'UpTo',
+            'UpValues',
+            'Update',
+            'UpdateInterval',
+            'UpdateSearchIndex',
+            'UpperCaseQ',
+            'UpperLeftArrow',
+            'UpperRightArrow',
+            'UpperTriangularize',
+            'Upsample',
+            'UsingFrontEnd',
+            'UtilityFunction',
+
+            'ValidationLength',
+            'ValidationSet',
+            'ValueDimensions',
+            'ValueQ',
+            'Values',
+            'Variables',
+            'Variance',
+            'VarianceEquivalenceTest',
+            'VarianceEstimatorFunction',
+            'VarianceGammaDistribution',
+            'VarianceTest',
+            'VectorAngle',
+            'VectorColorFunction',
+            'VectorColorFunctionScaling',
+            'VectorDensityPlot',
+            'VectorPlot',
+            'VectorPlot3D',
+            'VectorPoints',
+            'VectorQ',
+            'VectorScale',
+            'VectorStyle',
+            'Vectors',
+            'Vee',
+            'Verbatim',
+            'VerificationTest',
+            'VerifyConvergence',
+            'VerifySecurityCertificates',
+            'VerifySolutions',
+            'VerifyTestAssumptions',
+            'VertexAdd',
+            'VertexCapacity',
+            'VertexColors',
+            'VertexComponent',
+            'VertexConnectivity',
+            'VertexContract',
+            'VertexCoordinateRules',
+            'VertexCoordinates',
+            'VertexCorrelationSimilarity',
+            'VertexCosineSimilarity',
+            'VertexCount',
+            'VertexCoverQ',
+            'VertexDataCoordinates',
+            'VertexDegree',
+            'VertexDelete',
+            'VertexDiceSimilarity',
+            'VertexEccentricity',
+            'VertexInComponent',
+            'VertexInDegree',
+            'VertexIndex',
+            'VertexJaccardSimilarity',
+            'VertexLabelStyle',
+            'VertexLabeling',
+            'VertexLabels',
+            'VertexList',
+            'VertexNormals',
+            'VertexOutComponent',
+            'VertexOutDegree',
+            'VertexQ',
+            'VertexRenderingFunction',
+            'VertexReplace',
+            'VertexShape',
+            'VertexShapeFunction',
+            'VertexSize',
+            'VertexStyle',
+            'VertexTextureCoordinates',
+            'VertexWeight',
+            'VerticalBar',
+            'VerticalGauge',
+            'VerticalSeparator',
+            'VerticalSlider',
+            'VerticalTilde',
+            'ViewAngle',
+            'ViewCenter',
+            'ViewMatrix',
+            'ViewPoint',
+            'ViewRange',
+            'ViewVector',
+            'ViewVertical',
+            'Visible',
+            'VoigtDistribution',
+            'VolcanoData',
+            'Volume',
+            'VonMisesDistribution',
+            'VoronoiMesh',
+
+            'WaitAll',
+            'WaitAsynchronousTask',
+            'WaitNext',
+            'WakebyDistribution',
+            'WalleniusHypergeometricDistribution',
+            'WaringYuleDistribution',
+            'WarpingCorrespondence',
+            'WarpingDistance',
+            'WatershedComponents',
+            'WatsonUSquareTest',
+            'WattsStrogatzGraphDistribution',
+            'WaveletBestBasis',
+            'WaveletFilterCoefficients',
+            'WaveletImagePlot',
+            'WaveletListPlot',
+            'WaveletMapIndexed',
+            'WaveletMatrixPlot',
+            'WaveletPhi',
+            'WaveletPsi',
+            'WaveletScale',
+            'WaveletScalogram',
+            'WaveletThreshold',
+            'WeakStationarity',
+            'WeaklyConnectedComponents',
+            'WeaklyConnectedGraphComponents',
+            'WeaklyConnectedGraphQ',
+            'WeatherData',
+            'WeatherForecastData',
+            'WeberE',
+            'Wedge',
+            'Wednesday',
+            'WeibullDistribution',
+            'WeierstrassHalfPeriods',
+            'WeierstrassInvariants',
+            'WeierstrassP',
+            'WeierstrassPPrime',
+            'WeierstrassSigma',
+            'WeierstrassZeta',
+            'WeightedAdjacencyGraph',
+            'WeightedAdjacencyMatrix',
+            'WeightedData',
+            'WeightedGraphQ',
+            'Weights',
+            'WelchWindow',
+            'WheelGraph',
+            'WhenEvent',
+            'Which',
+            'While',
+            'White',
+            'WhiteNoiseProcess',
+            'WhitePoint',
+            'Whitespace',
+            'WhitespaceCharacter',
+            'WhittakerM',
+            'WhittakerW',
+            'WienerFilter',
+            'WienerProcess',
+            'WignerD',
+            'WignerSemicircleDistribution',
+            'WikipediaData',
+            'WikipediaSearch',
+            'WilksW',
+            'WilksWTest',
+            'WindDirectionData',
+            'WindSpeedData',
+            'WindVectorData',
+            'WindowClickSelect',
+            'WindowElements',
+            'WindowFloating',
+            'WindowFrame',
+            'WindowMargins',
+            'WindowMovable',
+            'WindowOpacity',
+            'WindowSize',
+            'WindowStatusArea',
+            'WindowTitle',
+            'WindowToolbars',
+            'WishartMatrixDistribution',
+            'With',
+            'WolframAlpha',
+            'WolframLanguageData',
+            'Word',
+            'WordBoundary',
+            'WordCharacter',
+            'WordCloud',
+            'WordCount',
+            'WordCounts',
+            'WordData',
+            'WordDefinition',
+            'WordFrequency',
+            'WordFrequencyData',
+            'WordList',
+            'WordOrientation',
+            'WordSearch',
+            'WordSeparators',
+            'WordSpacings',
+            'WordStem',
+            'WordTranslation',
+            'WorkingPrecision',
+            'WrapAround',
+            'Write',
+            'WriteLine',
+            'WriteString',
+            'Wronskian',
+
+            'XMLElement',
+            'XMLObject',
+            'XMLTemplate',
+            'XYZColor',
+            'Xnor',
+            'Xor',
+
+            'Yellow',
+            'Yesterday',
+            'YuleDissimilarity',
+
+            'ZIPCodeData',
+            'ZTest',
+            'ZTransform',
+            'ZernikeR',
+            'ZeroSymmetric',
+            'ZeroTest',
+            'Zeta',
+            'ZoomCenter',
+            'ZetaZero',
+            'ZipfDistribution',
+            'ZoomFactor'
+        )
+    ),
+    'CASE_SENSITIVE' => array(
+        1 => true
+    ),
+    'SYMBOLS' => array(
+        1 => array(
+            '@', '//', '/@', '@@', '@@@', '#', '&', //functions
+            '=', ':=', '+=', '-=', '*=', '/=', //assignments
+            '^', '+' ,'-', '/', '*', '>', '<', '%', //math
+            '||', '&&', //logic
+            '/.', '/;', '->', ':>' //rules
+        ),
+        2 => array( // Wolfram
+            '$Aborted',
+            '$AllowExternalChannelFunctions',
+            '$AssertFunction',
+            '$Assumptions',
+            '$AsynchronousTask',
+            '$AudioOutputDevices',
+
+            '$BaseDirectory',
+            '$BatchInput',
+            '$BatchOutput',
+            '$ByteOrdering',
+
+            '$CacheBaseDirectory',
+            '$Canceled',
+            '$ChannelBase',
+            '$CharacterEncoding',
+            '$CharacterEncodings',
+            '$CloudBase',
+            '$CloudConnected',
+            '$CloudCreditsAvailable',
+            '$CloudEvaluation',
+            '$CloudExpressionBase',
+            '$CloudRootDirectory',
+            '$CloudSymbolBase',
+            '$CommandLine',
+            '$CompilationTarget',
+            '$ConfiguredKernels',
+            '$Context',
+            '$ContextPath',
+            '$ControlActiveSetting',
+            '$CookieStore',
+            '$Cookies',
+            '$CreationDate',
+            '$CurrentLink',
+
+            '$DateStringFormat',
+            '$DefaultAudioOutputDevice',
+            '$DefaultImagingDevice',
+            '$DefaultLocalBase',
+            '$Display',
+            '$DisplayFunction',
+            '$DistributedContexts',
+            '$DynamicEvaluation',
+
+            '$Echo',
+            '$EmbedCodeEnvironments',
+            '$EmbeddableServices',
+            '$EntityStores',
+            '$Epilog',
+            '$EvaluationCloudObject',
+            '$EvaluationEnvironment',
+            '$ExportFormats',
+
+            '$Failed',
+            '$FontFamilies',
+            '$FrontEnd',
+            '$FrontEndSession',
+
+            '$GeoLocation',
+            '$GeoLocationCity',
+            '$GeoLocationCountry',
+            '$GeoLocationSource',
+
+            '$HistoryLength',
+            '$HomeDirectory',
+
+            '$IgnoreEOF',
+            '$ImageFormattingWidth',
+            '$ImagingDevice',
+            '$ImagingDevices',
+            '$ImportFormats',
+            '$InitialDirectory',
+            '$Input',
+            '$InputFileName',
+            '$InputStreamMethods',
+            '$Inspector',
+            '$InstallationDirectory',
+            '$InterpreterTypes',
+            '$IterationLimit',
+
+            '$KernelCount',
+            '$KernelID',
+
+            '$Language',
+            '$LibraryPath',
+            '$LicenseExpirationDate',
+            '$LicenseID',
+            '$LicenseServer',
+            '$Line',
+            '$Linked',
+            '$LocalBase',
+            '$LocalSymbolBase',
+
+            '$MachineAddresses',
+            '$MachineDomains',
+            '$MachineEpsilon',
+            '$MachineID',
+            '$MachineName',
+            '$MachinePrecision',
+            '$MachineType',
+            '$MaxExtraPrecision',
+            '$MaxMachineNumber',
+            '$MaxNumber',
+            '$MaxPiecewiseCases',
+            '$MaxPrecision',
+            '$MaxRootDegree',
+            '$MessageGroups',
+            '$MessageList',
+            '$MessagePrePrint',
+            '$Messages',
+            '$MinMachineNumber',
+            '$MinNumber',
+            '$MinPrecision',
+            '$ModuleNumber',
+
+            '$NewMessage',
+            '$NewSymbol',
+            '$Notebooks',
+            '$NumberMarks',
+
+            '$OperatingSystem',
+            '$Output',
+            '$OutputSizeLimit',
+            '$OutputStreamMethods',
+
+            '$Packages',
+            '$ParentLink',
+            '$ParentProcessID',
+            '$Path',
+            '$PathnameSeparator',
+            '$PerformanceGoal',
+            '$Permissions',
+            '$PlotTheme',
+            '$Post',
+            '$Pre',
+            '$PrePrint',
+            '$PreRead',
+            '$Printout3DPreviewer',
+            '$ProcessID',
+            '$ProcessorCount',
+            '$ProcessorType',
+
+            '$RecursionLimit',
+            '$ReleaseNumber',
+            '$RequesterAddress',
+            '$RequesterWolframID',
+            '$RequesterWolframUUID',
+            '$RootDirectory',
+
+            '$ScheduledTask',
+            '$ScriptCommandLine',
+            '$ScriptInputString',
+            '$Services',
+            '$SessionID',
+            '$SharedFunctions',
+            '$SharedVariables',
+            '$SoundDisplayFunction',
+            '$SourceLink',
+            '$SynchronousEvaluation',
+            '$SyntaxHandler',
+            '$System',
+            '$SystemCharacterEncoding',
+            '$SystemID',
+            '$SystemShell',
+            '$SystemTimeZone',
+            '$SystemWordLength',
+
+            '$TemplatePath',
+            '$TemporaryDirectory',
+            '$TimeUnit',
+            '$TimeZone',
+            '$TimeZoneEntity',
+            '$TimedOut',
+
+            '$UnitSystem',
+            '$Urgent',
+            '$UserAgentString',
+            '$UserBaseDirectory',
+            '$UserDocumentsDirectory',
+            '$UserName',
+
+            '$Version',
+            '$VersionNumber',
+
+            '$WolframID',
+            '$WolframUUID',
+        ),
+        3 => array( // array stuff
+            '{', '}', '[[', ']]', '<|', '|>'
+        ),
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #FF7700; font-weight: bold;',
+        ),
+        'COMMENTS' => array(
+            'MULTI' => 'color: #999999; font-style: italic;',
+        ),
+        'ESCAPE_CHAR' => array(
+            1 => '',
+        ),
+        'BRACKETS' => array(),
+        'STRINGS' => array(
+            1 => 'color: #666666; font-style: italic;',
+        ),
+        'NUMBERS' => array(
+        ),
+        'METHODS' => array(),
+        'SYMBOLS' => array(
+            1 => 'color: #133CAC; font-weight: bold;',
+            2 => 'color: #028E9B; font-weight: bold;',
+            3 => 'color: #FFAD00; font-weight: bold;',
+        ),
+        //'BRACKETS' => array(
+        //0 => 'color: #8C0953; font-weight: bold;', // array
+        //),
+        'REGEXPS' => array(
+            0 => 'color: #133CAC; font-weight: bold;',
+        ),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => 'http://reference.wolfram.com/language/ref/{FNAME}.html'
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        0 => '#[1-9][0-9]*'
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 4
+);
diff --git a/vendor/easybook/geshi/geshi/matlab.php b/vendor/geshi/geshi/src/geshi/matlab.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/matlab.php
rename to vendor/geshi/geshi/src/geshi/matlab.php
index e228a087182fa28a2b6d164f6b5ad10422def19f..f6e8ee5f208b503f63c9afc8d1cfa720768716f5 100644
--- a/vendor/easybook/geshi/geshi/matlab.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/02/09
  *
  * Matlab M-file language file for GeSHi.
@@ -223,4 +223,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/mercury.php b/vendor/geshi/geshi/src/geshi/mercury.php
new file mode 100644
index 0000000000000000000000000000000000000000..9f77e4b6eae76951e79cf02fe2bf109262502a87
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/mercury.php
@@ -0,0 +1,130 @@
+<?php
+/*************************************************************************************
+ * mercury.php
+ * --------
+ * Author: Sebastian Godelet (sebastian.godelet+github@gmail.com)
+ * Copyright: (c) 2014
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/10/30
+ *
+ * Mercury language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/10/30 (1.0.8.13)
+ *  -  First Release
+ *
+ * TODO (updated 2014/10/30)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     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' => 'Mercury',
+    'COMMENT_SINGLE' => array(1 => '%'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'HARDQUOTE' => array("'", "'"),
+    'HARDESCAPE' => array('"', "\'"),
+    'HARDCHAR' => '"',
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '\\',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        1 => array(
+            'end_module', 'finalise', 'finalize', 'func', 'implementation',
+            'include_module', 'initalisation', 'initialization',
+            'instance', 'interface',
+            'import_module', 'module', 'pragma', 'pred',
+            'type', 'typeclass', 'use_module'
+        ),
+        2 => array(
+            'atomic', 'foreign_code', 'foreign_export', 'foreign_type', 'memo'
+        )
+    ),
+    'SYMBOLS' => array(
+        0 => array('(', ')', '[', ']', '{', '}',),
+        1 => array('?-', ':-', '=:='),
+        2 => array('\-', '\+', '\*', '\/', '/\\'),
+        3 => array('-', '+', '*', '/'),
+        4 => array('.', ':', ',', ';'),
+        5 => array('!', '@', '&', '|', '!.', '!:'),
+        6 => array('<', '>', '=')
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #990000;',
+            2 => 'color: #99aa77;'
+        ),
+        '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://www.mercurylang.org',
+        2 => 'http://www.mercurylang.org'
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        //Variables
+        0 => "(?<![a-zA-Z0-9_])(?!(?:PIPE|SEMI|DOT)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])(?!\x7C)"
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 4
+);
diff --git a/vendor/geshi/geshi/src/geshi/metapost.php b/vendor/geshi/geshi/src/geshi/metapost.php
new file mode 100644
index 0000000000000000000000000000000000000000..f5944cbc8260dce068b89725acfe6cd85fb977b7
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/metapost.php
@@ -0,0 +1,399 @@
+<?php
+/*************************************************************************************
+ * metapost.php
+ * -----------
+ * Author: Maxime Chupin (notezik@gmail.com)
+ * Copyright: (c) 2011 Maxime Chupin
+ * Release Version: 1.0.9.0
+ * Date Started: 2011/08/02
+ *
+ * Metapost language file for GeSHi.
+ *
+ * https://en.wikipedia.org/wiki/MetaPost
+ *
+ *************************************************************************************
+ *
+ *     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' => 'MetaPost',
+    'COMMENT_SINGLE' => array(1 => '%'),
+    'COMMENT_MULTI' => array(
+        'verbatim'=>'etex', //TeX and LaTeX preambule
+        'btex' => 'etex' //TeX invocation
+    ),
+    'COMMENT_REGEXP' => array(
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array( //type
+            'boolean',
+            'color', 'cmykcolor',
+            'expr',
+            'numeric',
+            'pair', 'path', 'pen', 'picture',
+            'string', 'suffix',
+            'text', 'transform',
+        ),
+        2 => array( //file construction
+            'beginfig', 'begingroup',
+            'def',
+            'end', 'enddef', 'endfig', 'endgroup',
+            'hide',
+            'image', 'input',
+            'let',
+            'makepen', 'makepath',
+            'newinternal',
+            'primary', 'primarydef',
+            'save', 'secondarydef', 'shipout', 'special',
+            'tertiarydef',
+            'vardef'
+        ),
+        3 => array( //programmation structure
+            'else', 'elseif', 'endfor', 'exitif', 'exitunless',
+            'fi', 'for', 'forever', 'forsuffix',
+            'if',
+            'step',
+            'until', 'upto',
+        ),
+        4 => array( //operations return pair
+            'bot',
+            'dir', 'direction of',
+            'intersectionpoint', 'intiersectiontimes',
+            'lft', 'llcorner', 'lrcorner',
+            'penoffset of', 'point of', 'postcontrol of', 'precontrol of',
+            'rt',
+            'top',
+            'ulcorner', 'unitvector', 'urcorner',
+            'z',
+        ),
+        5 => array( //operations return path or picture or pen
+            'bbox',
+            'center', 'cutafter', 'cutbefore',
+            'dashpart', 'dashpattern',
+            'glyph of',
+            'infont',
+            'pathpart', 'penpart',
+            'reverse',
+            'subpath of',
+        ),
+        6 => array( //operations return string (or complementary)
+            'closefrom',
+            'fontpart',
+            'readfrom',
+            'str', 'substring of',
+            'textpart'
+        ),
+        7 => array( // operations return numeric
+            'abs', 'angle', 'arclength', 'arctime of', 'ASCII',
+            'blackpart', 'bluepart',
+            'ceiling', 'char', 'colormodel', 'cosd', 'cyanpart',
+            'decimal', 'decr', 'directionpoint of', 'directiontime of',
+            'div', 'dotprod',
+            'floor', 'fontsize',
+            'greenpart', 'greypart',
+            'hex',
+            'incr',
+            'length',
+            'magentapart', 'max', 'mexp', 'min', 'mlog', 'mod',
+            'normaldeviate',
+            'oct',
+            'redpart', 'round',
+            'sind', 'sqrt',
+            'uniformdeviate',
+            'xpart', 'xxpart', 'xypart',
+            'yellowpart', 'ypart', 'yxpart', 'yypart',
+        ),
+        8 => array( // operations return boolean
+            'and',
+            'bounded',
+            'clipped',
+            'filled',
+            'known',
+            'not',
+            'odd',
+            'or',
+            'rgbcolor',
+            'stroked',
+            'textual',
+            'unknown'
+        ),
+        9 => array( //operations return color
+            'colorpart'
+        ),
+        10 => array( //operations return transform
+            'inverse'
+        ),
+        11 => array( //constructors
+            'also',
+            'buildcycle',
+            'contour', 'controls', 'cycle',
+            'doublepath',
+            'setbounds',
+            'to',
+            'whatever'
+        ),
+        12 => array( //labels
+            'label',
+            'label.bot',
+            'label.top',
+            'label.llft',
+            'label.lft',
+            'label.ulft',
+            'label.lrt',
+            'label.rt',
+            'label.urt',
+
+            'labels',
+            'labels.bot',
+            'labels.top',
+            'labels.llft',
+            'labels.lft',
+            'labels.ulft',
+            'labels.lrt',
+            'labels.rt',
+            'labels.urt',
+
+            'thelabel',
+            'thelabel.bot',
+            'thelabel.top',
+            'thelabel.llft',
+            'thelabel.lft',
+            'thelabel.ulft',
+            'thelabel.lrt',
+            'thelabel.rt',
+            'thelabel.urt',
+
+            'dotlabel',
+            'dotlabel.bot',
+            'dotlabel.top',
+            'dotlabel.llft',
+            'dotlabel.lft',
+            'dotlabel.ulft',
+            'dotlabel.lrt',
+            'dotlabel.rt',
+            'dotlabel.urt',
+        ),
+        13 => array( //general transformations
+            'about',
+            'reflected', 'reflectedaround',
+            'rotated', 'rotatedabout', 'rotatedaround',
+            'scaled', 'slanted', 'shifted',
+            'transformed',
+            'xscaled',
+            'yscaled',
+            'zscaled',
+        ),
+        14 => array( //draw instructions
+            'addto',
+            'clip', 'cutdraw',
+            'draw', 'drawarrow', 'drawdblarrow', 'drawdot',
+            'fill', 'filldraw',
+            'undraw', 'unfill', 'unfilldraw'
+        ),
+        15 => array( //style of drawing
+            'curl',
+            'dashed', 'drawoptions',
+            'pickup',
+            'tension',
+            'withcmykcolor', 'withcolor',
+            'withgreyscale', 'withpen', 'withpostscript', 'withprescript',
+            'withrgbcolor',
+        ),
+        16 => array( //read write show
+            'errhelp', 'errmessage',
+            'fontmapfile', 'fontmapline',
+            'interim',
+            'loggingall',
+            'message',
+            'scantokens', 'show', 'showdependencies', 'showtoken', 'showvariable',
+            'tracingall', 'tracingnone',
+            'write to',
+        ),
+        17 => array( //Internal variables with numeric values
+            'ahangle', 'ahlength',
+            'bboxmargin',
+            'charcode',
+            'day', 'defaultcolormodel', 'defaultpen', 'defaultscale',
+            'dotlabeldiam',
+            'hour',
+            'labeloffset',
+            'linecap', 'linejoin',
+            'minute', 'miterlimit', 'month', 'mpprocset',
+            'pausing', 'prologues',
+            'restoreclipcolor',
+            'showstopping',
+            'time',
+            'tracingcapsules', 'tracingchoices', 'tracingcommands',
+            'tracingequations', 'tracinglostchars', 'tracingmacros',
+            'tracingonline', 'tracingoutput', 'tracingrestores',
+            'tracingspecs', 'tracingstats', 'tracingtitles',
+            'troffmode', 'truecorners',
+            'warningcheck',
+            'year',
+        ),
+        18 => array( //Internal string variables
+            'filenametemplate',
+            'jobname',
+            'outputformat', 'outputtemplate',
+        ),
+        19 => array( //other predefined variables
+            'background',
+            'currentpen', 'currentpicture', 'cuttings',
+            'defaultfont',
+            'extra_beginfig', 'extra_endfig',
+        ),
+        20 => array( //predefined constants
+            'beveled', 'black', 'blue', 'bp', 'butt',
+            'cc', 'cm',
+            'dd', 'ditto', 'down',
+            'epsilon', 'evenly', 'EOF',
+            'false', 'fullcircle',
+            'green',
+            'halfcircle',
+            'identity',
+            'left',
+            'mitered', 'mm', 'mpversion',
+            'nullpen', 'nullpicture',
+            'origin',
+            'pc', 'pencircle', 'pensquare', 'pt',
+            'quartercircle',
+            'red', 'right', 'rounded',
+            'squared',
+            'true',
+            'unitsquare', 'up',
+            'white', 'withdots',
+        )
+    ),
+    'SYMBOLS' => array(
+        '&', ':=', '=', '+', '-',
+        '*', '**', '/', '++', '+-+',
+        '<', '>', '>=', '<=', '<>',
+        '#@', '@', '@#'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        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,
+        18 => true,
+        19 => true,
+        20 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1  => 'color: #472;', //type
+            2  => 'color: #35A;font-weight: bold;', //file construction
+            3  => 'color: #A53;', //structure
+            4  => 'color: #35A;', //operations return pair
+            5  => 'color: #35A;', //operations return path or picture or pen
+            6  => 'color: #35A;', //operations return string
+            7  => 'color: #35A;', //operations return numeric
+            8  => 'color: #35A;', //operations return boolean
+            9  => 'color: #35A;', //operations return color
+            10 => 'color: #35A;', //operations return transform
+            11 => 'color: #35A;', //constructors
+            12 => 'color: #35A;', //labels
+            13 => 'color: #3B5;', //general transformations
+            14 => 'color: #35A;', //draw instructions
+            15 => 'color: #472;', //style of drawing
+            16 => 'color: #000;', //read write show
+            17 => 'color: #000;', //Internal variables with numeric values
+            18 => 'color: #000;', //Internal string variables
+            19 => 'color: #000;', //other predefined variables
+            20 => 'color: #000;'  //predefined constants
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #777;',
+            'MULTI' => 'color: #880;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #820;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #880;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #000;'
+        ),
+        'METHODS' => array(
+            1 => '',
+            2 => ''
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #000;'
+        ),
+        'REGEXPS' => array(
+        ),
+        'SCRIPT' => array(
+            0 => ''
+        )
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => '',
+        9 => '',
+        10 => '',
+        11 => '',
+        12 => '',
+        13 => '',
+        14 => '',
+        15 => '',
+        16 => '',
+        17 => '',
+        18 => '',
+        19 => '',
+        20 => ''
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+    ),
+    'REGEXPS' => array(
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+    ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/mirc.php b/vendor/geshi/geshi/src/geshi/mirc.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/mirc.php
rename to vendor/geshi/geshi/src/geshi/mirc.php
index 3de6d09badeb74110e395e3d58772cdbf9d20812..4aea845e8b7df7c7b2f291314323b351d43bbcb2 100644
--- a/vendor/easybook/geshi/geshi/mirc.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/05/29
  *
  * mIRC Scripting language file for GeSHi.
@@ -125,7 +125,7 @@ $language_data = array (
     'URLS' => array(
         1 => '',
         2 => '',
-        3 => 'http://www.mirc.com/{FNAMEL}'
+        3 => 'http://en.wikichip.org/wiki/mirc/commands/{FNAMEL}'
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array('.'),
@@ -167,4 +167,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/mk-61.php b/vendor/geshi/geshi/src/geshi/mk-61.php
new file mode 100644
index 0000000000000000000000000000000000000000..653a3363d7e86143c5dcfe93e0080142653711f9
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/mk-61.php
@@ -0,0 +1,106 @@
+<?php
+/*********************************************************************
+ * МК-61/52 language file for GeSHi.
+ *
+ * Author: Russkiy
+ * Copyright: (c) 2014 Russkiy
+ * Release Version: 1.0.9.0
+ * Date Started: 2014-03-11
+ *
+ *********************************************************************
+ *
+ *     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' => 'МК-61/52',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(),
+    'SYMBOLS' => array(),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(),
+        'COMMENTS' => array(),
+        'ESCAPE_CHAR' => array(),
+        'BRACKETS' => array(),
+        'STRINGS' => array(),
+        'NUMBERS' => array(),
+        'METHODS' => array(),
+        'SYMBOLS' => array(),
+        'SCRIPT' => array(),
+        'REGEXPS' => array(
+            1 => 'color:#000000;',
+            2 => 'color:#A0A000;',
+            3 => 'color:#00A000;',
+            4 => 'color:#A00000;',
+            5 => 'color:#0000A0;',
+            6 => 'text-decoration: underline; color: #A000A0;',
+            7 => 'font-size: 75%; color: #A0A0A0;'
+        )
+    ),
+    'URLS' => array(),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        1 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)((F|K|К)?(пи|π|СЧ|KСЧ|КСЧ|,|\.|\/\-\/|\+\/\-|ВП))(\s|\t|$)',
+            GESHI_REPLACE => '\\4',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1<span style="font-weight:lighter;font-size:90%;color:#404040;">\\3</span>', GESHI_AFTER => '\\5'
+        ),
+        2 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)((F|K|К)?(НОП|&lt;\-&gt;|XY|↔|X↔Y|\^|В\^|↑|В↑|Вx|Вx|Сx|\-&gt;|↻|→))(\s|\t|$)',
+            GESHI_REPLACE => '\\4',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1<span style="font-weight:lighter;font-size:90%;color:#404040;">\\3</span>', GESHI_AFTER => '\\5'
+        ),
+        3 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)((K|К)?(П|XП|ИП|ПX|Пx)(\d|[A-E]|[a-e]|(А|В|С|Д|Е)))(\s|\t|$)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1', GESHI_AFTER => '\\7'
+        ),
+        4 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)((F|K|К)?(10\^x|10x|e\^x|ex|lg|ln|ЧМ|arcsin|<PIPE>x<PIPE>|arccos|ЗН|arctg|ГМ|sin|\[x\]|cos|\{x\}|\(x\)|tg|max|\+|\-|\*|x|х|×|⋅|\/|\:|÷|МГ|КвКор|квкор|корень|√|x\^2|x2|x²|1\/x|x\^y|xy|МЧ|\x2F\x5C|⋀|\x5C\x2F|⋁|\(\+\)|⊕|ИНВ))(\s|\t|$)',
+            GESHI_REPLACE => '\\4',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1<span style="font-weight:lighter;font-size:90%;color:#404040;">\\3</span>', GESHI_AFTER => '\\5'
+        ),
+        5 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)((F?)((K|К)?(В\/О|В\/0|С\/П|x&gt;\=0|x≥0|x≥0|x⩾0|x\#0|x\!\=0|x&lt;&gt;0|x≠0|БП|ПП|L2|L3|x&lt;0|x\=0|L0|L1)))(\s|\t|$)',
+            GESHI_REPLACE => '\\4',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1<span style="font-weight:lighter;font-size:90%;color:#404040;">\\3</span>', GESHI_AFTER => '\\7'
+        ),
+        6 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)(\d{2})(\s|\t|$)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1', GESHI_AFTER => '\\3'
+        ),
+        7 => array(
+            GESHI_SEARCH => '(\s|\t|^|\G|\.)([\d\-A]\d\.)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1', GESHI_AFTER => ''
+        )
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'PARSER_CONTROL' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/mmix.php b/vendor/geshi/geshi/src/geshi/mmix.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/mmix.php
rename to vendor/geshi/geshi/src/geshi/mmix.php
index 92cdf61b29434630139cddf262f7451ca06a0e30..5c8178c043efc4c9d5ff87e1b18c9af13a48e3d8 100644
--- a/vendor/easybook/geshi/geshi/mmix.php
+++ b/vendor/geshi/geshi/src/geshi/mmix.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/16
  *
  * MMIX Assembler language file for GeSHi.
@@ -189,4 +189,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/modula2.php b/vendor/geshi/geshi/src/geshi/modula2.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/modula2.php
rename to vendor/geshi/geshi/src/geshi/modula2.php
index 3b7ae8acf2b6d570eb008bf79782b1bc20138e82..2a20973b6476b6ac02b8333d77881fc78e25011e 100644
--- a/vendor/easybook/geshi/geshi/modula2.php
+++ b/vendor/geshi/geshi/src/geshi/modula2.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Benjamin Kowarsch (benjamin@modula2.net)
  * Copyright: (c) 2009 Benjamin Kowarsch (benjamin@modula2.net)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/11/05
  *
  * Modula-2 language file for GeSHi.
@@ -132,4 +132,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/modula3.php b/vendor/geshi/geshi/src/geshi/modula3.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/modula3.php
rename to vendor/geshi/geshi/src/geshi/modula3.php
index 7f6e0153afc0d0b3cd638efdb9c1e1813d4f8f12..b3c223caddf4f6e730f379f9259119901e0e7de7 100644
--- a/vendor/easybook/geshi/geshi/modula3.php
+++ b/vendor/geshi/geshi/src/geshi/modula3.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: mbishop (mbishop@esoteriq.org)
  * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/01/21
  *
  * Modula-3 language file for GeSHi.
@@ -131,4 +131,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/mpasm.php b/vendor/geshi/geshi/src/geshi/mpasm.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/mpasm.php
rename to vendor/geshi/geshi/src/geshi/mpasm.php
index a0e1ef8fffe6d7151991b07acdef5fd1742ddb9e..e6cf70e6cb2df96b2b8fae79b53f9167d67053c4 100644
--- a/vendor/easybook/geshi/geshi/mpasm.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/12/6
  *
  * Microchip Assembler language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/mxml.php b/vendor/geshi/geshi/src/geshi/mxml.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/mxml.php
rename to vendor/geshi/geshi/src/geshi/mxml.php
index 60dfe5f32c3159b8dda1445e95f62feabfa6250f..4bac67252daebeec247072a63c10a399b4528135 100644
--- a/vendor/easybook/geshi/geshi/mxml.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/10/04
  *
  * MXML language file for GeSHi. Based on the XML file by Nigel McNie
diff --git a/vendor/easybook/geshi/geshi/mysql.php b/vendor/geshi/geshi/src/geshi/mysql.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/mysql.php
rename to vendor/geshi/geshi/src/geshi/mysql.php
index d21f96a737f972e7c06c9cf8934a6e59e3c1838f..e62a122d26cbc25cf1458bbba8eafcdc3b5645c8 100644
--- a/vendor/easybook/geshi/geshi/mysql.php
+++ b/vendor/geshi/geshi/src/geshi/mysql.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Marjolein Katsma (marjolein.is.back@gmail.com)
  * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008-12-12
  *
  * MySQL language file for GeSHi.
@@ -313,7 +313,6 @@ $language_data = array (
         11 => false,
         12 => false,
         13 => false,
-        13 => false,
         14 => false,
         15 => false,
         16 => false,
@@ -471,4 +470,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/nagios.php b/vendor/geshi/geshi/src/geshi/nagios.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/nagios.php
rename to vendor/geshi/geshi/src/geshi/nagios.php
index 47254311ce541c61cdc4173c604114087ed0b3a3..ac6d63a902873b102c0c3127ff62e47e93052738 100644
--- a/vendor/easybook/geshi/geshi/nagios.php
+++ b/vendor/geshi/geshi/src/geshi/nagios.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Albéric de Pertat <alberic@depertat.net>
  * Copyright: (c) 2012 Albéric de Pertat (https://github.com/adepertat/geshi-nagios)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/01/19
  *
  * Nagios language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/netrexx.php b/vendor/geshi/geshi/src/geshi/netrexx.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/netrexx.php
rename to vendor/geshi/geshi/src/geshi/netrexx.php
index b038aa4d5198bc5e253ce91bdd31a83f29290255..38e09fafbc7893c20f8e0a54cb668b942b03e6a9 100644
--- a/vendor/easybook/geshi/geshi/netrexx.php
+++ b/vendor/geshi/geshi/src/geshi/netrexx.php
@@ -6,7 +6,7 @@
  * Contributors:
  *    - Walter Pachl (pachl@chello.at)
  * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/01/07
  *
  * NetRexx language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/newlisp.php b/vendor/geshi/geshi/src/geshi/newlisp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/newlisp.php
rename to vendor/geshi/geshi/src/geshi/newlisp.php
index 2e064743e168d5f96b9ddeab2702edf3f31e439d..b5a943152e82c7d4cbce2109c359054d9c65939b 100644
--- a/vendor/easybook/geshi/geshi/newlisp.php
+++ b/vendor/geshi/geshi/src/geshi/newlisp.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: cormullion (cormullion@mac.com) Sept 2009
  * Copyright: (c) 2009 Cormullion (http://unbalanced-parentheses.nfshost.com/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/09/30
  *
  * newLISP language file for GeSHi.
@@ -187,4 +187,3 @@ $language_data = array (
         ),
 
 );
-
diff --git a/vendor/easybook/geshi/geshi/nginx.php b/vendor/geshi/geshi/src/geshi/nginx.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/nginx.php
rename to vendor/geshi/geshi/src/geshi/nginx.php
index 0d4fe3b4f94b9aebbeb5d554c1bc0a11200bc8c0..47ced0ab2a7c6979fc13baebcfaa6d3817d499ff 100644
--- a/vendor/easybook/geshi/geshi/nginx.php
+++ b/vendor/geshi/geshi/src/geshi/nginx.php
@@ -7,7 +7,7 @@
  * Contributors:
  *  - Deoren Moor (http://www.whyaskwhy.org/blog/)
  *  - Thomas Joiner
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2010/08/24
  *
  * nginx language file for GeSHi.
diff --git a/vendor/geshi/geshi/src/geshi/nimrod.php b/vendor/geshi/geshi/src/geshi/nimrod.php
new file mode 100644
index 0000000000000000000000000000000000000000..a85edfbbcf5b09f58493386ba9a6fdf73a752d5b
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/nimrod.php
@@ -0,0 +1,201 @@
+<?php
+/*************************************************************************************
+ * nimrod.php
+ * ----------
+ * Author: Dennis Felsing (dennis@felsin9.de)
+ * Copyright: (c) 2014 Dennis Felsing
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/07/15
+ *
+ * Nimrod language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/07/15 (1.0.8.13)
+ *  -  First Release
+ *
+ * TODO (updated 2014/07/15)
+ * -------------------------
+ * - Int literals like 50'u8
+ *
+ *************************************************************************************
+ *
+ *     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' => 'Nimrod',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    //Longest quotemarks ALWAYS first
+    'QUOTEMARKS' => array('"""', '"'),
+    'ESCAPE_CHAR' => '\\',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX_0O | 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(
+
+        /*
+        ** Set 1: reserved words
+        ** http://nimrod-lang.org/manual.html#identifiers-keywords
+        */
+        1 => array(
+            'addr', 'and', 'as', 'asm', 'atomic',
+            'bind', 'block', 'break',
+            'case', 'cast', 'const', 'continue', 'converter',
+            'discard', 'distinct', 'div', 'do',
+            'elif', 'else', 'end', 'enum', 'except', 'export',
+            'finally', 'for', 'from',
+            'generic',
+            'if', 'import', 'in', 'include', 'interface', 'is', 'isnot', 'iterator',
+            'lambda', 'let',
+            'macro', 'method', 'mixin', 'mod',
+            'nil', 'not', 'notin',
+            'object', 'of', 'or', 'out',
+            'proc',
+            'raise', 'ref', 'return',
+            'shl', 'shr', 'static',
+            'template', 'try', 'tuple', 'type',
+            'using',
+            'var',
+            'when', 'while', 'with', 'without',
+            'xor',
+            'yield'
+            ),
+
+        2 => array(
+            'true', 'false'
+            ),
+
+        3 => array(
+            /* system module */
+            'abs', 'accumulateResult', 'add', 'addAndFetch', 'addQuitProc',
+            'alloc', 'alloc0', 'allocCStringArray', 'allocShared',
+            'allocShared0', 'assert', 'astToStr', 'atomicDec', 'atomicInc',
+            'card', 'chr', 'clamp', 'close', 'cmp', 'compileOption',
+            'compiles', 'contains', 'copy', 'copyMem', 'countdown', 'countup',
+            'create', 'createShared', 'createSharedU', 'createU',
+            'cstringArrayToSeq', 'currentSourcePath', 'dealloc',
+            'deallocCStringArray', 'deallocShared', 'debugEcho', 'dec',
+            'defined', 'definedInScope', 'del', 'delete', 'doAssert', 'each',
+            'echo', 'endOfFile', 'equalMem', 'excl', 'failedAssertImpl',
+            'fieldPairs', 'fields', 'fileHandle', 'find', 'finished',
+            'flushFile', 'free', 'freeShared', 'GC_addCycleRoot', 'GC_disable',
+            'GC_disableMarkAndSweep', 'GC_enable', 'GC_enableMarkAndSweep',
+            'GC_fullCollect', 'GC_getStatistics', 'gcInvariant', 'GC_ref',
+            'GC_setStrategy', 'GC_unref', 'getCurrentException',
+            'getCurrentExceptionMsg', 'getFilePos', 'getFileSize',
+            'getFreeMem', 'getOccupiedMem', 'getRefcount', 'getStackTrace',
+            'getTotalMem', 'getTypeInfo', 'gorge', 'high', 'inc', 'incl',
+            'insert', 'instantiationInfo', 'internalNew', 'isNil', 'isOnStack',
+            'isStatic', 'items', 'len', 'likely', 'lines', 'locals', 'low',
+            'map', 'max', 'min', 'moveMem', 'new', 'newException', 'newSeq',
+            'newString', 'newStringOfCap', 'newWideCString', 'nimDestroyRange',
+            'onFailedAssert', 'onRaise', 'open', 'ord', 'pairs', 'pop', 'pred',
+            'quit', 'raiseAssert', 'rand', 'rawEnv', 'rawProc', 'readAll',
+            'readBuffer', 'readBytes', 'readChar', 'readChars', 'readFile',
+            'readLine', 'realloc', 'reallocShared', 'reopen', 'repr', 'reset',
+            'resize', 'safeAdd', 'setControlCHook', 'setFilePos', 'setLen',
+            'shallow', 'shallowCopy', 'sizeof', 'slurp', 'staticExec',
+            'staticRead', 'stdmsg', 'substr', 'succ', 'swap', 'toBiggestFloat',
+            'toBiggestInt', 'toFloat', 'toInt', 'toU16', 'toU32', 'toU8',
+            'unlikely', 'unsafeNew', 'write', 'writeBuffer', 'writeBytes',
+            'writeChars', 'writeFile', 'writeln', 'writeStackTrace', 'ze',
+            'ze64', 'zeroMem'
+            ),
+
+        4 => array(
+            'auto', 'pointer', 'ptr', 'void', 'any', 'expr', 'stmt', 'typedesc',
+            'int', 'int8', 'int16', 'int32', 'int64', 'float', 'float32', 'float64',
+            'uint', 'uint8', 'uint16', 'uint32', 'uint64',
+            'bool', 'char', 'range', 'array', 'seq', 'set', 'string', 'TSlice',
+            'cstring', 'cint', 'clong', 'culong', 'cchar', 'cschar', 'cshort',
+            'csize', 'clonglong', 'cfloat', 'cdouble', 'clongdouble', 'cuchar',
+            'cushort', 'cuint', 'culonglong', 'cstringArray'
+            )
+        ),
+    'SYMBOLS' => array(
+        '*', '/', '%', '\\',
+        '+', '-', '~', '|',
+        '&',
+        '..',
+        '=', '<', '>', '!',
+        '@', '?'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #ff7700;font-weight:bold;',    // Reserved
+            2 => 'color: #008000;',                     // Built-ins + self
+            3 => 'color: #dc143c;',                     // Standard lib
+            4 => 'color: #0000cd;'                      // Special methods
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: black;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #483d8b;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff4500;'
+            ),
+        'METHODS' => array(
+            1 => 'color: black;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        '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(
+        )
+);
diff --git a/vendor/easybook/geshi/geshi/nsis.php b/vendor/geshi/geshi/src/geshi/nsis.php
similarity index 92%
rename from vendor/easybook/geshi/geshi/nsis.php
rename to vendor/geshi/geshi/src/geshi/nsis.php
index 29ba952b4aecdfa99772e11c9988d67004a4cbcd..61da046bb78c42725f0502a3c1f6687f362e038a 100644
--- a/vendor/easybook/geshi/geshi/nsis.php
+++ b/vendor/geshi/geshi/src/geshi/nsis.php
@@ -2,15 +2,18 @@
 /*************************************************************************************
  * nsis.php
  * --------
- * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/)
+ * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/), Jan T. Sott (http://github.com/idleberg)
  * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/12/03
  *
  * Nullsoft Scriptable Install System language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2014/04/23 (2.0.3)
+ *   - Updated to NSIS 3.0a2
+ *   - Removed deprecated commands
  * 2005/12/03 (2.0.2)
  *   - Updated to NSIS 2.11.
  * 2005/06/17 (2.0.1)
@@ -47,7 +50,7 @@
  *
  ************************************************************************************/
 
-$language_data = array (
+$language_data = array(
     'LANG_NAME' => 'NSIS',
     'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
@@ -56,27 +59,26 @@ $language_data = array (
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         1 => array(
-            '!appendfile', '!addIncludeDir', '!addplugindir', '!cd', '!define', '!delfile', '!echo', '!else',
-            '!endif', '!error', '!execute', '!ifdef', '!ifmacrodef', '!ifmacrondef', '!ifndef', '!include',
-            '!insertmacro', '!macro', '!macroend', '!packhdr', '!tempfile', '!system', '!undef', '!verbose',
-            '!warning'
+            '!addincludedir', '!addplugindir', '!appendfile', '!cd', '!define', '!delfile', '!echo', '!error',
+            '!execute', '!finalize', '!getdllversion', '!include', '!insertmacro', '!macro', '!macroend', '!makensis', '!packhdr',
+            '!searchparse', '!searchreplace', '!system', '!tempfile', '!undef', '!verbose', '!warning'
             ),
         2 => array(
             'AddBrandingImage', 'AllowRootDirInstall', 'AutoCloseWindow', 'BGFont',
             'BGGradient', 'BrandingText', 'Caption', 'ChangeUI', 'CheckBitmap', 'CompletedText', 'ComponentText',
-            'CRCCheck', 'DetailsButtonText', 'DirShow', 'DirText', 'DirVar', 'DirVerify', 'FileErrorText',
+            'CRCCheck', 'DetailsButtonText', 'DirText', 'DirVar', 'DirVerify', 'FileErrorText',
             'Function', 'FunctionEnd', 'Icon', 'InstallButtonText', 'InstallColors', 'InstallDir',
-            'InstallDirRegKey', 'InstProgressFlags', 'InstType', 'LangString', 'LangStringUP', 'LicenseBkColor',
-            'LicenseData', 'LicenseForceSelection', 'LicenseLangString', 'LicenseText', 'LoadLanguageFile',
-            'MiscButtonText', 'Name', 'OutFile', 'Page', 'PageEx', 'PageExEnd', 'Section',
+            'InstallDirRegKey', 'InstProgressFlags', 'InstType', 'LangString', 'LicenseBkColor',
+            'LicenseData', 'LicenseForceSelection', 'LicenseLangString', 'LicenseText', 'LoadLanguageFile', 'ManifestDPIAware', 'ManifestSupportedOS',
+            'MiscButtonText', 'Name', 'OutFile', 'Page', 'PageEx', 'PageExEnd', 'RequestExecutionLevel', 'Section',
             'SectionEnd', 'SectionGroup', 'SectionGroupEnd', 'SetCompressor', 'SetFont', 'ShowInstDetails',
             'ShowUninstDetails', 'SilentInstall', 'SilentUnInstall', 'SpaceTexts', 'SubCaption', 'SubSection',
-            'SubSectionEnd', 'UninstallButtonText', 'UninstallCaption', 'UninstallIcon', 'UninstallSubCaption',
-            'UninstallText', 'UninstPage', 'Var', 'VIAddVersionKey', 'VIProductVersion', 'WindowIcon', 'XPStyle'
+            'SubSectionEnd', 'Unicode', 'UninstallButtonText', 'UninstallCaption', 'UninstallIcon', 'UninstallSubCaption',
+            'UninstallText', 'UninstPage', 'Var', 'VIAddVersionKey', 'VIFileVersion', 'VIProductVersion', 'WindowIcon', 'XPStyle'
             ),
         3 => array(
             'AddSize', 'AllowSkipFiles', 'FileBufSize', 'GetInstDirError', 'PageCallbacks',
-            'SectionIn', 'SetCompress', 'SetCompressionLevel', 'SetCompressorDictSize',
+            'SectionIn', 'SetCompress', 'SetCompressorDictSize',
             'SetDatablockOptimize', 'SetDateSave', 'SetOverwrite', 'SetPluginUnload'
             ),
         4 => array(
@@ -84,18 +86,18 @@ $language_data = array (
             'CreateFont', 'CreateShortCut', 'Delete', 'DeleteINISec', 'DeleteINIStr', 'DeleteRegKey',
             'DeleteRegValue', 'DetailPrint', 'EnableWindow', 'EnumRegKey', 'EnumRegValue', 'Exch', 'Exec',
             'ExecShell', 'ExecWait', 'ExpandEnvStrings', 'File', 'FileClose', 'FileOpen', 'FileRead',
-            'FileReadByte', 'FileSeek', 'FileWrite', 'FileWriteByte', 'FindClose', 'FindFirst', 'FindNext',
+            'FileReadByte', 'FileReadUTF16LE', 'FileReadWord', 'FileSeek', 'FileWrite', 'FileWriteByte', 'FileWriteUTF16LE', 'FileWriteWord', 'FindClose', 'FindFirst', 'FindNext',
             'FindWindow', 'FlushINI', 'GetCurInstType', 'GetCurrentAddress', 'GetDlgItem', 'GetDLLVersion',
             'GetDLLVersionLocal', 'GetErrorLevel', 'GetFileTime', 'GetFileTimeLocal', 'GetFullPathName',
-            'GetFunctionAddress', 'GetLabelAddress', 'GetTempFileName', 'GetWindowText', 'Goto', 'HideWindow',
+            'GetFunctionAddress', 'GetLabelAddress', 'GetTempFileName', 'Goto', 'HideWindow',
             'IfAbort', 'IfErrors', 'IfFileExists', 'IfRebootFlag', 'IfSilent', 'InitPluginsDir', 'InstTypeGetText',
             'InstTypeSetText', 'IntCmp', 'IntCmpU', 'IntFmt', 'IntOp', 'IsWindow', 'LockWindow', 'LogSet', 'LogText',
-            'MessageBox', 'Nop', 'Pop', 'Push', 'Quit', 'ReadEnvStr', 'ReadIniStr', 'ReadRegDWORD', 'ReadRegStr',
+            'MessageBox', 'Nop', 'Pop', 'Push', 'Quit', 'ReadEnvStr', 'ReadINIStr', 'ReadRegDWORD', 'ReadRegStr',
             'Reboot', 'RegDLL', 'Rename', 'ReserveFile', 'Return', 'RMDir', 'SearchPath', 'SectionGetFlags',
             'SectionGetInstTypes', 'SectionGetSize', 'SectionGetText', 'SectionSetFlags', 'SectionSetInstTypes',
             'SectionSetSize', 'SectionSetText', 'SendMessage', 'SetAutoClose', 'SetBrandingImage', 'SetCtlColors',
             'SetCurInstType', 'SetDetailsPrint', 'SetDetailsView', 'SetErrorLevel', 'SetErrors', 'SetFileAttributes',
-            'SetOutPath', 'SetRebootFlag', 'SetShellVarContext', 'SetSilent', 'ShowWindow', 'Sleep', 'StrCmp',
+            'SetOutPath', 'SetRebootFlag', 'SetRegView', 'SetShellVarContext', 'SetSilent', 'ShowWindow', 'Sleep', 'StrCmp', 'StrCmpS',
             'StrCpy', 'StrLen', 'UnRegDLL', 'WriteINIStr', 'WriteRegBin', 'WriteRegDWORD', 'WriteRegExpandStr',
             'WriteRegStr', 'WriteUninstaller'
             ),
diff --git a/vendor/easybook/geshi/geshi/oberon2.php b/vendor/geshi/geshi/src/geshi/oberon2.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/oberon2.php
rename to vendor/geshi/geshi/src/geshi/oberon2.php
index 777bc8d9d1200c8c78b288d300426658bb4850a0..8540cadf424092b5d2e414603b19b3ca8f899829 100644
--- a/vendor/easybook/geshi/geshi/oberon2.php
+++ b/vendor/geshi/geshi/src/geshi/oberon2.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: mbishop (mbishop@esoteriq.org)
  * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/02/10
  *
  * Oberon-2 language file for GeSHi.
@@ -131,4 +131,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/objc.php b/vendor/geshi/geshi/src/geshi/objc.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/objc.php
rename to vendor/geshi/geshi/src/geshi/objc.php
index 52576c16a547ca01d19ff42e4446c0eb2683458b..3fdf49ae18592c929ff70406d4ff7df4f117f10c 100644
--- a/vendor/easybook/geshi/geshi/objc.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * Objective-C language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/objeck.php b/vendor/geshi/geshi/src/geshi/objeck.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/objeck.php
rename to vendor/geshi/geshi/src/geshi/objeck.php
index d0e3ae42b768e5ebe76d6c99f5c39ca1983e549a..6fab2d07c7a31688d06f448b80a1f00024c88d60 100644
--- a/vendor/easybook/geshi/geshi/objeck.php
+++ b/vendor/geshi/geshi/src/geshi/objeck.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Randy Hollines (objeck@gmail.com)
  * Copyright: (c) 2010 Randy Hollines (http://code.google.com/p/objeck-lang/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/07/01
  *
  * Objeck Programming Language language file for GeSHi.
@@ -112,4 +112,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/ocaml-brief.php b/vendor/geshi/geshi/src/geshi/ocaml-brief.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ocaml-brief.php
rename to vendor/geshi/geshi/src/geshi/ocaml-brief.php
index c5fee2feca83cb939a28e2ef595bd66a116fbe18..f63c9e7944d3e1a03e3ed0c57e9702de7597d1c7 100644
--- a/vendor/easybook/geshi/geshi/ocaml-brief.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/ocaml.php b/vendor/geshi/geshi/src/geshi/ocaml.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ocaml.php
rename to vendor/geshi/geshi/src/geshi/ocaml.php
index 6d63b0dd8a98b7f8e11fee0d58021def5d8c417b..4e14082fd83cf818cb8f36ed1ea96be3d76374a3 100644
--- a/vendor/easybook/geshi/geshi/ocaml.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
@@ -183,4 +183,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/octave.php b/vendor/geshi/geshi/src/geshi/octave.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/octave.php
rename to vendor/geshi/geshi/src/geshi/octave.php
index 7bab9b1389c865a557d38ac1ac61d5ecfeb1054b..a77e5da7783b076212d456ba15fa46b08c5bfeaf 100644
--- a/vendor/easybook/geshi/geshi/octave.php
+++ b/vendor/geshi/geshi/src/geshi/octave.php
@@ -6,10 +6,10 @@
  *         Juan Pablo Carbajal (carbajal@ifi.uzh.ch)
  * Copyright: (c) 2012 Carnë Draug
  *            (c) 2012 Juan Pablo Carbajal
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/05/22
  *
- * GNU Octave M-file language file for GeSHi.
+ * GNU/Octave M-file language file for GeSHi.
  *
  * This file was heavily based on octave.lang from gtksourceview. If bugs are
  * found and/or fixed on this file, please send them to the gtksourceview
@@ -41,7 +41,7 @@
  ************************************************************************************/
 
 $language_data = array (
-    'LANG_NAME' => 'GNU Octave',
+    'LANG_NAME' => 'GNU/Octave',
     'COMMENT_SINGLE' => array(1 => '#', 2 => '%'),
     // we can't use COMMENT_MULTI since start and end of block comments need to
     // be alone on the line (optionally, with whitespace). See COMMENT_REGEXP
@@ -82,10 +82,14 @@ $language_data = array (
         GESHI_NUMBER_FLT_SCI_ZERO,
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'KEYWORDS' => array(
-        // Data types
+        // Reserved words
         1 => array(
-            'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
-            'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
+            'break', 'case', 'catch', 'continue', 'do', 'else', 'elseif', 'end',
+            'end_try_catch', 'end_unwind_protect', 'endfor', 'endfunction',
+            'endif', 'endparfor', 'endswitch', 'endwhile', 'for', 'function',
+            'if', 'otherwise', 'parfor', 'return',
+            'switch', 'try', 'until', 'unwind_protect',
+            'unwind_protect_cleanup', 'varargin', 'varargout', 'while'
             ),
         // Storage type
         2 => array(
@@ -95,14 +99,10 @@ $language_data = array (
         3 => array(
             'ans'
             ),
-        // Reserved words
+        // Data types
         4 => array(
-            'break', 'case', 'catch', 'continue', 'do', 'else', 'elseif', 'end',
-            'end_try_catch', 'end_unwind_protect', 'endfor', 'endfunction',
-            'endif', 'endparfor', 'endswitch', 'endwhile', 'for', 'function',
-            'if', 'otherwise', 'parfor', 'return',
-            'switch', 'try', 'until', 'unwind_protect',
-            'unwind_protect_cleanup', 'varargin', 'varargout', 'while'
+            'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
+            'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
             ),
         // Built in
         5 => array(
@@ -370,7 +370,7 @@ $language_data = array (
             '__pathorig__', '__profiler_data__', '__profiler_enable__',
             '__profiler_reset__', '__request_drawnow__', '__sort_rows_idx__',
             '__token_count__', '__varval__', '__version_info__', '__which__'
-        ),
+            ),
         // Private Octave functions
         8 => array(
             '__all_opts__', '__contourc__', '__delaunayn__', '__dispatch__',
@@ -445,10 +445,10 @@ $language_data = array (
         10 => true,
         ),
     'URLS' => array(
-        1 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+        1 => '',
         2 => '',
         3 => '',
-        4 => '',
+        4 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
         5 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
         6 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
         7 => '',
@@ -466,8 +466,8 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(),
     'STYLES' => array(
         'COMMENTS' => array(
-            1 => 'color: #0000FF; font-style: italic;', // single quote strings
-            2 => 'color: #0000FF; font-style: italic;', // double quote strings
+            1 => 'color: #0000FF; font-style: italic;', // comments with #
+            2 => 'color: #0000FF; font-style: italic;', // comments with %
             3 => 'color: #FF00FF; font-style: italic;', // single quote strings
             4 => 'color: #FF00FF; font-style: italic;', // double quote strings
             5 => 'color: #0000FF; font-style: italic;', // block comments
@@ -476,10 +476,10 @@ $language_data = array (
             'MULTI' => 'color: #0000FF; font-style: italic;',
             ),
         'KEYWORDS' => array(
-            1 => 'color: #2E8B57; font-weight:bold;',   // Data types
+            1 => 'color: #990000; font-weight:bold;',   // Reserved words
             2 => 'color: #2E8B57;',                     // Storage type
             3 => 'color: #0000FF; font-weight:bold;',   // Internal variable
-            4 => 'color: #990000; font-weight:bold;',   // Reserved words
+            4 => 'color: #2E8B57; font-weight:bold;',   // Data types
             5 => 'color: #008A8C; font-weight:bold;',   // Built-in
             6 => 'color: #008A8C;',                     // Octave functions
             9 => 'color: #000000; font-weight:bold;',   // Builtin Global Variables
diff --git a/vendor/easybook/geshi/geshi/oobas.php b/vendor/geshi/geshi/src/geshi/oobas.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/oobas.php
rename to vendor/geshi/geshi/src/geshi/oobas.php
index 25c345bbb9601b7b5c952e261cc3d61d3b5e1873..e6f5efd6857b87ee71935924b3116db1f3093033 100644
--- a/vendor/easybook/geshi/geshi/oobas.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * OpenOffice.org Basic language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/oorexx.php b/vendor/geshi/geshi/src/geshi/oorexx.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/oorexx.php
rename to vendor/geshi/geshi/src/geshi/oorexx.php
index 15cdd92e7cf14a8bc45a9a74a7e2d456d1967a13..5fde8008b4314236b4b9b87919783323c5fcb142 100644
--- a/vendor/easybook/geshi/geshi/oorexx.php
+++ b/vendor/geshi/geshi/src/geshi/oorexx.php
@@ -6,7 +6,7 @@
  * Contributors:
  *    - Walter Pachl (pachl@chello.at)
  * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/01/07
  *
  * ooRexx language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/oracle11.php b/vendor/geshi/geshi/src/geshi/oracle11.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/oracle11.php
rename to vendor/geshi/geshi/src/geshi/oracle11.php
index 97b147f5d188192c2e4047ae395f0d173a1c5360..36b208279058e6884ff31932b8d2c98ed9be0745 100644
--- a/vendor/easybook/geshi/geshi/oracle11.php
+++ b/vendor/geshi/geshi/src/geshi/oracle11.php
@@ -6,7 +6,7 @@
  * Contributions:
  * - Updated for 11i by Simon Redhead
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * Oracle 11i language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/oracle8.php b/vendor/geshi/geshi/src/geshi/oracle8.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/oracle8.php
rename to vendor/geshi/geshi/src/geshi/oracle8.php
index b49390806c646451ad094dd7c989d409f8dfc132..f132090294473a5cb63d64938718946a107d2575 100644
--- a/vendor/easybook/geshi/geshi/oracle8.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * Oracle 8 language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/oxygene.php b/vendor/geshi/geshi/src/geshi/oxygene.php
similarity index 94%
rename from vendor/easybook/geshi/geshi/oxygene.php
rename to vendor/geshi/geshi/src/geshi/oxygene.php
index dc3bbb3ff0e6baa9199ceb700ab078906a33123c..662bba2b190e2729146756082b03d208e68fa5ca 100644
--- a/vendor/easybook/geshi/geshi/oxygene.php
+++ b/vendor/geshi/geshi/src/geshi/oxygene.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Carlo Kok (ck@remobjects.com), 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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/01/11
  *
  * Delphi Prism (Oxygene) language file for GeSHi.
@@ -12,6 +12,8 @@
  *
  * CHANGES
  * -------
+ * 2014/01/09 (1.0.8.13)
+ *   -  New keywords & updated languge name
  * 2012/06/28 (1.0.8.11)
  *   -  Added "write" keyword for properties
  * 2010/01/11 (1.0.0)
@@ -38,7 +40,7 @@
  ************************************************************************************/
 
 $language_data = array (
-    'LANG_NAME' => 'Oxygene (Delphi Prism)',
+    'LANG_NAME' => 'Oxygene',
     'COMMENT_SINGLE' => array(1 => '//'),
     'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
     //Compiler directives
@@ -58,7 +60,7 @@ $language_data = array (
             'false', 'new', 'ensure', 'require', 'on', 'event', 'delegate', 'method',
             'raise', 'assembly', 'module', 'using','locking', 'old', 'invariants', 'operator',
             'self', 'async', 'finalizer', 'where', 'yield', 'nullable', 'Future',
-            'From',  'Finally', 'dynamic'
+            'From',  'Finally', 'dynamic', 'mapped'
             ),
         2 => array(
             'override', 'virtual', 'External', 'read', 'add', 'remove','final', 'abstract',
@@ -68,7 +70,8 @@ $language_data = array (
             'Implies', 'Select', 'Order', 'By', 'Desc', 'Asc', 'Group', 'Join', 'Take',
             'Skip', 'Concat', 'Union', 'Reverse', 'Distinct', 'Into', 'Equals', 'params',
             'sequence', 'index', 'notify', 'Parallel', 'create', 'array', 'Queryable', 'Aspect',
-            'volatile', 'write'
+            'volatile', 'write', 'autoreleasepool', 'await', 'block', 'deprecated', 'extension',
+            'optional', 'raises', 'selector', 'strong', 'weak', 'tuple', 'unretained'
             ),
         3 => array(
             'chr', 'ord', 'inc', 'dec', 'assert', 'iff', 'assigned','futureAssigned', 'length', 'low', 'high', 'typeOf', 'sizeOf', 'disposeAndNil', 'Coalesce', 'unquote'
@@ -150,4 +153,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 2
 );
-
diff --git a/vendor/easybook/geshi/geshi/oz.php b/vendor/geshi/geshi/src/geshi/oz.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/oz.php
rename to vendor/geshi/geshi/src/geshi/oz.php
index 2bdb7854b74c9524fa265b1c32c6e65ea6758067..3b965663fe6a2a4d69880181da93f865a2769a34 100644
--- a/vendor/easybook/geshi/geshi/oz.php
+++ b/vendor/geshi/geshi/src/geshi/oz.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Wolfgang Meyer (Wolfgang.Meyer@gmx.net)
  * Copyright: (c) 2010 Wolfgang Meyer
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/01/03
  *
  * Oz language file for GeSHi.
@@ -140,4 +140,3 @@ $language_data = array(
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/parasail.php b/vendor/geshi/geshi/src/geshi/parasail.php
similarity index 94%
rename from vendor/easybook/geshi/geshi/parasail.php
rename to vendor/geshi/geshi/src/geshi/parasail.php
index be00c86e72eda6364ce715bb968cfb8ad58e08d4..a72d8457d6a23600652a451607192a5828f5589b 100644
--- a/vendor/easybook/geshi/geshi/parasail.php
+++ b/vendor/geshi/geshi/src/geshi/parasail.php
@@ -4,7 +4,7 @@
  * -------
  * Author: T. Taft (taft@adacore.com)
  * Copyright: (c) 2012 AdaCore (http://adacore.com/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/08/02
  *
  * ParaSail language file for GeSHi.
@@ -58,10 +58,10 @@ $language_data = array (
             ),
         3 => array(
             'abstract', 'class',
-            'concurrent', 'const', 
-            'end', 'extends', 'exports', 
+            'concurrent', 'const',
+            'end', 'extends', 'exports',
             'func', 'global', 'implements', 'import',
-            'interface', 'is', 'lambda', 'locked', 
+            'interface', 'is', 'lambda', 'locked',
             'new', 'of', 'op', 'optional',
             'private', 'queued', 'ref',
             'separate', 'type', 'var',
@@ -92,9 +92,6 @@ $language_data = array (
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;'
             ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
         'STRINGS' => array(
             0 => 'color: #7f007f;'
             ),
@@ -129,4 +126,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/parigp.php b/vendor/geshi/geshi/src/geshi/parigp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/parigp.php
rename to vendor/geshi/geshi/src/geshi/parigp.php
index 1a5d4a73ec5c5467293da2beebec5783dddc918d..9c6a143cb6c182444272977e707be38483b8a07b 100644
--- a/vendor/easybook/geshi/geshi/parigp.php
+++ b/vendor/geshi/geshi/src/geshi/parigp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Charles R Greathouse IV (charles@crg4.com)
  * Copyright: 2011-2013 Charles R Greathouse IV (http://math.crg4.com/)
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2011/05/11
  *
  * PARI/GP language file for GeSHi.
@@ -13,7 +13,7 @@
  * -------
  * 2011/07/09 (1.0.8.11)
  *  -  First Release
- * 2013/02/05 (1.0.8.12)
+ * 2013/02/05 (1.0.8.13)
  *  -  Added 2.6.0 commands, default, member functions, and error-handling
  *
  * TODO (updated 2011/07/09)
diff --git a/vendor/easybook/geshi/geshi/pascal.php b/vendor/geshi/geshi/src/geshi/pascal.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pascal.php
rename to vendor/geshi/geshi/src/geshi/pascal.php
index 43e64370414d0b977c3ed1ad67dc199cb4115428..0d95af50372ba09129203b90c137c6b277aab258 100644
--- a/vendor/easybook/geshi/geshi/pascal.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/26
  *
  * Pascal language file for GeSHi.
@@ -161,4 +161,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/pcre.php b/vendor/geshi/geshi/src/geshi/pcre.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pcre.php
rename to vendor/geshi/geshi/src/geshi/pcre.php
index 14d6982a356b747609f783e616208039758334d4..243121bcdfd8053d86468c01575ef55b5380e1bd 100644
--- a/vendor/easybook/geshi/geshi/pcre.php
+++ b/vendor/geshi/geshi/src/geshi/pcre.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/05/22
  *
  * PCRE language file for GeSHi.
@@ -184,4 +184,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/per.php b/vendor/geshi/geshi/src/geshi/per.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/per.php
rename to vendor/geshi/geshi/src/geshi/per.php
index c3b5d15082c814b0dcdb2ec25b295b89985d38ef..8337823aa59346d28ac99595a3d260d9cd732876 100644
--- a/vendor/easybook/geshi/geshi/per.php
+++ b/vendor/geshi/geshi/src/geshi/per.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/06/03
  *
  * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/perl.php b/vendor/geshi/geshi/src/geshi/perl.php
similarity index 89%
rename from vendor/easybook/geshi/geshi/perl.php
rename to vendor/geshi/geshi/src/geshi/perl.php
index c3c32337b8d5d267b6f5fa0764acc29195d0c3cf..0a05708d7ba590b0e6eebb16624f9532e1108b4d 100644
--- a/vendor/easybook/geshi/geshi/perl.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/20
  *
  * Perl language file for GeSHi.
@@ -74,12 +74,6 @@ $language_data = array (
         //Predefined variables
         5 => '/\$(\^[a-zA-Z]?|[\*\$`\'&_\.,+\-~:;\\\\\/"\|%=\?!@#<>\(\)\[\]])(?!\w)|@[_+\-]|%[!]|\$(?=\{)/',
         ),
-    'NUMBERS' => array(
-        // Includes rules for decimal, octal (0777), hexidecimal (0xDEADBEEF),
-        // binary (0b101010) numbers, amended to work with underscores (since
-        // Perl allows you to use underscores in number literals)
-        0 => '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\._]e[+\-])([1-9][\d_]*?|0)(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.%])(?<![\d\._]e[+\-])0b[01_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])0[0-7_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])0x[0-9a-fA-F_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])[\d_]+?\.[\d_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])',
-        ),
     '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
@@ -112,7 +106,7 @@ $language_data = array (
             'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority',
             'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent',
             'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent',
-            'getsockname', 'getsockopt', 'given', 'glob', 'gmtime', 'goto', 'grep',
+            'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep',
             'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill',
             'lc', 'lcfirst', 'length', 'link', 'listen', 'local',
             'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget',
@@ -121,17 +115,17 @@ $language_data = array (
             'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw',
             'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe',
             'recv', 'ref', 'rename', 'require', 'return',
-            'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'say', 'scalar', 'seek',
+            'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek',
             'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent',
             'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent',
             'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget',
             'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair',
-            'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', 'state',
+            'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat',
             'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread',
             'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied',
             'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef',
             'unlink', 'unpack', 'unshift', 'untie', 'utime', 'values',
-            'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'when', 'write', 'y'
+            'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write', 'y'
             )
         ),
     'SYMBOLS' => array(
@@ -215,4 +209,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/perl6.php b/vendor/geshi/geshi/src/geshi/perl6.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/perl6.php
rename to vendor/geshi/geshi/src/geshi/perl6.php
index f2f65e855316d6856c9130001ba7be892932eeab..f063a6b2ca40ee1799d2f14282184379e5e70238 100644
--- a/vendor/easybook/geshi/geshi/perl6.php
+++ b/vendor/geshi/geshi/src/geshi/perl6.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Kodi Arfer (kodiarfer {at} warpmail {period} net); forked from perl.php 1.0.8 by Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2009 Kodi Arfer, (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/11/07
  *
  * Perl 6 language file for GeSHi.
@@ -193,4 +193,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/easybook/geshi/geshi/pf.php b/vendor/geshi/geshi/src/geshi/pf.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pf.php
rename to vendor/geshi/geshi/src/geshi/pf.php
index 06fad7353b7e251133cb0ab40c40de42dff6b4fa..2f80e23f2d32bc2836c551dee41905a0e8b113da 100644
--- a/vendor/easybook/geshi/geshi/pf.php
+++ b/vendor/geshi/geshi/src/geshi/pf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: David Berard (david@nfrance.com)
  * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/16
  * Based on bash.php
  *
@@ -174,4 +174,3 @@ $language_data = array (
         )
     )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/phix.php b/vendor/geshi/geshi/src/geshi/phix.php
new file mode 100644
index 0000000000000000000000000000000000000000..a4f4e4e0bd6a65d932bbc5f55b5c1a73bfaee6eb
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/phix.php
@@ -0,0 +1,439 @@
+<?php
+/*************************************************************************************
+ * phix.php
+ * ---------------------------------
+ * Author: Pete Lomax
+ * Copyright: (c) 2010 Nicholas Koceja
+ * Release Version: 1.0.9.0
+ * Date Started: 16/08/2015
+ *
+ * Phix language file for GeSHi.
+ *
+ * Author's note:  The colors are based on those of Edita.
+ *
+ * CHANGES
+ * -------
+ * <date-of-release> (1.0.8.9)
+ *  -  First Release
+ *
+ * TODO (updated <date-of-release>)
+ * -------------------------
+ * seperate the funtions from the procedures, and have a slight color change for each.
+ *
+ *************************************************************************************
+ *
+ *     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' => 'Phix',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(2 => '/\/\*(?:(?R)|.)+?\*\//s'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"', '"""', '`'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array( // keywords
+            'and', 'as',
+            'break', 'by',
+            'case', 'constant',
+            'default', 'do',
+            'else', 'elsif', 'end', 'enum', 'exit',
+            'for', 'forward', 'function',
+            'global',
+            'if', 'include',
+            'not',
+            'or',
+            'procedure',
+            'return',
+            'switch',
+            'then', 'to', 'type',
+            'while', 'with', 'without',
+            'xor'
+        ),
+        2 => array( // directives
+            'console',
+            'debug',
+            'fallthru',
+            'fallthrough', 'format',
+            'gui',
+            'ilASM',
+            'jump_table',
+            'profile', 'profile_time',
+            'trace', 'type_check',
+            'warning'
+        ),
+        3 => array( // built-ins
+            'abort',
+            'abs',
+            'adjust_timedate',
+            'allocate',
+            'allocate_string',
+            'allocate_struct',
+            'allow_break',
+            'and_bits',
+            'append',
+            'arccos',
+            'arcsin',
+            'arctan',
+            'atom',
+            'atom_to_float32',
+            'atom_to_float64',
+            'atom_to_float80',
+
+            'bits_to_int',
+            'bk_color',
+            'bytes_to_int',
+
+            'call',
+            'call_back',
+            'call_func',
+            'call_proc',
+            'canonical_path',
+            'ceil',
+            'change_timezone',
+            'chdir',
+            'check_break',
+            'clear_screen',
+            'close',
+            'columnize',
+            'compare',
+            'command_line',
+            'cos',
+            'crash_file',
+            'crash_message',
+            'crash_routine',
+            'create_thread',
+            'current_dir',
+            'cursor',
+            'custom_sort',
+            'c_func',
+            'c_proc',
+
+            'date',
+            'day_of_week',
+            'day_of_year',
+            'db_close',
+            'db_compress',
+            'db_create',
+            'db_create_table',
+            'db_delete_record',
+            'db_delete_table',
+            'db_dump',
+            'db_fatal_id',
+            'db_find_key',
+            'db_insert',
+            'db_open',
+            'db_record_data',
+            'db_record_key',
+            'db_replace_data',
+            'db_select',
+            'db_select_table',
+            'db_table_list',
+            'db_table_size',
+            'define_c_func',
+            'define_c_proc',
+            'define_c_var',
+            'define_cfunc',
+            'define_cproc',
+            'define_struct',
+            'delete',
+            'delete_cs',
+            'delete_routine',
+            'dir',
+            'display_text_image',
+
+            'enter_cs',
+            'equal',
+            'exit_thread',
+
+            'factorial',
+            'factors',
+            'find',
+            'flatten',
+            'float32_to_atom',
+            'float64_to_atom',
+            'float80_to_atom',
+            'floor',
+            'flush',
+            'format_timedate',
+            'free',
+            'free_console',
+
+            'gcd',
+            'get',
+            'getc',
+            'getenv',
+            'gets',
+            'get_bytes',
+            'get_field_details',
+            'get_key',
+            'get_position',
+            'get_proper_path',
+            'get_screen_char',
+            'get_struct_field',
+            'get_struct_size',
+            'get_text',
+            'get_thread_exitcode',
+
+            'iif',
+            'iff',
+            'include_paths',
+            'init_cs',
+            'instance',
+            'integer',
+            'int_to_bits',
+            'int_to_bytes',
+            'is_leap_year',
+
+            'join',
+
+            'leave_cs',
+            'length',
+            'lock_file',
+            'log',
+            'lower',
+
+            'machine_bits',
+            'machine_func',
+            'machine_proc',
+            'match',
+            'max',
+            'mem_copy',
+            'mem_set',
+            'message_box',
+            'min',
+            'mod',
+
+            'not_bits',
+
+            'object',
+            'open',
+            'open_dll',
+            'or_bits',
+
+            'parse_date_string',
+            'peek',
+            'peek1s',
+            'peek1u',
+            'peek2s',
+            'peek2u',
+            'peek4s',
+            'peek4u',
+            'peek8s',
+            'peek8u',
+            'peekNS',
+            'peek_string',
+            'permute',
+            'platform',
+            'poke',
+            'poke1',
+            'poke2',
+            'poke4',
+            'poke8',
+            'pokeN',
+            'position',
+            'power',
+            'prepend',
+            'prime_factors',
+            'print',
+            'printf',
+            'prompt_number',
+            'prompt_string',
+            'puts',
+            'put_screen_char',
+
+            'rand',
+            'read_bitmap',
+            'remainder',
+            'repeat',
+            'resume_thread',
+            'reverse',
+            'rfind',
+            'round',
+            'routine_id',
+
+            'save_bitmap',
+            'save_text_image',
+            'scanf',
+            'scroll',
+            'seek',
+            'sequence',
+            'set_rand',
+            'set_struct_field',
+            'set_system_doevents',
+            'set_timedate_formats',
+            'set_timezone',
+            'set_unicode',
+            'sign',
+            'sin',
+            'sleep',
+            'sort',
+            'sprint',
+            'sprintf',
+            'sqrt',
+            'sq_abs',
+            'sq_add',
+            'sq_and',
+            'sq_and_bits',
+            'sq_arccos',
+            'sq_arcsin',
+            'sq_arctan',
+            'sq_atom',
+            'sq_ceil',
+            'sq_cos',
+            'sq_div',
+            'sq_eq',
+            'sq_floor',
+            'sq_floor_div',
+            'sq_ge',
+            'sq_gt',
+            'sq_int',
+            'sq_le',
+            'sq_log',
+            'sq_lower',
+            'sq_lt',
+            'sq_mod',
+            'sq_mul',
+            'sq_ne',
+            'sq_not',
+            'sq_not_bits',
+            'sq_or',
+            'sq_or_bits',
+            'sq_power',
+            'sq_rand',
+            'sq_round',
+            'sq_rmdr',
+            'sq_seq',
+            'sq_sign',
+            'sq_sin',
+            'sq_sqrt',
+            'sq_str',
+            'sq_sub',
+            'sq_tan',
+            'sq_trunc',
+            'sq_uminus',
+            'sq_upper',
+            'sq_xor',
+            'sq_xor_bits',
+            'string',
+            'substitute',
+            'sum',
+            'suspend_thread',
+            'system',
+            'system_exec',
+            'system_open',
+            'system_wait',
+
+            'tagset',
+            'tan',
+            'task_clock_stop',
+            'task_clock_start',
+            'task_create',
+            'task_list',
+            'task_schedule',
+            'task_self',
+            'task_status',
+            'task_suspend',
+            'task_yield',
+            'text_color',
+            'text_rows',
+            'time',
+            'timedate',
+            'timedelta',
+            'trunc',
+            'try_cs',
+
+            'unlock_file',
+            'upper',
+
+            'value',
+            'video_config',
+
+            'wait_key',
+            'wait_thread',
+            'walk_dir',
+            'where',
+            'wildcard_file',
+            'wildcard_match',
+            'wrap',
+
+            'xor_bits'
+        ),
+    ),
+    'SYMBOLS' => array(
+        0 => array(
+            '(', ')', '{', '}', '[', ']'
+        ),
+        1 => array(
+            '+', '-', '*', '/', '=', '&', '^', '?', ',', ':'
+        )
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #008080;', // keywords
+            2 => 'color: #008080;', // directives
+            3 => 'color: #004080;'  // builtins
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #000080; font-style: italic;',
+            2 => 'color: #000080; font-style: italic;',
+            'MULTI' => 'color: #000080; font-style: italic;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #009900; font-weight: bold;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #0000FF;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #008000;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #000000;'
+        ),
+        'METHODS' => array( // Do not exist in Phix)
+            0 => ''
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #0000FF;', // brackets
+            1 => 'color: #0000FF;'  // operators
+        ),
+        'REGEXPS' => array(),
+        'SCRIPT' => array( // Never included in scripts.
+        )
+    ),
+    'REGEXPS' => array(),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/php-brief.php b/vendor/geshi/geshi/src/geshi/php-brief.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/php-brief.php
rename to vendor/geshi/geshi/src/geshi/php-brief.php
index c88e7cbdf850d30fbbb51f5bd27e7da1389cf44d..922c9d9307cb6215e72d0c200f6714a52df4741f 100644
--- a/vendor/easybook/geshi/geshi/php-brief.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/02
  *
  * PHP (brief version) language file for GeSHi.
@@ -218,4 +218,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/php.php b/vendor/geshi/geshi/src/geshi/php.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/php.php
rename to vendor/geshi/geshi/src/geshi/php.php
index 7b5c16e189763608f8cd379f589befa829172fac..6b24840911ea6208a1d43a679fd8f66b395eedbe 100644
--- a/vendor/easybook/geshi/geshi/php.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/20
  *
  * PHP language file for GeSHi.
@@ -90,15 +90,15 @@ $language_data = array(
             'as','break','case','continue','default','do','else','elseif',
             'endfor','endforeach','endif','endswitch','endwhile','for',
             'foreach','if','include','include_once','require','require_once',
-            'return','switch','throw','while',
+            'return','switch','throw','while', 'yield',
 
             'echo','print'
             ),
         2 => array(
             '&amp;new','&lt;/script&gt;','&lt;?php','&lt;script language',
             'abstract','class','const','declare','extends','function','global',
-            'interface','namespace','new','private','protected','public','self',
-            'use','var'
+            'implements', 'interface','namespace','new','private','protected',
+            'public','self','trait','use','var'
             ),
         3 => array(
             'abs','acos','acosh','addcslashes','addslashes','aggregate',
diff --git a/vendor/easybook/geshi/geshi/pic16.php b/vendor/geshi/geshi/src/geshi/pic16.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pic16.php
rename to vendor/geshi/geshi/src/geshi/pic16.php
index 2e28f17b62ab80df8367f0f4772ce55535342ae5..bd742ad5aa18aa7d19c41e5ff27907d521cb333f 100644
--- a/vendor/easybook/geshi/geshi/pic16.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/07/30
  *
  * PIC16 Assembler language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/pike.php b/vendor/geshi/geshi/src/geshi/pike.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pike.php
rename to vendor/geshi/geshi/src/geshi/pike.php
index dcc53092d37bd4fa86a27859109039f24ffb1fb8..12dabf20b5764c66dfb0aef67dbe6569e8aa4ab1 100644
--- a/vendor/easybook/geshi/geshi/pike.php
+++ b/vendor/geshi/geshi/src/geshi/pike.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Rick E. (codeblock@eighthbit.net)
  * Copyright: (c) 2009 Rick E.
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/12/10
  *
  * Pike language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/pixelbender.php b/vendor/geshi/geshi/src/geshi/pixelbender.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pixelbender.php
rename to vendor/geshi/geshi/src/geshi/pixelbender.php
index 6a2c8dea09670837d323910da286917ac7548672..d7bcc0802a355961f2152029a0709fd307fa235c 100644
--- a/vendor/easybook/geshi/geshi/pixelbender.php
+++ b/vendor/geshi/geshi/src/geshi/pixelbender.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Richard Olsson (r@richardolsson.se)
  * Copyright: (c) 2008 Richard Olsson (richardolsson.se)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/11/16
  *
  * Pixel Bender 1.0 language file for GeSHi.
@@ -171,4 +171,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/pli.php b/vendor/geshi/geshi/src/geshi/pli.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pli.php
rename to vendor/geshi/geshi/src/geshi/pli.php
index 292da5b54b476f030f71c41d29177479b95490cd..6f12c1fdcd09b41813fd16b58e04424857ccc336 100644
--- a/vendor/easybook/geshi/geshi/pli.php
+++ b/vendor/geshi/geshi/src/geshi/pli.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Robert AH Prins (robert@prino.org)
  * Copyright: (c) 2011 Robert AH Prins (http://hitchwiki.org/en/User:Prino)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/02/09
  *
  * PL/I language file for GeSHi.
@@ -196,4 +196,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/plsql.php b/vendor/geshi/geshi/src/geshi/plsql.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/plsql.php
rename to vendor/geshi/geshi/src/geshi/plsql.php
index 58f7c90f4b742b6f6328d48720b3094313b64f6b..c2ad85153bfa10c7b188d3c1529fa5a0b267f801 100644
--- a/vendor/easybook/geshi/geshi/plsql.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/10/26
  *
  * Oracle 9.2 PL/SQL language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/postgresql.php b/vendor/geshi/geshi/src/geshi/postgresql.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/postgresql.php
rename to vendor/geshi/geshi/src/geshi/postgresql.php
index c12e0e667522e74ba7523b0ce5ce61a57458f862..2816c6c95d9a5876ab363e37bfd88331ebaae322 100644
--- a/vendor/easybook/geshi/geshi/postgresql.php
+++ b/vendor/geshi/geshi/src/geshi/postgresql.php
@@ -5,7 +5,7 @@
  * Author: Christophe Chauvet (christophe_at_kryskool_dot_org)
  * Contributors: Leif Biberg Kristensen <leif_at_solumslekt_dot_org> 2010-05-03
  * Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/07/20
  *
  * PostgreSQL language file for GeSHi.
@@ -282,6 +282,4 @@ $language_data = array (
                 ),
             )
         )
-
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/postscript.php b/vendor/geshi/geshi/src/geshi/postscript.php
new file mode 100644
index 0000000000000000000000000000000000000000..00ee93c8ca022afc513379a8bace88ea8225674d
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/postscript.php
@@ -0,0 +1,217 @@
+<?php
+/*************************************************************************************
+ * c.php
+ * -----
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2014 Benny Baumann (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/08/10
+ *
+ * PostScript language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/08/10 (1.0.8.13)
+ *   -  First Release
+ *
+ * TODO (updated 2014/08/10)
+ * -------------------------
+ *  -  Get a list of inbuilt functions to add
+ *
+ *************************************************************************************
+ *
+ *     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' => 'PostScript',
+    'COMMENT_SINGLE' => array(0 => '%'),
+    'COMMENT_MULTI' => array(), //array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        // Strings
+        1 => "/\((?:\\\\[0-7]{3}|\\\\.|(?R)|[^)])*\)/s",
+        // Hex Strings
+        2 => "/<(?!<)[0-9a-f\s]*>/si",
+        // ASCII-85 Strings
+        3 => "/<~.*~>/si",
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        ),
+    'NUMBERS' => array(
+        0 => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+        1 => "\d+#[0-9a-zA-Z]+"
+        ),
+    'KEYWORDS' => array(
+        1 => array(
+            'countexecstack', 'def', 'dup', 'exch', 'exec', 'execstack', 'exit',
+            'for', 'if', 'ifelse', 'loop', 'pop', 'repeat',
+
+            'abs', 'add', 'atan', 'ceiling', 'cos', 'div', 'exp', 'floor',
+            'idiv', 'ln', 'log', 'mul', 'mod', 'neg', 'rand', 'round', 'rrand',
+            'sin', 'sqrt', 'srand', 'sub', 'truncate',
+
+            'and', 'bitshift', 'eq', 'ge', 'gt', 'le', 'lt', 'ne', 'not', 'or', 'xor',
+            ),
+        2 => array(
+            'false', 'null', 'true', 'version'
+            ),
+        3 => array(
+            'quit', 'start', 'stop', 'stopped',
+
+            'clear', 'cleartomark', 'copy', 'count', 'counttomark', 'index', 'roll',
+
+            'aload', 'astore', 'begin', 'countdictstack', 'currentdict',
+            'dictstack', 'end', 'errordict', 'forall', 'get',
+            'getinterval', 'known', 'length', 'load', 'maxlength', 'put',
+            'putinterval', 'store', 'systemdict', 'userdict', 'where',
+
+            'anchorsearch', 'search', 'token',
+
+            'cvi', 'cvlit', 'cvn', 'cvr', 'cvrs', 'cvs', 'cvx', 'executeonly',
+            'noaccess', 'rcheck', 'readonly', 'type', 'wcheck', 'xcheck',
+
+            'bytesavailable', 'closefile', 'currentfile', 'echo', 'file',
+            'flush', 'flushfile', 'print', 'prompt', 'pstack', 'read',
+            'readhexstring', 'readline', 'readstring', 'resetfile', 'restore',
+            'run', 'save', 'stack', 'status', 'vmstatus', 'write',
+            'writehexstring', 'writestring',
+
+            'bind', 'usertime',
+
+            'currentdash', 'currentflat', 'currentgray', 'currenthsbcolor',
+            'currentlinecap', 'currentlinejoin', 'currentlinewidth',
+            'currentmiterlimit', 'currentrgbcolor', 'currentscreen',
+            'currenttransfer', 'grestore', 'grestoreall', 'gsave',
+            'initgraphics', 'proc', 'setdash', 'setflat', 'setgray',
+            'sethsbcolor', 'setlinecap', 'setlinejoin', 'setlinewidth',
+            'setmiterlimit', 'setrgbcolor', 'setscreen', 'settransfer',
+
+            'concat', 'concatmatrix', 'currentmatrix', 'defaultmatrix',
+            'dtransform', 'identmatrix', 'idtransform', 'initmatrix',
+            'invertmatrix', 'itransform', 'rotate', 'scale', 'setmatrix',
+            'transform', 'translate',
+
+            'arc', 'arcn', 'arcto', 'charpath', 'clip', 'clippath', 'closepath',
+            'currentpoint', 'curveto', 'eoclip', 'eofill', 'erasepage', 'fill',
+            'flattenpath', 'image', 'imagemask', 'initclip', 'lineto', 'moveto',
+            'newpath', 'pathbbox', 'pathforall', 'rcurveto', 'reversepath',
+            'rlineto', 'rmoveto', 'stroke', 'strokepath',
+
+            'banddevice', 'copypage', 'framedevice', 'nulldevice', 'renderbands',
+            'showpage',
+
+            'ashow', 'awidthshow', 'currentfont', 'definefont', 'findfont',
+            'fontdict', 'kshow', 'makefont', 'scalefont', 'setfont', 'show',
+            'stringwidth', 'widthshow', 'FontDirectory', 'StandardEncoding',
+
+            'cachestatus', 'setcachedevice', 'setcachelimit', 'setcharwidth',
+
+            'dictfull', 'dictstackoverflow', 'dictstackunderflow',
+            'execstackoverflow', 'handleerror', 'interrupt', 'invalidaccess',
+            'invalidexit', 'invalidfileaccess', 'invalidfont', 'invalidrestore',
+            'ioerror', 'limitcheck', 'nocurrentpoint', 'rangecheck',
+            'stackoverflow', 'stackunderflow', 'syntaxerror', 'timeout',
+            'typecheck', 'undefined', 'undefinedfilename', 'undefinedresult',
+            'unmatchedmark', 'unregistered', 'VMerror'
+            ),
+        4 => array(
+            'array', 'dict', 'mark', 'matrix', 'string'
+            ),
+        ),
+    'SYMBOLS' => array(
+        0 => array('==', '=', '/', '//'),
+        1 => array('[', ']'),
+        2 => array('{', '}'),
+        3 => array('<<', '>>')
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000066; font-weight: bold;',
+            2 => 'color: #0000ff; font-weight: bold;',
+            3 => 'color: #000000; font-weight: bold;',
+            4 => 'color: #993333; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            0 => 'color: #333333; font-style: italic;',
+            1 => 'color: #339933;',
+            2 => 'color: #006600;',
+            3 => 'color: #666666;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            'HARD' => ''
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0000dd;',
+            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;',
+            1 => 'color: #009900;',
+            2 => 'color: #009900;',
+            3 => 'color: #009900;'
+            ),
+        'REGEXPS' => array(
+            1 => 'color: #006600;'
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        1 => "#(?<=\\x2F)[\\w-]+#"
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
diff --git a/vendor/easybook/geshi/geshi/povray.php b/vendor/geshi/geshi/src/geshi/povray.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/povray.php
rename to vendor/geshi/geshi/src/geshi/povray.php
index 83411b6bf8c36ff0ed439308a66e159717bdae5d..eb75d41c5b8ea32aa18803d2f8159fe481f886b7 100644
--- a/vendor/easybook/geshi/geshi/povray.php
+++ b/vendor/geshi/geshi/src/geshi/povray.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Carl Fürstenberg (azatoth@gmail.com)
  * Copyright: © 2007 Carl Fürstenberg
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/07/11
  *
  * Povray language file for GeSHi.
@@ -196,4 +196,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/powerbuilder.php b/vendor/geshi/geshi/src/geshi/powerbuilder.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/powerbuilder.php
rename to vendor/geshi/geshi/src/geshi/powerbuilder.php
index a0559534756e80b2093580fbaf7d78a241e1a0df..b93e7dd90f6fae1cb1c93195e43115dc6c058013 100644
--- a/vendor/easybook/geshi/geshi/powerbuilder.php
+++ b/vendor/geshi/geshi/src/geshi/powerbuilder.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Doug Porter (powerbuilder.geshi@gmail.com)
  * Copyright: (c) 2009 Doug Porter
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/07/13
  *
  * PowerBuilder (PowerScript) language file for GeSHi.
@@ -129,7 +129,8 @@ $language_data = array (
             'dragleave!', 'dragobject!', 'dragwithin!', 'drawobject!',
             'dropdownlistbox!', 'dropdownpicturelistbox!', 'drophighlighttreeitem!', 'dwobject!',
             'dynamicdescriptionarea!', 'dynamicstagingarea!', 'easteuropecharset!', 'editchanged!',
-            'editmask!', 'editmenu!', 'end!', 'endlabeledit!',
+            'editmask!', 'editmenu!', 'encodingansi!', 'encodingutf8!',
+            'encodingutf16le!', 'encodingutf16be!', 'end!', 'endlabeledit!',
             'enterprise!', 'enterpriseonlyfeature!', 'enumeratedtype!', 'enumerationdefinition!',
             'enumerationitemdefinition!', 'environment!', 'error!', 'errorlogging!',
             'eventnotexisterror!', 'eventwrongprototypeerror!', 'excel!', 'excel5!',
@@ -414,4 +415,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/powershell.php b/vendor/geshi/geshi/src/geshi/powershell.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/powershell.php
rename to vendor/geshi/geshi/src/geshi/powershell.php
index f1842cff3d1077f0aec00ed2070aa3a5afabf311..4230459183c7960029cadbdc7c0de64614510e54 100644
--- a/vendor/easybook/geshi/geshi/powershell.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/06/20
  *
  * PowerShell language file for GeSHi.
@@ -273,4 +273,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/proftpd.php b/vendor/geshi/geshi/src/geshi/proftpd.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/proftpd.php
rename to vendor/geshi/geshi/src/geshi/proftpd.php
index bd00fefe1cff0a1b282e0bbbd53bc725ec604d8b..99ae9664d8dbb08404c7a5bef72e22541e279c6f 100644
--- a/vendor/easybook/geshi/geshi/proftpd.php
+++ b/vendor/geshi/geshi/src/geshi/proftpd.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/01/25
  *
  * ProFTPd language file for GeSHi.
@@ -353,21 +353,20 @@ $language_data = array (
         'ENABLE_FLAGS' => array(
             'BRACKETS' => GESHI_NEVER,
             'SYMBOLS' => GESHI_NEVER
-        ),
+            ),
         'KEYWORDS' => array(
             2 => array(
                 'DISALLOWED_BEFORE' => '(?<=\s)(?<!=)',
                 'DISALLOWED_AFTER' => '(?!\+)(?!\w)',
-            ),
+                ),
             3 => array(
                 'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
                 'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-            ),
+                ),
             4 => array(
                 'DISALLOWED_BEFORE' => '(?<=\s)(?<!=)',
                 'DISALLOWED_AFTER' => '(?!\+)(?=\/|(?:\s+\w+)*\s*&gt;)',
+                )
             )
         )
-    )
 );
-
diff --git a/vendor/easybook/geshi/geshi/progress.php b/vendor/geshi/geshi/src/geshi/progress.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/progress.php
rename to vendor/geshi/geshi/src/geshi/progress.php
index 50a8a6d94164053577e9a14eb762cef03721ba89..154147286063f9104bc753d5c3c4a6ecc7da881c 100644
--- a/vendor/easybook/geshi/geshi/progress.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/07/11
  *
  * Progress language file for GeSHi.
@@ -481,4 +481,3 @@ $language_data = array(
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/prolog.php b/vendor/geshi/geshi/src/geshi/prolog.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/prolog.php
rename to vendor/geshi/geshi/src/geshi/prolog.php
index 2ebaac36376f9319393a27c7f5e7a3f2dcffd54b..f3c8e8f1961a23c7843353a235a6089b3ff41c9b 100644
--- a/vendor/easybook/geshi/geshi/prolog.php
+++ b/vendor/geshi/geshi/src/geshi/prolog.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/10/02
  *
  * Prolog language file for GeSHi.
@@ -139,4 +139,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/properties.php b/vendor/geshi/geshi/src/geshi/properties.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/properties.php
rename to vendor/geshi/geshi/src/geshi/properties.php
index e592795fdfd54c34b24ba84ad37ae359007ce48a..3cbde9d3a2ef6ef6cd478fbef719d2136fe22b15 100644
--- a/vendor/easybook/geshi/geshi/properties.php
+++ b/vendor/geshi/geshi/src/geshi/properties.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Edy Hinzen
  * Copyright: (c) 2009 Edy Hinzen
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/04/03
  *
  * Property language file for GeSHi.
@@ -123,4 +123,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/providex.php b/vendor/geshi/geshi/src/geshi/providex.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/providex.php
rename to vendor/geshi/geshi/src/geshi/providex.php
index 1a7b08bbee976ca693f5cb93629257aaab0e49d9..2d09be4322dd8b8ecc1530c4f8c8e266c8c39d99 100644
--- a/vendor/easybook/geshi/geshi/providex.php
+++ b/vendor/geshi/geshi/src/geshi/providex.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jeff Wilder (jeff@coastallogix.com)
  * Copyright:  (c) 2008 Coastal Logix (http://www.coastallogix.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/10/18
  *
  * ProvideX language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/purebasic.php b/vendor/geshi/geshi/src/geshi/purebasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/purebasic.php
rename to vendor/geshi/geshi/src/geshi/purebasic.php
index 1bd4e790f118c63adc84afcca2c37182e872c579..e40890b2c4330c5d7d0ff14bfdbebbdd27d7c0f9 100644
--- a/vendor/easybook/geshi/geshi/purebasic.php
+++ b/vendor/geshi/geshi/src/geshi/purebasic.php
@@ -4,7 +4,7 @@
  * -------
  * Author: GuShH
  * Copyright: (c) 2009 Gustavo Julio Fiorenza
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 13/06/2009
  *
  * PureBasic language file for GeSHi.
@@ -299,4 +299,3 @@ $language_data = array (
         1 => false
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/pycon.php b/vendor/geshi/geshi/src/geshi/pycon.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/pycon.php
rename to vendor/geshi/geshi/src/geshi/pycon.php
index a2159123b3dd1a8320adb5ba30eeb2d322e7500d..31531a7fda06ceaa0dd74acb2070125ea92a524b 100644
--- a/vendor/easybook/geshi/geshi/pycon.php
+++ b/vendor/geshi/geshi/src/geshi/pycon.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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * Python language file for GeSHi.
@@ -60,4 +60,3 @@ if(!isset($language_data['COMMENT_REGEXP'])) {
 
 $language_data['COMMENT_REGEXP'][-1] = '/(?:^|\A\s)(?:>>>|\.\.\.)/m';
 $language_data['STYLES']['COMMENTS'][-1] = 'color: #444444;';
-
diff --git a/vendor/easybook/geshi/geshi/pys60.php b/vendor/geshi/geshi/src/geshi/pys60.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/pys60.php
rename to vendor/geshi/geshi/src/geshi/pys60.php
index 865b59adbd0e5810a6225cc269671a6b34330f0b..caedc2ff7e825a2c97bca606548b2db08218edbb 100644
--- a/vendor/easybook/geshi/geshi/pys60.php
+++ b/vendor/geshi/geshi/src/geshi/pys60.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Sohan Basak (ronnie.basak96 @gmail.com)
  * Copyright: (c) 2012 Sohan Basak (http://tothepower.tk),  Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2012/05/03
  *
  * Python for S60 language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/python.php b/vendor/geshi/geshi/src/geshi/python.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/python.php
rename to vendor/geshi/geshi/src/geshi/python.php
index b534dfc47aafb0a526437235a01dd6467b920683..3df07ea4f557e20c6025e8d01047cd385f573ff0 100644
--- a/vendor/easybook/geshi/geshi/python.php
+++ b/vendor/geshi/geshi/src/geshi/python.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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * Python language file for GeSHi.
@@ -240,4 +240,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/q.php b/vendor/geshi/geshi/src/geshi/q.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/q.php
rename to vendor/geshi/geshi/src/geshi/q.php
index c1ea9aa4a37d91aa61ef00faadb4bb32253d6d3f..926ddbf07d29597f9beb6a20f14a12fd92196dd5 100644
--- a/vendor/easybook/geshi/geshi/q.php
+++ b/vendor/geshi/geshi/src/geshi/q.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Ian Roddis (ian.roddis@proteanmind.net)
  * Copyright: (c) 2008 Ian Roddis (http://proteanmind.net)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/01/21
  *
  * q/kdb+ language file for GeSHi.
@@ -145,4 +145,3 @@ $language_data = array (
         2   => '',
         ),
 );
-
diff --git a/vendor/easybook/geshi/geshi/qbasic.php b/vendor/geshi/geshi/src/geshi/qbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/qbasic.php
rename to vendor/geshi/geshi/src/geshi/qbasic.php
index b805d297057e99bd372e4bc6a50be0a6c55e1895..0a09b4d4f82a77e124db277f56e74bf6f7a7a4e3 100644
--- a/vendor/easybook/geshi/geshi/qbasic.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/20
  *
  * QBasic/QuickBASIC language file for GeSHi.
@@ -158,4 +158,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 8
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/qml.php b/vendor/geshi/geshi/src/geshi/qml.php
new file mode 100644
index 0000000000000000000000000000000000000000..3aa345766d10f7b90a2845c33bb1563821175d5d
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/qml.php
@@ -0,0 +1,351 @@
+<?php
+/*************************************************************************************
+ * qml.php
+ * --------------
+ * Author: J-P Nurmi <jpnurmi@gmail.com>
+ * Copyright: (c) 2012-2014 J-P Nurmi <jpnurmi@gmail.com>
+ * Release Version: 1.0.9.0
+ * Date Started: 2012/08/19
+ *
+ * QML language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/06/29 (1.0.8.13)
+ *  - Synced QML types from Qt 5.3:
+ *    http://qt-project.org/doc/qt-5/modules-qml.html
+ * 2012/08/19
+ *  - First version based on Qt 4
+ *
+ * TODO (updated 2014/06/29)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     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' => 'QML',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        // comments
+        2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])*(?<!\s)\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
+        // property binding
+        3 => "/([a-z][\\w\\.]*)(?=:)/",
+        // TODO: property name (fixed length lookbehind assertion?)
+        4 => "/(?<=property\\s+\\w+\\s+)(\\w+)/"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'as','alias','break','case','catch','continue','const','debugger',
+            'default','delete','do','else','finally','for','function',
+            'if','import','in','instanceof','new','on','public','property',
+            'readonly','return','signal','switch','this','throw','try',
+            'typeof','while','with'
+            ),
+        2 => array(
+            'action','bool','color','date','double','enumeration','font',
+            'int','list','matrix4x4','point','quaternion','real','rect',
+            'size','string','time','url','var','variant','vector2d',
+            'vector3d','vector4d','void'
+            ),
+        // http://qt-project.org/doc/qt-5/qtbluetooth-qmlmodule.html
+        3 => array(
+            'BluetoothDiscoveryModel','BluetoothService','BluetoothSocket'
+            ),
+        // http://qt-project.org/doc/qt-5/qtgraphicaleffects-qmlmodule.html
+        4 => array(
+            'Blend','BrightnessContrast','ColorOverlay','Colorize',
+            'ConicalGradient','Desaturate','DirectionalBlur','Displace',
+            'DropShadow','FastBlur','GammaAdjust','GaussianBlur','Glow',
+            'HueSaturation','InnerShadow','LevelAdjust','LinearGradient',
+            'MaskedBlur','OpacityMask','RadialBlur','RadialGradient',
+            'RectangularGlow','RecursiveBlur','ThresholdMask','ZoomBlur'
+            ),
+        // http://qt-project.org/doc/qt-5/qtaudioengine-qmlmodule.html
+        5 => array(
+            'AttenuationModelLinear','AttenuationModelInverse','AudioCategory',
+            'AudioEngine','AudioListener','AudioSample','PlayVariation',
+            'Sound','SoundInstance'
+            ),
+        // http://qt-project.org/doc/qt-5/qtmultimedia-qmlmodule.html
+        6 => array(
+            'Video','Audio','MediaPlayer','Camera','CameraCapture',
+            'CameraExposure','CameraFlash','CameraFocus','CameraImageProcessing',
+            'CameraRecorder','Radio','RadioData','Torch','SoundEffect','VideoOutput'
+            ),
+        // http://qt-project.org/doc/qt-5/qtnfc-qmlmodule.html
+        7 => array(
+            'NdefFilter','NdefMimeRecord','NdefTextRecord','NdefUriRecord',
+            'NearField','NdefRecord'
+            ),
+        // http://qt-project.org/doc/qt-5/qtpositioning-qmlmodule.html
+        8 => array(
+            'QtPositioning','CoordinateAnimation','Position','PositionSource',
+            'Address','Location'
+            ),
+        // http://qt-project.org/doc/qt-5/qtqml-models-qmlmodule.html
+        9 => array(
+            'DelegateModel','DelegateModelGroup','ListModel','ListElement','ObjectModel'
+            ),
+        // http://qt-project.org/doc/qt-5/qtqml-qmlmodule.html
+        10 => array(
+            'Binding','Component','Connections','Date','Instantiator',
+            'Locale','Number','Qt','QtObject','String','Timer'
+            ),
+        // http://qt-project.org/doc/qt-5/qt-labs-folderlistmodel-qmlmodule.html
+        11 => array(
+            'FolderListModel'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-localstorage-qmlmodule.html
+        12 => array(
+            'openDatabaseSync'
+            ),
+        // http://qt-project.org/doc/qt-5/qt-labs-settings-qmlmodule.html
+        13 => array(
+            'Settings'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-window-qmlmodule.html
+        14 => array(
+            'Screen','Window','CloseEvent'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-xmllistmodel-qmlmodule.html
+        15 => array(
+            'XmlRole','XmlListModel'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-particles-qmlmodule.html
+        16 => array(
+            'Age','AngleDirection','CumulativeDirection','CustomParticle',
+            'Direction','EllipseShape','Friction','Gravity','GroupGoal',
+            'ImageParticle','ItemParticle','LineShape','MaskShape','Affector',
+            'Emitter','Shape','ParticleGroup','ParticlePainter','ParticleSystem',
+            'Attractor','PointDirection','RectangleShape','SpriteGoal',
+            'TargetDirection','TrailEmitter','Turbulence','Particle','Wander'
+            ),
+        // http://qt-project.org/doc/qt-5/qttest-qmlmodule.html
+        17 => array(
+            'SignalSpy','TestCase'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-qmltypereference.html
+        18 => array(
+            'Item','Rectangle','Image','BorderImage','AnimatedImage','AnimatedSprite',
+            'SpriteSequence','Text','Accessible','Gradient','GradientStop','SystemPalette',
+            'Sprite','FontLoader','Repeater','Loader','Visual Item Transformations','Transform',
+            'Scale','Rotation','Translate','MouseArea','Keys','KeyNavigation','FocusScope',
+            'Flickable','PinchArea','MultiPointTouchArea','Drag','DropArea','TextInput',
+            'TextEdit','IntValidator','DoubleValidator','RegExpValidator','TouchPoint',
+            'PinchEvent','WheelEvent','MouseEvent','KeyEvent','DragEvent','Positioner',
+            'Column','Row','Grid','Flow','LayoutMirroring','State','PropertyChanges',
+            'StateGroup','StateChangeScript','ParentChange','AnchorChanges','Transition',
+            'ViewTransition','SequentialAnimation','ParallelAnimation','Behavior','PropertyAction',
+            'PauseAnimation','SmoothedAnimation','SpringAnimation','ScriptAction','PropertyAnimation',
+            'NumberAnimation','Vector3dAnimation','ColorAnimation','RotationAnimation','ParentAnimation',
+            'AnchorAnimation','PathAnimation','XAnimator','YAnimator','ScaleAnimator','RotationAnimator',
+            'OpacityAnimator','UniformAnimator','Lower-level Animation Types','PathInterpolator',
+            'AnimationController','Path','PathLine','PathQuad','PathCubic','PathArc','PathCurve',
+            'PathSvg','PathAttribute','PathPercent','VisualItemModel','VisualDataModel','VisualDataGroup',
+            'ListView','GridView','PathView','Package','Flipable','ShaderEffect','ShaderEffectSource',
+            'GridMesh','WorkerScript','Canvas','Context2D','CanvasGradient','CanvasPixelArray',
+            'CanvasImageData','TextMetrics',
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-controls-qmlmodule.html
+        19 => array(
+            'ApplicationWindow','BusyIndicator','Button','Calendar',
+            'CheckBox','ComboBox','GroupBox','Label','Menu','MenuBar',
+            'ProgressBar','RadioButton','ScrollView','Slider','SpinBox',
+            'SplitView','StackView','StackViewDelegate','StatusBar',
+            'Switch','Tab','TabView','TableView','TableViewColumn',
+            'TextArea','TextField','ToolBar','ToolButton','Action',
+            'ExclusiveGroup','MenuSeparator','MenuItem','Stack'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-dialogs-qmlmodule.html
+        20 => array(
+            'Dialog','ColorDialog','FileDialog','FontDialog','MessageDialog'
+            ),
+        // http://qt-project.org/doc/qt-5/qtquick-layouts-qmlmodule.html
+        21 => array(
+            'Layout','RowLayout','ColumnLayout','GridLayout'
+            ),
+        // http://qt-project.org/doc/qt-5/qtsensors-qmlmodule.html
+        22 => array(
+            'Accelerometer','AccelerometerReading','Altimeter','AltimeterReading',
+            'AmbientLightReading','AmbientLightSensor','AmbientTemperatureReading',
+            'AmbientTemperatureSensor','Compass','CompassReading','Gyroscope',
+            'GyroscopeReading','HolsterReading','HolsterSensor','IRProximityReading',
+            'IRProximitySensor','LightReading','LightSensor','Magnetometer',
+            'MagnetometerReading','OrientationReading','OrientationSensor',
+            'PressureReading','PressureSensor','ProximityReading','ProximitySensor',
+            'RotationReading','RotationSensor','SensorGesture','SensorGlobal',
+            'SensorReading','TapReading','TapSensor','TiltReading','TiltSensor'
+            ),
+        // http://qt-project.org/doc/qt-5/qtwinextras-qmlmodule.html
+        23 => array(
+            'JumpListDestination','JumpListLink','JumpListSeparator','DwmFeatures',
+            'JumpList','JumpListCategory','TaskbarButton','ThumbnailToolBar','ThumbnailToolButton'
+            ),
+        // http://qt-project.org/doc/qt-5/qtwebkit-qmlmodule.html
+        24 => array(
+            'WebView','WebLoadRequest'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}',
+        '+', '-', '*', '/', '%',
+        '!', '@', '&', '|', '^',
+        '<', '>', '=',
+        ',', ';', '?', ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        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,
+        18 => true,
+        19 => true,
+        20 => true,
+        21 => true,
+        22 => true,
+        23 => true,
+        24 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #808041;',
+            2 => 'color: #808041;',
+            3 => 'color: #800780;',
+            4 => 'color: #800780;',
+            5 => 'color: #800780;',
+            6 => 'color: #800780;',
+            7 => 'color: #800780;',
+            8 => 'color: #800780;',
+            9 => 'color: #800780;',
+            10 => 'color: #800780;',
+            11 => 'color: #800780;',
+            12 => 'color: #800780;',
+            13 => 'color: #800780;',
+            14 => 'color: #800780;',
+            15 => 'color: #800780;',
+            16 => 'color: #800780;',
+            17 => 'color: #800780;',
+            18 => 'color: #800780;',
+            19 => 'color: #800780;',
+            20 => 'color: #800780;',
+            21 => 'color: #800780;',
+            22 => 'color: #800780;',
+            23 => 'color: #800780;',
+            24 => 'color: #800780;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #008025;',
+            2 => 'color: #008025;',
+            3 => 'color: #970009;',
+            4 => 'color: #970009;',
+            'MULTI' => 'color: #008025;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #008025;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #000000;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #000000;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            0 => '',
+            1 => '',
+            2 => '',
+            3 => ''
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://qt-project.org/doc/qt-5/qml-qtbluetooth-{FNAMEL}.html',
+        4 => 'http://qt-project.org/doc/qt-5/qml-qtgraphicaleffects-{FNAMEL}.html',
+        5 => 'http://qt-project.org/doc/qt-5/qml-qtaudioengine-{FNAMEL}.html',
+        6 => 'http://qt-project.org/doc/qt-5/qml-qtmultimedia-{FNAMEL}.html',
+        7 => 'http://qt-project.org/doc/qt-5/qml-qtnfc-{FNAMEL}.html',
+        8 => 'http://qt-project.org/doc/qt-5/qml-qtpositioning-{FNAMEL}.html',
+        9 => 'http://qt-project.org/doc/qt-5/qml-qtqml-models-{FNAMEL}.html',
+        10 => 'http://qt-project.org/doc/qt-5/qml-qtqml-{FNAMEL}.html',
+        11 => 'http://qt-project.org/doc/qt-5/qml-qt-labs-folderlistmodel-{FNAMEL}.html',
+        12 => 'http://qt-project.org/doc/qt-5/qtquick-localstorage-qmlmodule.html',
+        13 => 'http://qt-project.org/doc/qt-5/qml-qt-labs-settings-{FNAMEL}.html',
+        14 => 'http://qt-project.org/doc/qt-5/qml-qtquick-window-{FNAMEL}.html',
+        15 => 'http://qt-project.org/doc/qt-5/qml-qtquick-xmllistmodel-{FNAMEL}.html',
+        16 => 'http://qt-project.org/doc/qt-5/qml-qtquick-particles-{FNAMEL}.html',
+        17 => 'http://qt-project.org/doc/qt-5/qml-qttest-{FNAMEL}.html',
+        18 => 'http://qt-project.org/doc/qt-5/qml-qtquick-{FNAMEL}.html',
+        19 => 'http://qt-project.org/doc/qt-5/qml-qtquick-controls-{FNAMEL}.html',
+        20 => 'http://qt-project.org/doc/qt-5/qml-qtquick-dialogs-{FNAMEL}.html',
+        21 => 'http://qt-project.org/doc/qt-5/qml-qtquick-layouts-{FNAMEL}.html',
+        22 => 'http://qt-project.org/doc/qt-5/qml-qtsensors-{FNAMEL}.html',
+        23 => 'http://qt-project.org/doc/qt-5/qml-qtwinextras-{FNAMEL}.html',
+        24 => 'http://qt-project.org/doc/qt-5/qml-qtwebkit-{FNAMEL}.html'
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(
+        0 => array(
+            '<script type="text/javascript">' => '</script>'
+            ),
+        1 => array(
+            '<script language="javascript">' => '</script>'
+            )
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true,
+        1 => true
+        )
+);
diff --git a/vendor/easybook/geshi/geshi/racket.php b/vendor/geshi/geshi/src/geshi/racket.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/racket.php
rename to vendor/geshi/geshi/src/geshi/racket.php
index c0d931b41f8c0c4ead844cb7b32474d9fdd577ce..2b25b9bba021acbd910a87b31baab4a7587d3c30 100644
--- a/vendor/easybook/geshi/geshi/racket.php
+++ b/vendor/geshi/geshi/src/geshi/racket.php
@@ -4,7 +4,7 @@
  * ----------
  * Author:          Tim Brown (tim@timb.net)
  * Copyright:   (c) 2013 Tim Brown ((https://github.com/tim-brown/geshi-racket))
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started:    2013-03-01
  *
  * Racket language file for GeSHi.
@@ -553,7 +553,7 @@ $language_data = array(
             'syntax/loc', 'time', 'unless', 'unquote', 'unquote-splicing',
             'unsyntax', 'unsyntax-splicing', 'when', 'with-continuation-mark',
             'with-handlers', 'with-handlers*', 'with-input-from-file',
-            'with-output-to-file', 'with-syntax', '?',
+            'with-output-to-file', 'with-syntax', 'λ',
             ),
 
         3 => array(
@@ -623,7 +623,7 @@ $language_data = array(
             'member-name-key-hash-code', 'member-name-key=?',
             'member-name-key?', 'merge-input', 'method-in-interface?',
             'mixin-contract', 'n-&gt;th', 'nan?', 'natural-number/c', 'negate',
-            'new-?/c', 'new-?/c', 'ninth', 'normalize-path', 'object%',
+            'new-∀/c', 'new-∃/c', 'ninth', 'normalize-path', 'object%',
             'object-&gt;vector', 'object-info', 'object-interface',
             'object-method-arity-includes?', 'object=?', 'object?',
             'open-output-nowhere', 'order-of-magnitude', 'other-execute-bit',
diff --git a/vendor/easybook/geshi/geshi/rails.php b/vendor/geshi/geshi/src/geshi/rails.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/rails.php
rename to vendor/geshi/geshi/src/geshi/rails.php
index d41bd9a6f837adf302e3e670064c85e3134e97bb..f5683b85d4d89c2ecf492bb98ecd3456d39ab019 100644
--- a/vendor/easybook/geshi/geshi/rails.php
+++ b/vendor/geshi/geshi/src/geshi/rails.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Moises Deniz
  * Copyright: (c) 2005 Moises Deniz
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/03/21
  *
  * Ruby (with Ruby on Rails Framework) language file for GeSHi.
@@ -399,6 +399,6 @@ $language_data = array (
             )
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
+        0 => true
         )
 );
diff --git a/vendor/easybook/geshi/geshi/rbs.php b/vendor/geshi/geshi/src/geshi/rbs.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/rbs.php
rename to vendor/geshi/geshi/src/geshi/rbs.php
index 02c2fcfa8ff1718e516009d1a9fa925bcc5b6f56..76610d1e491841181d2f1ab1fe07985c12eb256e 100644
--- a/vendor/easybook/geshi/geshi/rbs.php
+++ b/vendor/geshi/geshi/src/geshi/rbs.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Deng Wen Gang (deng@priity.com)
  * Copyright: (c) 2013 Deng Wen Gang
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2013/01/15
  *
  * RBScript language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/rebol.php b/vendor/geshi/geshi/src/geshi/rebol.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/rebol.php
rename to vendor/geshi/geshi/src/geshi/rebol.php
index 12d4b9eae172a7efa512de81b06db80aba453dc9..d11447ab50e56a912d69e61837e09de3ff873ce8 100644
--- a/vendor/easybook/geshi/geshi/rebol.php
+++ b/vendor/geshi/geshi/src/geshi/rebol.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Lecanu Guillaume (Guillaume@LyA.fr)
  * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/12/22
  *
  * Rebol language file for GeSHi.
@@ -192,4 +192,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/reg.php b/vendor/geshi/geshi/src/geshi/reg.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/reg.php
rename to vendor/geshi/geshi/src/geshi/reg.php
index 2034d5adbe03484c0f0f29cab4b682d8a9f53510..e73c961f9fb94cdd7074cdaae28ad517dc03beb7 100644
--- a/vendor/easybook/geshi/geshi/reg.php
+++ b/vendor/geshi/geshi/src/geshi/reg.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Sean Hanna (smokingrope@gmail.com)
  * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 03/15/2006
  *
  * Microsoft Registry Editor language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/rexx.php b/vendor/geshi/geshi/src/geshi/rexx.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/rexx.php
rename to vendor/geshi/geshi/src/geshi/rexx.php
index 1189ac5be20e831ec9786c282a24206de64bfbd1..9e0a73e7cc59ca6241cc672ec367a65a76d283dd 100644
--- a/vendor/easybook/geshi/geshi/rexx.php
+++ b/vendor/geshi/geshi/src/geshi/rexx.php
@@ -6,7 +6,7 @@
  * Contributors:
  *    - Walter Pachl (pachl@chello.at)
  * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/01/07
  *
  * Rexx language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/robots.php b/vendor/geshi/geshi/src/geshi/robots.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/robots.php
rename to vendor/geshi/geshi/src/geshi/robots.php
index ff05c091e5e2aa23e7210cbab5eff3a8282865aa..91fd87e9c1bbc91ebdb7f16ccd3e75e88c90955d 100644
--- a/vendor/easybook/geshi/geshi/robots.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/02/17
  *
  * robots.txt language file for GeSHi.
@@ -96,4 +96,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/rpmspec.php b/vendor/geshi/geshi/src/geshi/rpmspec.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/rpmspec.php
rename to vendor/geshi/geshi/src/geshi/rpmspec.php
index 43c8a929d5f3a689585d1ab6773469f005014abb..55d722d8597c8805a424610b8c6954c5a3784770 100644
--- a/vendor/easybook/geshi/geshi/rpmspec.php
+++ b/vendor/geshi/geshi/src/geshi/rpmspec.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Paul Grinberg (gri6507 TA unity-linux TOD org)
  * Copyright: (c) 2010 Paul Grinberg
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/04/27
  *
  * RPM Spec language file for GeSHi.
@@ -129,4 +129,3 @@ $language_data = array (
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(),
 );
-
diff --git a/vendor/easybook/geshi/geshi/rsplus.php b/vendor/geshi/geshi/src/geshi/rsplus.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/rsplus.php
rename to vendor/geshi/geshi/src/geshi/rsplus.php
index 944a567e1005a92a9a616aeb849f0a4bf3858e00..6c8771dd449a63d1bb79523582577ed5c682a7f6 100644
--- a/vendor/easybook/geshi/geshi/rsplus.php
+++ b/vendor/geshi/geshi/src/geshi/rsplus.php
@@ -7,7 +7,7 @@
  *  - Benilton Carvalho (beniltoncarvalho@gmail.com)
  *  - Fernando Henrique Ferraz Pereira da Rosa (mentus@gmail.com)
  * Copyright: (c) 2009 Ron Fredericks (http://www.LectureMaker.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/03/28
  *
  * R language file for GeSHi.
@@ -479,4 +479,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/ruby.php b/vendor/geshi/geshi/src/geshi/ruby.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/ruby.php
rename to vendor/geshi/geshi/src/geshi/ruby.php
index baa0319a15b46eca2a516364837bca8c38a4f4b8..b47953d8eb0c3df3e16bf7862fde8517a68c03eb 100644
--- a/vendor/easybook/geshi/geshi/ruby.php
+++ b/vendor/geshi/geshi/src/geshi/ruby.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Moises Deniz
  * Copyright: (c) 2007 Moises Deniz
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/03/21
  *
  * Ruby language file for GeSHi.
@@ -227,4 +227,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 2
 );
-
diff --git a/vendor/easybook/geshi/geshi/rust.php b/vendor/geshi/geshi/src/geshi/rust.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/rust.php
rename to vendor/geshi/geshi/src/geshi/rust.php
index 07ba51a02a1f1fd01d0029ff4e62ad98085662ac..46d46c817b6bcba8f2388137cb5af69fe550afec 100644
--- a/vendor/easybook/geshi/geshi/rust.php
+++ b/vendor/geshi/geshi/src/geshi/rust.php
@@ -4,13 +4,16 @@
  * --------
  * Author: Edward Hart (edward.dan.hart@gmail.com)
  * Copyright: (c) 2013 Edward Hart
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2013/10/20
  *
  * Rust language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2014/03/18
+ *   -  Added support for raw strings
+ *   -  Color symbols
  * 2013/10/20
  *   -  First Release
  *
@@ -42,7 +45,10 @@ $language_data = array(
 
     'COMMENT_SINGLE' => array('//'),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(),
+    'COMMENT_REGEXP' => array(
+        // Raw strings
+        1 => '/\\br(\\#*)".*?"\\1/'
+        ),
 
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
@@ -171,6 +177,7 @@ $language_data = array(
             ),
         'COMMENTS' => array(
             0 => 'color: #a50; font-style: italic;',
+            1 => 'color: #a11;',
             'MULTI' => 'color: #a50; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
@@ -200,7 +207,7 @@ $language_data = array(
             1 => 'color: #164;'
             ),
         'SYMBOLS' => array(
-            0 => ''
+            0 => 'color: #339933;'
             ),
         'REGEXPS' => array(
             ),
diff --git a/vendor/easybook/geshi/geshi/sas.php b/vendor/geshi/geshi/src/geshi/sas.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/sas.php
rename to vendor/geshi/geshi/src/geshi/sas.php
index faf16ff70dd292d5e999c073619f3a56c791a094..31446d715c3cf5211ed885079e8e40470cf3b026 100644
--- a/vendor/easybook/geshi/geshi/sas.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/12/27
  *
  * SAS language file for GeSHi. Based on the sas vim file.
@@ -286,4 +286,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/sass.php b/vendor/geshi/geshi/src/geshi/sass.php
new file mode 100644
index 0000000000000000000000000000000000000000..a4408a9912e0a37309296796d66c6620aacd1293
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/sass.php
@@ -0,0 +1,590 @@
+<?php
+/*************************************************************************************
+ * sass.php
+ * -------
+ * Author: Javier Eguiluz (javier.eguiluz@gmail.com)
+ * Copyright: (c) 2014 Javier Eguiluz (javier.eguiluz@gmail.com)
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/05/10
+ *
+ * SASS language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/05/10 (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' => 'Sass',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        // properties
+        1 => array(
+            'azimuth',
+            'background-attachment',
+            'background-color',
+            'background-image',
+            'background-position',
+            'background-repeat',
+            'background',
+            'border-bottom-color',
+            'border-radius',
+            'border-top-left-radius',
+            'border-top-right-radius',
+            'border-bottom-right-radius',
+            'border-bottom-left-radius',
+            'border-bottom-style',
+            'border-bottom-width',
+            'border-left-color',
+            'border-left-style',
+            'border-left-width',
+            'border-right',
+            'border-right-color',
+            'border-right-style',
+            'border-right-width',
+            'border-top-color',
+            'border-top-style',
+            'border-top-width',
+            'border-bottom',
+            'border-collapse',
+            'border-left',
+            'border-width',
+            'border-color',
+            'border-spacing',
+            'border-style',
+            'border-top',
+            'border',
+            'box-shadow',
+            'caption-side',
+            'clear',
+            'clip',
+            'color',
+            'content',
+            'counter-increment',
+            'counter-reset',
+            'cue-after',
+            'cue-before',
+            'cue',
+            'cursor',
+            'direction',
+            'display',
+            'elevation',
+            'empty-cells',
+            'float',
+            'font-family',
+            'font-size',
+            'font-size-adjust',
+            'font-stretch',
+            'font-style',
+            'font-variant',
+            'font-weight',
+            'font',
+            'line-height',
+            'letter-spacing',
+            'list-style',
+            'list-style-image',
+            'list-style-position',
+            'list-style-type',
+            'margin-bottom',
+            'margin-left',
+            'margin-right',
+            'margin-top',
+            'margin',
+            'marker-offset',
+            'marks',
+            'max-height',
+            'max-width',
+            'min-height',
+            'min-width',
+            'orphans',
+            'outline',
+            'outline-color',
+            'outline-style',
+            'outline-width',
+            'overflow',
+            'padding-bottom',
+            'padding-left',
+            'padding-right',
+            'padding-top',
+            'padding',
+            'page',
+            'page-break-after',
+            'page-break-before',
+            'page-break-inside',
+            'pause-after',
+            'pause-before',
+            'pause',
+            'pitch',
+            'pitch-range',
+            'play-during',
+            'position',
+            'quotes',
+            'richness',
+            'right',
+            'size',
+            'speak-header',
+            'speak-numeral',
+            'speak-punctuation',
+            'speak',
+            'speech-rate',
+            'stress',
+            'table-layout',
+            'text-align',
+            'text-decoration',
+            'text-indent',
+            'text-shadow',
+            'text-transform',
+            'top',
+            'unicode-bidi',
+            'vertical-align',
+            'visibility',
+            'voice-family',
+            'volume',
+            'white-space',
+            'widows',
+            'width',
+            'word-spacing',
+            'z-index',
+            'bottom',
+            'left',
+            'height',
+            // media queries
+            'screen',
+            'orientation',
+            'min-device-width',
+            'max-device-width',
+        ),
+        // reserved words for values
+        2 => array(
+            // colors
+            'aqua',
+            'black',
+            'blue',
+            'fuchsia',
+            'gray',
+            'green',
+            'lime',
+            'maroon',
+            'navy',
+            'olive',
+            'orange',
+            'purple',
+            'red',
+            'silver',
+            'teal',
+            'white',
+            'yellow',
+            // media queries
+            'landscape',
+            'portrait',
+            // other
+            'above',
+            'absolute',
+            'always',
+            'armenian',
+            'aural',
+            'auto',
+            'avoid',
+            'baseline',
+            'behind',
+            'below',
+            'bidi-override',
+            'blink',
+            'block',
+            'bold',
+            'bolder',
+            'both',
+            'capitalize',
+            'center-left',
+            'center-right',
+            'center',
+            'circle',
+            'cjk-ideographic',
+            'close-quote',
+            'collapse',
+            'condensed',
+            'continuous',
+            'crop',
+            'crosshair',
+            'cross',
+            'cursive',
+            'dashed',
+            'decimal-leading-zero',
+            'decimal',
+            'default',
+            'digits',
+            'disc',
+            'dotted',
+            'double',
+            'e-resize',
+            'embed',
+            'extra-condensed',
+            'extra-expanded',
+            'expanded',
+            'fantasy',
+            'far-left',
+            'far-right',
+            'faster',
+            'fast',
+            'fixed',
+            'georgian',
+            'groove',
+            'hebrew',
+            'help',
+            'hidden',
+            'hide',
+            'higher',
+            'high',
+            'hiragana-iroha',
+            'hiragana',
+            'icon',
+            'inherit',
+            'inline-table',
+            'inline',
+            'inline-block',
+            'inset',
+            'inside',
+            'italic',
+            'justify',
+            'katakana-iroha',
+            'katakana',
+            'larger',
+            'large',
+            'left-side',
+            'leftwards',
+            'level',
+            'lighter',
+            'line-through',
+            'list-item',
+            'loud',
+            'lower-alpha',
+            'lower-greek',
+            'lower-roman',
+            'lowercase',
+            'ltr',
+            'lower',
+            'low',
+            'medium',
+            'message-box',
+            'middle',
+            'monospace',
+            'n-resize',
+            'narrower',
+            'ne-resize',
+            'no-close-quote',
+            'no-open-quote',
+            'no-repeat',
+            'none',
+            'normal',
+            'nowrap',
+            'nw-resize',
+            'oblique',
+            'once',
+            'open-quote',
+            'outset',
+            'outside',
+            'overline',
+            'pointer',
+            'px',
+            'relative',
+            'repeat-x',
+            'repeat-y',
+            'repeat',
+            'ridge',
+            'right-side',
+            'rightwards',
+            's-resize',
+            'sans-serif',
+            'scroll',
+            'se-resize',
+            'semi-condensed',
+            'semi-expanded',
+            'separate',
+            'serif',
+            'show',
+            'silent',
+            'slow',
+            'slower',
+            'small-caps',
+            'small-caption',
+            'smaller',
+            'soft',
+            'solid',
+            'spell-out',
+            'square',
+            'static',
+            'status-bar',
+            'super',
+            'sw-resize',
+            'table-caption',
+            'table-cell',
+            'table-column',
+            'table-column-group',
+            'table-footer-group',
+            'table-header-group',
+            'table-row',
+            'table-row-group',
+            'text',
+            'text-bottom',
+            'text-top',
+            'thick',
+            'thin',
+            'transparent',
+            'ultra-condensed',
+            'ultra-expanded',
+            'underline',
+            'upper-alpha',
+            'upper-latin',
+            'upper-roman',
+            'uppercase',
+            'url',
+            'visible',
+            'w-resize',
+            'wait',
+            'wider',
+            'x-fast',
+            'x-high',
+            'x-large',
+            'x-loud',
+            'x-low',
+            'x-small',
+            'x-soft',
+            'xx-large',
+            'xx-small',
+            'yes'
+        ),
+        // directives
+        3 => array(
+            '@at-root',
+            '@charset',
+            '@content',
+            '@debug',
+            '@each',
+            '@else',
+            '@elseif',
+            '@else if',
+            '@extend',
+            '@font-face',
+            '@for',
+            '@function',
+            '@if',
+            '@import',
+            '@include',
+            '@media',
+            '@mixin',
+            '@namespace',
+            '@page',
+            '@return',
+            '@warn',
+            '@while',
+        ),
+        // built-in Sass functions
+        4 => array(
+            'rgb',
+            'rgba',
+            'mix',
+            'hsl',
+            'hsla',
+            'hue',
+            'saturation',
+            'lightness',
+            'adjust-hue',
+            'lighten',
+            'darken',
+            'saturate',
+            'desaturate',
+            'grayscale',
+            'complement',
+            'invert',
+            'alpha',
+            'opacify',
+            'transparentize',
+            'adjust-color',
+            'scale-color',
+            'change-color',
+            'ie-hex-str',
+            'unquote',
+            'quote',
+            'str-length',
+            'str-insert',
+            'str-index',
+            'str-slice',
+            'to-upper-case',
+            'to-lower-case',
+            'percentage',
+            'round',
+            'ceil',
+            'floor',
+            'abs',
+            'min',
+            'max',
+            'random',
+            'length',
+            'nth',
+            'join',
+            'append',
+            'zip',
+            'index',
+            'list-separator',
+            'map-get',
+            'map-merge',
+            'map-remove',
+            'map-keys',
+            'map-values',
+            'map-has-key',
+            'keywords',
+            'feature-exists',
+            'variable-exists',
+            'global-variable-exists',
+            'function-exists',
+            'mixin-exists',
+            'inspect',
+            'type-of',
+            'unit',
+            'unitless',
+            'comparable',
+            'call',
+            'if',
+            'unique-id',
+        ),
+        // reserved words
+        5 => array(
+            '!important',
+            '!default',
+            '!optional',
+            'true',
+            'false',
+            'with',
+            'without',
+            'null',
+            'from',
+            'through',
+            'to',
+            'in',
+            'and',
+            'or',
+            'only',
+            'not',
+        ),
+    ),
+    'SYMBOLS' => array(
+        '(',
+        ')',
+        '{',
+        '}',
+        ':',
+        ';',
+        '>',
+        '+',
+        '*',
+        ',',
+        '^',
+        '=',
+        '&',
+        '~',
+        '!',
+        '%',
+        '?',
+        '...',
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000000; font-weight: bold;',
+            2 => 'color: #993333;',
+            3 => 'color: #990000;',
+            4 => 'color: #000000; font-weight: bold;',
+            5 => 'color: #009900;',
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #006600; font-style: italic;',
+            'MULTI' => 'color: #006600; font-style: italic;'
+        ),
+        'ESCAPE_CHAR' => array(),
+        'BRACKETS' => array(
+            0 => 'color: #00AA00;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+        ),
+        'METHODS' => array(),
+        'SYMBOLS' => array(
+            0 => 'color: #00AA00;'
+        ),
+        'SCRIPT' => array(),
+        'REGEXPS' => array(
+            0 => 'color: #cc00cc;',
+            1 => 'color: #6666ff;',
+            2 => 'color: #3333ff;',
+            3 => 'color: #933;',
+            4 => 'color: #ff6633;',
+            5 => 'color: #0066ff;',
+        )
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(
+        // Variables
+        0 => "[$][a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",
+        // Hexadecimal colors
+        1 => "\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",
+        // CSS Pseudo classes
+        // note: & is needed for &gt; (i.e. > )
+        2 => "(?<!\\\\):(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))",
+        // Measurements
+        3 => "[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)",
+        // Interpolation
+        4 => "(\#\{.*\})",
+        // Browser prefixed properties
+        5 => "(\-(moz|ms|o|webkit)\-[a-z\-]*)",
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'TAB_WIDTH' => 2,
+);
diff --git a/vendor/easybook/geshi/geshi/scala.php b/vendor/geshi/geshi/src/geshi/scala.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/scala.php
rename to vendor/geshi/geshi/src/geshi/scala.php
index 681c1977ccd12db90c3715256a2f46072c74ec18..d288eb0c2e8836cbb6d87e6b5e0b1435040bd233 100644
--- a/vendor/easybook/geshi/geshi/scala.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/02/08
  *
  * Scala language file for GeSHi.
@@ -134,4 +134,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/scheme.php b/vendor/geshi/geshi/src/geshi/scheme.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/scheme.php
rename to vendor/geshi/geshi/src/geshi/scheme.php
index 59870846b3e23b08a7210aa26353b7c12d3d6f65..3230d5f585cdd7eab76819cc9f7549cff3942e04 100644
--- a/vendor/easybook/geshi/geshi/scheme.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * Scheme language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/scilab.php b/vendor/geshi/geshi/src/geshi/scilab.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/scilab.php
rename to vendor/geshi/geshi/src/geshi/scilab.php
index ebd16375931028d13f85ad771071079082f97efd..6b355203271540131eb6d2a635cb440af136b0e8 100644
--- a/vendor/easybook/geshi/geshi/scilab.php
+++ b/vendor/geshi/geshi/src/geshi/scilab.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Christophe David (geshi@christophedavid.org)
  * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/08/04
  *
  * SciLab language file for GeSHi.
@@ -291,4 +291,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/scl.php b/vendor/geshi/geshi/src/geshi/scl.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/scl.php
rename to vendor/geshi/geshi/src/geshi/scl.php
index 6b0e494f2aca8698a7bed80528fb2e469c7ee1a8..761a0ac1ea0e1bf74e489c216468384a4bef1f3f 100644
--- a/vendor/easybook/geshi/geshi/scl.php
+++ b/vendor/geshi/geshi/src/geshi/scl.php
@@ -2,9 +2,9 @@
 /*************************************************************************************
  * <scl.php>
  * ---------------------------------
- * Author: Leonhard Hösch (leonhard.hoesch@siemens.com)
- * Copyright: (c) 2008 by Leonhard Hösch (siemens.de)
- * Release Version: 1.0.8.12
+ * Author: Leonhard Hösch (leonhard.hoesch@siemens.com)
+ * Copyright: (c) 2008 by Leonhard Hösch (siemens.de)
+ * Release Version: 1.0.9.0
  * Date Started: 2012/09/25
  *
  * SCL language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/sdlbasic.php b/vendor/geshi/geshi/src/geshi/sdlbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/sdlbasic.php
rename to vendor/geshi/geshi/src/geshi/sdlbasic.php
index b95003fccd95beb1db2537519188907dea9734ac..170c665e8af5cfe3ea82579ce658b83e6c708f9b 100644
--- a/vendor/easybook/geshi/geshi/sdlbasic.php
+++ b/vendor/geshi/geshi/src/geshi/sdlbasic.php
@@ -4,7 +4,7 @@
  * ------------
  * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/08/19
  *
  * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/smalltalk.php b/vendor/geshi/geshi/src/geshi/smalltalk.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/smalltalk.php
rename to vendor/geshi/geshi/src/geshi/smalltalk.php
index 176a9b00c475a67c2c28aa3603b1ce98f9fda4f2..d57e543023562ad7d6c828e095fe854229c66af7 100644
--- a/vendor/easybook/geshi/geshi/smalltalk.php
+++ b/vendor/geshi/geshi/src/geshi/smalltalk.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Bananeweizen (Bananeweizen@gmx.de)
  * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/03/27
  *
  * Smalltalk language file for GeSHi.
@@ -150,4 +150,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/smarty.php b/vendor/geshi/geshi/src/geshi/smarty.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/smarty.php
rename to vendor/geshi/geshi/src/geshi/smarty.php
index 883b3eb7c94296d087176d3b9fb091d7a0f0b4fd..cb8833f890afd607bfc0a90c5180778400c610c3 100644
--- a/vendor/easybook/geshi/geshi/smarty.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/07/10
  *
  * Smarty template language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/spark.php b/vendor/geshi/geshi/src/geshi/spark.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/spark.php
rename to vendor/geshi/geshi/src/geshi/spark.php
index ab934990d0f13ee71ca0efeb1b0bbce2fd1fcf08..30213ec2e89add6117e48294f1cb1ac3490a3b53 100644
--- a/vendor/easybook/geshi/geshi/spark.php
+++ b/vendor/geshi/geshi/src/geshi/spark.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Phil Thornley (tux@inmail.cz)
  * Copyright: (c) 2004 Phil Thornley (http://www.sparksure.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/08/22
  *
  * SPARK language file for GeSHi.
@@ -91,9 +91,6 @@ $language_data = array (
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;'
             ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
         'STRINGS' => array(
             0 => 'color: #7f007f;'
             ),
@@ -128,4 +125,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/sparql.php b/vendor/geshi/geshi/src/geshi/sparql.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/sparql.php
rename to vendor/geshi/geshi/src/geshi/sparql.php
index 6445fd5536635748111f324fd322f68f6d6528c2..68aaa5fd6a8bc6e8dfd3ddce26e931a091552d47 100644
--- a/vendor/easybook/geshi/geshi/sparql.php
+++ b/vendor/geshi/geshi/src/geshi/sparql.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Karima Rafes (karima.rafes@bordercloud.com)
  * Copyright: (c) 2011 Bourdercloud.com
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/11/05
  *
  * SPARQL language file for GeSHi.
@@ -151,4 +151,3 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/sql.php b/vendor/geshi/geshi/src/geshi/sql.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/sql.php
rename to vendor/geshi/geshi/src/geshi/sql.php
index 5f02d7936844094682064e1ed7670ec503bbd862..b38672933ba19afadd44866f4a770c55f3c92100 100644
--- a/vendor/easybook/geshi/geshi/sql.php
+++ b/vendor/geshi/geshi/src/geshi/sql.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Jürgen Thomas (Juergen.Thomas@vs-polis.de)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * SQL language file for GeSHi.
@@ -71,8 +71,8 @@ $language_data = array (
             'DATA', 'DATABASE', 'DATABASES', 'DATE', 'DAY', 'DEC', 'DECIMAL', 'DECLARE',
             'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DISTINCT', 'DOUBLE',
             'DOMAIN', 'DROP',
-            'ELSE', 'ENCLOSED', 'END', 'ESCAPED', 'EXCEPT', 'EXEC', 'EXECUTE', 'EXISTS', 'EXP',
-            'EXPLAIN', 'EXTRACT',
+            'ELSE', 'ELSEIF', 'ENCLOSED', 'END', 'ESCAPED', 'EXCEPT', 'EXEC', 'EXECUTE', 'EXISTS',
+            'EXP', 'EXPLAIN', 'EXTRACT',
             'FALSE', 'FIELD', 'FIELDS', 'FILTER', 'FIRST', 'FLOAT', 'FLOOR', 'FLUSH', 'FOR',
             'FOREIGN', 'FROM', 'FULL', 'FUNCTION',
             'GET', 'GROUP', 'GROUPING', 'GO', 'GOTO', 'GRANT', 'GRANTED',
@@ -166,4 +166,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/standardml.php b/vendor/geshi/geshi/src/geshi/standardml.php
new file mode 100644
index 0000000000000000000000000000000000000000..9979ac5e4551ab1d96f2288c1aa02f05af7b10a7
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/standardml.php
@@ -0,0 +1,216 @@
+<?php
+/*************************************************************************************
+ * standardml.php
+ * ----------
+ * Author: eldesh (nephits@gmail.com)
+ * Copyright: (c) 2014 eldesh (http://d.hatena.ne.jp/eldesh/)
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/02/04
+ *
+ * SML (StandardML'97) language file for GeSHi.
+ * This file also support some implementation dependent keywords by SML/NJ and SML#.
+ *
+ * CHANGES
+ * -------
+ * 2014/02/05 (1.0.8.11)
+ *   -  First Release
+ *
+ * TODO (updated 2014/02/04)
+ * -------------------------
+ * - support character literal
+ * - support Vector expressions and patterns (http://www.smlnj.org/doc/features.html)
+ * - support more Basis functions...?
+ *
+ *************************************************************************************
+ *
+ *   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' => 'StandardML',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array('(*' => '*)'),
+    'COMMENT_REGEXP' => array(1 => '/\(\*(?:(?R)|.)+?\*\)/s'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'NUMBERS' =>
+        array(
+            /* integer dec */
+            0 => GESHI_NUMBER_INT_BASIC,
+            /* integer hex */
+            1 => GESHI_NUMBER_HEX_PREFIX,
+            /* real */
+            2 => GESHI_NUMBER_FLT_SCI_ZERO,
+            /* word dec */
+            3 => '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0w[0-9]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+            /* word hex */
+            4 => '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0wx[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)'
+        ),
+    'KEYWORDS' => array(
+        /* main SML keywords */
+        1 => array(
+            /* deprecated: SML90 */
+            'abstype',
+
+            'and', 'andalso', 'as', 'case', 'datatype', 'else',
+            'end', 'exception', 'fn', 'fun', 'functor',
+            'if', 'in', 'infix', 'infixr', 'let', 'local', 'nonfix',
+            'of', 'op', 'open', 'orelse',
+            'rec', 'raise', 'sharing', 'sig', 'signature', 'struct', 'structure', 'then',
+            'type', 'val', 'while', 'with', 'withtype'
+            ),
+        /* Top-level type and constructors */
+        2 => array(
+            'unit', 'int', 'word', 'real', 'char', 'string', 'substring', 'exn',
+            'array', 'vector', 'bool', 'option',
+            'list'
+            ),
+        /* standard structures/signatures/functors provided by Basis library */
+        3 => array(
+            'ARRAY', 'Array', 'Array2', 'ARRAY2', 'ArraySlice', 'ARRAY_SLICE',
+            'BinIO', 'BIT_FLAGS', 'Bool', 'BOOL', 'Byte', 'CHAR', 'Char',
+            'CommandLine', 'Date', 'General', 'GenericSock', 'IEEEReal', 'IMPERATIVE_IO',
+            'ImperativeIO', 'INetSock', 'INTEGER', 'Int', 'IntInf', 'IO', 'List', 'ListPair',
+            'MATH', 'MONO_ARRAY', 'MONO_ARRAY2', 'MONO_ARRAY_SLICE', 'MONO_VECTOR',
+            'MONO_VECTOR_SLICE', 'NetHostDB', 'NetProtDB', 'NetServDB', 'Option',
+            'OS', 'OS.FileSys', 'OS.IO', 'OS.Path', 'OS.Process', 'PACK_REAL', 'PACK_WORD',
+            'Posix', 'Posix.Error', 'Posix.FileSys', 'Posix.IO', 'Posix.ProcEnv', 'Posix.Process',
+            'Posix.Signal', 'Posix.SysDB', 'Posix.TTY', 'PRIM_IO', 'PrimIO', 'REAL', 'Real', 'Socket',
+            'STREAM_IO', 'StreamIO', 'STRING', 'String', 'StringCvt', 'SUBSTRING', 'Substring', 'TEXT', 'TEXT_IO',
+            'TEXT_STREAM_IO', 'Time', 'Timer', 'Unix', 'UnixSock', 'VECTOR', 'Vector', 'VECTOR_SLICE',
+            'Windows', 'WORD', 'Word'
+            ),
+        /* Top-level value identifiers / constructors */
+        4 => array(
+            'app', 'before', 'ceil', 'chr', 'concat', 'exnMessage', 'exnName', 'explode',
+            'floor', 'foldl', 'foldr', 'getOpt', 'hd', 'ignore', 'implode', 'isSome', 'length', 'map', 'not',
+            'null', 'o', 'ord', 'print', 'rev', 'round', 'size', 'str', 'tl', 'trunc',
+            'use', 'valOf',
+            /* constructors */
+            'ref', 'true', 'false', 'NONE', 'SOME', 'LESS', 'EQUAL', 'GREATER', 'nil',
+            /* overloaded identifiers */
+            'div', 'mod', 'abs'
+            ),
+        /* standard exceptions */
+        5 => array (
+            'Bind', 'Chr', 'Div', 'Domain', 'Empty', 'Fail', 'Match', 'Overflow', 'Size', 'Span', 'Subscript'
+            ),
+        /* implementation dependent keyword (not be sorted) */
+        6 => array (
+            /** SML/NJ */
+            /* functor signature > http://www.smlnj.org/doc/features.html */
+            'funsig',
+            /* lazy evaluation */
+            'lazy',
+            /** SML# */
+            /* binding to C function */
+            '_import',
+            /* read other source */
+            '_require',
+            /* export aggregated interface files */
+            'include',
+            /* integrated sql */
+            '_sqlserver', '_sql', 'from', 'where', '_sqleval', '_sqlexec',
+            'select', 'insert', 'update', 'begin', 'commit', 'rollback',
+            'values', 'delete'
+            )
+        ),
+    /* highlighting symbols */
+    'SYMBOLS' => array(
+        0 => array('=', ':', ':>', '=>', '(', ')', '|', '_', '==', ';', '.'),
+        1 => array('!', ':=', '@', '^'),
+        2 => array('[', ']', '::', '{', '}'),
+        /* overloaded identifiers */
+        3 => array('+', '-', '*', '/', '~', '<', '>', '<=', '>=')
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true, /* keywords */
+        2 => true, /* top level types */
+        3 => true, /* structures */
+        4 => true, /* top level identifiers */
+        5 => true, /* top level exceptions */
+        6 => true  /* implementation dependent keyword */
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #557cde; font-weight: bold;',
+            2 => 'color: #8dda4a; font-weight: bold;',
+            3 => 'color: #0066cc; font-weight: bold;',
+            4 => 'color: #5c8cbb;',
+            5 => 'color: #f33e64; font-weight: bold;',
+            6 => 'color: #f33e64;'
+            ),
+        'COMMENTS' => array(
+            'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */
+            1 => 'color: #5d478b; font-style: italic;' /* light purple */
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #79c200;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #488614;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #fb7600;',
+            1 => 'color: #fb7600;',
+            2 => 'color: #fb7600;',
+            3 => 'color: #fb7600;',
+            4 => 'color: #fb7600;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #0066cc;'
+            ),
+        'REGEXPS' => array(
+            1 => 'font-style:italic; color:#9f7eff;',
+            2 => 'font-weight:bold; color:#8dda4a;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #ff4bcf;',
+            1 => 'color: #ff4bcf; font-weight: bold;', // pink
+            2 => 'color: #90f963;', // orange
+            3 => 'color: #fa5bf8;'
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => 'http://www.standardml.org/Basis/top-level-chapter.html',
+        3 => '',
+        4 => '',
+        5 => 'http://www.standardml.org/Basis/top-level-chapter.html#section:2',
+        6 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        1 => '(?<!\w)#\w+',  /* record field access */
+        2 => '(?:(?<![0-9a-zA-Z]))\'[a-z]+' /* type variable */
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
diff --git a/vendor/easybook/geshi/geshi/stonescript.php b/vendor/geshi/geshi/src/geshi/stonescript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/stonescript.php
rename to vendor/geshi/geshi/src/geshi/stonescript.php
index 84cd32bad831cf6ebece9a939a0ddfea7f16a9d3..6ea1971d8b15404edaa8cdeb4ca79dc333bc4bea 100644
--- a/vendor/easybook/geshi/geshi/stonescript.php
+++ b/vendor/geshi/geshi/src/geshi/stonescript.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Archimmersion ( based on ruby.php by Moises Deniz )
  * Copyright: (c) 2011 Archimmersion ( http://www.archimmersion.com )
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/03/30
  *
  * StoneScript language file for GeSHi.
@@ -303,4 +303,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 2
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/swift.php b/vendor/geshi/geshi/src/geshi/swift.php
new file mode 100644
index 0000000000000000000000000000000000000000..4069035f5e01c5eae1c32de3bb9f1184e89682bb
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/swift.php
@@ -0,0 +1,557 @@
+<?php
+/*************************************************************************************
+ * swift.php
+ * ----------
+ * Author: Ken Woo (ikenwoo@gmail.com)
+ * Copyright: (c) 2015 Ken Woo
+ * Release Version: 1.0.9.0
+ * Date Started: 2015/05/20
+ *
+ * Swift language file for GeSHi.
+ * To mirror official Apple documentation, set the overall style like so:
+ * $geshi->set_overall_style('font-family: Menlo, monospace; font-size: 0.85em; color: #508187;', false);
+ *
+ * CHANGES
+ * -------
+ * 2015/05/20
+ *  -   First Release
+ *
+ * TODO (updated 2015/05/20)
+ * -------------------------
+ *  -   Only added keywords for Swift, Foundation, Core Foundation, Core Graphics, UIKit and AppKit.
+ * There are many other frameworks that can be added like SpriteKit, MapKit, HealthKit, etc.
+ *  -   Hex regex is a bit wonky when combined with method highlghting and not working
+ *      with negative exponents
+ *  -   Swift strings can include expressions via "sum is: \( 2 + 3 )" and the expression
+ *      shouldn't be highlighted as a string. This isn't supported yet.
+ *************************************************************************************
+ *
+ *     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' => 'Swift',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'NUMBERS' => array(
+        # Decimals
+        0 => '\b[0-9][0-9_]*(\.[0-9][0-9_]*)?([eE][+-]?[0-9][0-9_]*)?\b',
+        # Hex
+        1 => '\b0x[0-9A-Fa-f][0-9A-Fa-f_]*((\.[0-9A-Fa-f][0-9A-Fa-f_]*)?([pP][+-]?[0-9][0-9_]*))?\b',
+        # Octal
+        2 => '\b0o[0-7][0-7_]*\b',
+        # Binary
+        3 => '\b0b[01][01_]*\b'
+    ),
+    'KEYWORDS' => array(
+        /*
+        ** Swift Keywords
+        */
+        1 => array(
+            'Protocol', 'Self', 'Type', 'as', 'associativity', 'awillSet', 'break', 'case', 'class',
+            'continue', 'convenience', 'default', 'deinit', 'didSet', 'do', 'dynamic', 'dynamicType',
+            'else', 'enum', 'extension', 'fallthrough', 'false', 'final', 'for', 'func', 'get', 'if',
+            'import', 'in', 'infix', 'init', 'inout', 'internal', 'is', 'lazy', 'left', 'let', 'mutating',
+            'nil', 'none', 'nonmutating', 'operator', 'optional', 'override', 'postfix', 'precedence',
+            'prefix', 'private', 'protocol', 'public', 'required', 'return', 'right', 'self', 'set',
+            'static', 'struct', 'subscript', 'super', 'switch', 'true', 'typealias', 'unowned', 'var',
+            'weak', 'where', 'while', '__COLUMN__', '__FILE__', '__FUNCTION__', '__LINE__',
+        ),
+
+        /*
+        ** Swift Attributes
+        */
+        2 => array(
+            '@availability', '@autoclosure', '@IBAction', '@IBDesignable', '@IBInspectable', '@IBOutlet',
+            '@noescape', '@noreturn', '@NSApplicationMain', '@NSCopying', '@NSManaged', '@objc', '@UIApplicationMain'
+        ),
+        /*
+        ** Swift Builtin Functions
+        **
+        */
+        3 => array(
+            'abs', 'advance', 'alignof', 'alignofValue', 'assert', 'assertionFailure', 'contains', 'count', 'debugPrint',
+            'debugPrintln', 'distance', 'dropFirst', 'dropLast', 'dump', 'enumerate', 'equal', 'extend', 'fatalError',
+            'filter', 'find', 'first', 'flatMap', 'getVaList', 'indices', 'insert', 'isEmpty', 'isUniquelyReferenced',
+            'isUniquelyReferencedNonObjC', 'join', 'last', 'lexicographicalCompare', 'map', 'max', 'maxElement',
+            'min', 'minElement', 'numericCast', 'overlaps', 'partition', 'precondition', 'preconditionFailure',
+            'print', 'println', 'reduce', 'reflect', 'removeAll', 'removeAtIndex', 'removeLast', 'removeRange', 'reverse',
+            'sizeof', 'sizeofValue', 'sort', 'sorted', 'splice', 'split', 'startsWith', 'stride', 'strideof', 'strideofValue',
+            'suffix', 'swap', 'toDebugString', 'toString', 'transcode', 'underestimateCount', 'unsafeAddressOf', 'unsafeBitCast',
+            'unsafeDowncast', 'unsafeUnwrap', 'withExtendedLifetime', 'withUnsafeMutablePointer', 'withUnsafeMutablePointers',
+            'withUnsafePointer', 'withUnsafePointers', 'withVaList', 'zip'
+        ),
+        /*
+         ** Swift Types
+        */
+        4 => array(
+            'Array', 'ArraySlice', 'AutoreleasingUnsafeMutablePointer', 'BidirectionalReverseView', 'Bit', 'Bool',
+            'CFunctionPointer', 'COpaquePointer', 'CVaListPointer', 'Character', 'ClosedInterval', 'CollectionOfOne',
+            'ContiguousArray', 'Dictionary', 'DictionaryGenerator', 'DictionaryIndex', 'Double', 'EmptyCollection',
+            'EmptyGenerator', 'EnumerateGenerator', 'EnumerateSequence', 'FilterCollectionView', 'FilterCollectionViewIndex',
+            'FilterGenerator', 'FilterSequenceView', 'Float', 'Float80', 'FloatingPointClassification', 'GeneratorOf',
+            'GeneratorOfOne', 'GeneratorSequence', 'HalfOpenInterval', 'ImplicitlyUnwrappedOptional', 'IndexingGenerator',
+            'Int', 'Int16', 'Int32', 'Int64', 'Int8', 'LazyBidirectionalCollection', 'LazyForwardCollection',
+            'LazyRandomAccessCollection', 'LazySequence', 'ManagedBuffer', 'ManagedBufferPointer', 'ManagedProtoBuffer',
+            'MapCollectionView', 'MapSequenceGenerator', 'MapSequenceView', 'MirrorDisposition', 'NonObjectiveCBase',
+            'ObjectIdentifier', 'Optional', 'PermutationGenerator', 'Process', 'QuickLookObject', 'RandomAccessReverseView',
+            'Range', 'RangeGenerator', 'RawByte', 'Repeat', 'ReverseBidirectionalIndex', 'ReverseRandomAccessIndex',
+            'SequenceOf', 'Set', 'SetGenerator', 'SetIndex', 'SinkOf', 'StaticString', 'StrideThrough', 'StrideThroughGenerator',
+            'StrideTo', 'StrideToGenerator', 'String', 'String.Index', 'String.UTF16View', 'String.UTF16View.Index',
+            'String.UTF8View', 'String.UTF8View.Index', 'String.UnicodeScalarView', 'String.UnicodeScalarView.Generator',
+            'String.UnicodeScalarView.Index', 'UInt', 'UInt16', 'UInt32', 'UInt64', 'UInt8', 'UTF16', 'UTF32', 'UTF8',
+            'UnicodeDecodingResult', 'UnicodeScalar', 'UnicodeScalar.UTF16View', 'Unmanaged', 'UnsafeBufferPointer',
+            'UnsafeBufferPointerGenerator', 'UnsafeMutableBufferPointer', 'UnsafeMutablePointer', 'UnsafePointer',
+            'VaListBuilder', 'Zip2', 'ZipGenerator2'
+        ),
+        /*
+        ** Swift Type Aliases
+        */
+        5 => array(
+            'Any', 'AnyClass', 'CBool', 'CChar', 'CChar16', 'CChar32', 'CDouble', 'CFloat', 'CInt', 'CLong',
+            'CLongLong', 'CShort', 'CSignedChar', 'CUnsignedChar', 'CUnsignedInt', 'CUnsignedLong', 'CUnsignedLongLong',
+            'CUnsignedShort', 'CWideChar', 'ExtendedGraphemeClusterType', 'Float32', 'Float64', 'FloatLiteralType', 'IntMax',
+            'IntegerLiteralType', 'StringLiteralType', 'UIntMax', 'UWord', 'UnicodeScalarType', 'Void', 'Word'
+        ),
+        /*
+        ** Swift Protocols
+        */
+        6 => array(
+            'AbsoluteValuable', 'AnyObject', 'ArrayLiteralConvertible', 'BidirectionalIndexType', 'BitwiseOperationsType',
+            'BooleanLiteralConvertible', 'BooleanType', 'CVarArgType', 'CollectionType', 'Comparable', 'DebugPrintable',
+            'DictionaryLiteralConvertible', 'Equatable', 'ExtendedGraphemeClusterLiteralConvertible', 'ExtensibleCollectionType',
+            'FloatLiteralConvertible', 'FloatingPointType', 'ForwardIndexType', 'GeneratorType', 'Hashable', 'IntegerArithmeticType',
+            'IntegerLiteralConvertible', 'IntegerType', 'IntervalType', 'MirrorType', 'MutableCollectionType', 'MutableSliceable',
+            'NilLiteralConvertible', 'OutputStreamType', 'Printable', 'RandomAccessIndexType', 'RangeReplaceableCollectionType',
+            'RawOptionSetType', 'RawRepresentable', 'Reflectable', 'SequenceType', 'SignedIntegerType', 'SignedNumberType',
+            'SinkType', 'Sliceable', 'Streamable', 'Strideable', 'StringInterpolationConvertible', 'StringLiteralConvertible',
+            'UnicodeCodecType', 'UnicodeScalarLiteralConvertible', 'UnsignedIntegerType', '_ArrayBufferType', '_ArrayType',
+            '_BidirectionalIndexType', '_CVarArgPassedAsDouble', '_CocoaStringType', '_CollectionType', '_Comparable',
+            '_DestructorSafeContainer', '_ExtensibleCollectionType', '_ForwardIndexType', '_Incrementable', '_IntegerArithmeticType',
+            '_IntegerType', '_NSArrayCoreType', '_NSCopyingType', '_NSDictionaryCoreType', '_NSDictionaryType', '_NSEnumeratorType',
+            '_NSFastEnumerationType', '_NSSetCoreType', '_NSSetType', '_NSStringCoreType', '_ObjectiveCBridgeable', '_PointerType',
+            '_RandomAccessIndexType', '_RawOptionSetType', '_SequenceType', '_Sequence_Type', '_ShadowProtocol', '_SignedIntegerType',
+            '_SignedNumberType', '_Sliceable', '_Strideable', '_StringElementType', '_UnsignedIntegerType', '__ArrayType'
+        ),
+
+        /*
+        ** Foundation Classes
+        */
+        7 => array(
+            'NSObject', 'NSAffineTransform', 'NSAppleEventDescriptor', 'NSAppleEventManager', 'NSAppleScript', 'NSArray', 'NSMutableArray',
+            'NSAssertionHandler', 'NSAttributedString', 'NSMutableAttributedString', 'NSAutoreleasePool', 'NSBackgroundActivityScheduler',
+            'NSBundle', 'NSCache', 'NSCachedURLResponse', 'NSCalendar', 'NSCharacterSet', 'NSMutableCharacterSet', 'NSClassDescription',
+            'NSScriptClassDescription', 'NSCoder', 'NSArchiver', 'NSKeyedArchiver', 'NSKeyedUnarchiver', 'NSPortCoder', 'NSUnarchiver',
+            'NSCondition', 'NSConditionLock', 'NSConnection', 'NSData', 'NSMutableData', 'NSPurgeableData', 'NSDate', 'NSCalendarDate',
+            'NSDateComponents', 'NSDecimalNumberHandler', 'NSDictionary', 'NSMutableDictionary', 'NSDistantObjectRequest', 'NSDistributedLock',
+            'NSEnumerator', 'NSDirectoryEnumerator', 'NSError', 'NSException', 'NSExpression', 'NSExtensionContext', 'NSExtensionItem',
+            'NSFileAccessIntent', 'NSFileCoordinator', 'NSFileHandle', 'NSFileManager', 'NSFileSecurity', 'NSFileVersion', 'NSFileWrapper',
+            'NSFormatter', 'NSByteCountFormatter', 'NSDateComponentsFormatter', 'NSDateFormatter', 'NSDateIntervalFormatter',
+            'NSEnergyFormatter', 'NSLengthFormatter', 'NSMassFormatter', 'NSNumberFormatter', 'NSGarbageCollector', 'NSHashTable', 'NSHost',
+            'NSHTTPCookie', 'NSHTTPCookieStorage', 'NSIndexPath', 'NSIndexSet', 'NSMutableIndexSet', 'NSInvocation', 'NSItemProvider',
+            'NSJSONSerialization', 'NSLinguisticTagger', 'NSLocale', 'NSLock', 'NSMapTable', 'NSMetadataItem', 'NSMetadataQuery',
+            'NSMetadataQueryAttributeValueTuple', 'NSMetadataQueryResultGroup', 'NSMethodSignature', 'NSNetService', 'NSNetServiceBrowser',
+            'NSNotification', 'NSNotificationCenter', 'NSDistributedNotificationCenter', 'NSNotificationQueue', 'NSNull', 'NSOperation',
+            'NSBlockOperation', 'NSInvocationOperation', 'NSOperationQueue', 'NSOrderedSet', 'NSMutableOrderedSet', 'NSOrthography', 'NSPipe',
+            'NSPointerArray', 'NSPointerFunctions', 'NSPort', 'NSMachPort', 'NSMessagePort', 'NSSocketPort', 'NSPortMessage', 'NSPortNameServer',
+            'NSMachBootstrapServer', 'NSMessagePortNameServer', 'NSSocketPortNameServer', 'NSPositionalSpecifier', 'NSPredicate',
+            'NSComparisonPredicate', 'NSCompoundPredicate', 'NSProcessInfo', 'NSProgress', 'NSPropertyListSerialization', 'NSRecursiveLock',
+            'NSRegularExpression', 'NSDataDetector', 'NSRunLoop', 'NSScanner', 'NSScriptCoercionHandler', 'NSScriptCommand', 'NSCloneCommand',
+            'NSCloseCommand', 'NSCountCommand', 'NSCreateCommand', 'NSDeleteCommand', 'NSExistsCommand', 'NSGetCommand', 'NSMoveCommand',
+            'NSQuitCommand', 'NSSetCommand', 'NSScriptCommandDescription', 'NSScriptExecutionContext', 'NSScriptObjectSpecifier',
+            'NSIndexSpecifier', 'NSMiddleSpecifier', 'NSNameSpecifier', 'NSPropertySpecifier', 'NSRandomSpecifier', 'NSRangeSpecifier',
+            'NSRelativeSpecifier', 'NSUniqueIDSpecifier', 'NSWhoseSpecifier', 'NSScriptSuiteRegistry', 'NSScriptWhoseTest', 'NSLogicalTest',
+            'NSSpecifierTest', 'NSSet', 'NSMutableSet', 'NSCountedSet', 'NSSortDescriptor', 'NSSpellServer', 'NSStream', 'NSInputStream',
+            'NSOutputStream', 'NSString', 'NSMutableString', 'NSTask', 'NSTextCheckingResult', 'NSThread', 'NSTimer', 'NSTimeZone',
+            'NSUbiquitousKeyValueStore', 'NSUndoManager', 'NSURL', 'NSURLAuthenticationChallenge', 'NSURLCache', 'NSURLComponents',
+            'NSURLConnection', 'NSURLCredential', 'NSURLCredentialStorage', 'NSURLDownload', 'NSURLHandle', 'NSURLProtectionSpace',
+            'NSURLProtocol', 'NSURLQueryItem', 'NSURLRequest', 'NSMutableURLRequest', 'NSURLResponse', 'NSHTTPURLResponse', 'NSURLSession',
+            'NSURLSessionConfiguration', 'NSURLSessionTask', 'NSURLSessionDataTask', 'NSURLSessionUploadTask', 'NSURLSessionDownloadTask',
+            'NSUserActivity', 'NSUserDefaults', 'NSUserNotification', 'NSUserNotificationAction', 'NSUserNotificationCenter',
+            'NSUserScriptTask', 'NSUserAppleScriptTask', 'NSUserAutomatorTask', 'NSUserUnixTask', 'NSUUID', 'NSValue', 'NSNumber',
+            'NSDecimalNumber', 'NSValueTransformer', 'NSXMLNode', 'NSXMLDocument', 'NSXMLDTD', 'NSXMLDTDNode', 'NSXMLElement', 'NSXMLParser',
+            'NSXPCConnection', 'NSXPCInterface', 'NSXPCListener', 'NSXPCListenerEndpoint', 'NSProxy', 'NSDistantObject', 'NSProtocolChecker'
+        ),
+        /*
+        ** Foundation Protocols
+        */
+        8 => array(
+            'NSCacheDelegate', 'NSCoding', 'NSComparisonMethods', 'NSConnectionDelegate', 'NSCopying', 'NSDecimalNumberBehaviors',
+            'NSDiscardableContent', 'NSErrorRecoveryAttempting', 'NSExtensionRequestHandling', 'NSFastEnumeration', 'NSFileManagerDelegate',
+            'NSFilePresenter', 'NSKeyValueCoding', 'NSKeyValueObserving', 'NSKeyedArchiverDelegate', 'NSKeyedUnarchiverDelegate', 'NSLocking',
+            'NSMachPortDelegate', 'NSMetadataQueryDelegate', 'NSMutableCopying', 'NSNetServiceBrowserDelegate', 'NSNetServiceDelegate',
+            'NSPortDelegate', 'NSScriptKeyValueCoding', 'NSScriptObjectSpecifiers', 'NSScriptingComparisonMethods',
+            'NSSecureCoding', 'NSSpellServerDelegate', 'NSStreamDelegate', 'NSURLAuthenticationChallengeSender',
+            'NSURLConnectionDataDelegate', 'NSURLConnectionDelegate', 'NSURLDownloadDelegate', 'NSURLHandleClient', 'NSURLProtocolClient',
+            'NSURLSessionDataDelegate', 'NSURLSessionDelegate', 'NSURLSessionDownloadDelegate', 'NSURLSessionTaskDelegate',
+            'NSUserActivityDelegate', 'NSUserNotificationCenterDelegate', 'NSXMLParserDelegate', 'NSXPCListenerDelegate',
+            'NSXPCProxyCreating'
+        ),
+        /*
+        ** Core Foundation Protocols
+        **
+        */
+        9 => array(
+            'CFAllocator', 'CFArray', 'CFAttributedString', 'CFBag', 'CFBinaryHeap', 'CFBitVector', 'CFBoolean', 'CFBundle', 'CFCalendar',
+            'CFCharacterSet', 'CFData', 'CFDate', 'CFDateFormatter', 'CFDictionary', 'CFError', 'CFFileDescriptor', 'CFLocale', 'CFMachPort',
+            'CFMessagePort', 'CFMutableArray', 'CFMutableAttributedString', 'CFMutableBag', 'CFMutableBitVector', 'CFMutableCharacterSet',
+            'CFMutableData', 'CFMutableDictionary', 'CFMutableSet', 'CFMutableString', 'CFNotificationCenter', 'CFNull', 'CFNumber',
+            'CFNumberFormatter', 'CFPlugIn', 'CFPlugInInstance', 'CFPropertyList', 'CFReadStream', 'CFRunLoop', 'CFRunLoopObserver',
+            'CFRunLoopSource', 'CFRunLoopTimer', 'CFSet', 'CFSocket', 'CFString', 'CFStringTokenizer', 'CFTimeZone', 'CFTree', 'CFType', 'CFURL',
+            'CFUUID', 'CFUserNotification', 'CFWriteStream', 'CFXMLNode', 'CFXMLParser', 'CFXMLTree'
+        ),
+
+        /*
+        ** Core Foundation Data Types
+        **
+        */
+        10 => array(
+            'CFAbsoluteTime', 'CFAllocatorContext', 'CFAllocatorRef', 'CFArrayCallBacks', 'CFArrayRef', 'CFAttributedStringRef',
+            'CFBagCallBacks', 'CFBagRef', 'CFBinaryHeapCallBacks', 'CFBinaryHeapCompareContext', 'CFBinaryHeapRef', 'CFBit', 'CFBitVectorRef',
+            'CFBooleanRef', 'CFBundleRef', 'CFBundleRefNum', 'CFCalendarRef', 'CFCharacterSetPredefinedSet',
+            'CFCharacterSetPredefinedSet.AlphaNumeric', 'CFCharacterSetPredefinedSet.CapitalizedLetter',
+            'CFCharacterSetPredefinedSet.Control', 'CFCharacterSetPredefinedSet.DecimalDigit',
+            'CFCharacterSetPredefinedSet.Decomposable', 'CFCharacterSetPredefinedSet.Illegal', 'CFCharacterSetPredefinedSet.Letter',
+            'CFCharacterSetPredefinedSet.LowercaseLetter', 'CFCharacterSetPredefinedSet.Newline', 'CFCharacterSetPredefinedSet.NonBase',
+            'CFCharacterSetPredefinedSet.Punctuation', 'CFCharacterSetPredefinedSet.Symbol',
+            'CFCharacterSetPredefinedSet.UppercaseLetter', 'CFCharacterSetPredefinedSet.Whitespace',
+            'CFCharacterSetPredefinedSet.WhitespaceAndNewline', 'CFCharacterSetRef', 'CFDataRef', 'CFDataSearchFlags', 'CFDateFormatterRef',
+            'CFDateFormatterStyle', 'CFDateFormatterStyle.FullStyle', 'CFDateFormatterStyle.LongStyle', 'CFDateFormatterStyle.MediumStyle',
+            'CFDateFormatterStyle.NoStyle', 'CFDateFormatterStyle.ShortStyle', 'CFDateRef', 'CFDictionaryKeyCallBacks', 'CFDictionaryRef',
+            'CFDictionaryValueCallBacks', 'CFErrorRef', 'CFFileDescriptorCallBack', 'CFFileDescriptorContext',
+            'CFFileDescriptorNativeDescriptor', 'CFFileDescriptorRef', 'CFGregorianDate', 'CFGregorianUnits', 'CFHashCode', 'CFIndex',
+            'CFLocaleRef', 'CFMachPortContext', 'CFMachPortRef', 'CFMessagePortContext', 'CFMessagePortRef', 'CFMutableArrayRef',
+            'CFMutableAttributedStringRef', 'CFMutableBagRef', 'CFMutableBitVectorRef', 'CFMutableCharacterSetRef', 'CFMutableDataRef',
+            'CFMutableDictionaryRef', 'CFMutableSetRef', 'CFMutableStringRef', 'CFNotificationCenterRef', 'CFNullRef',
+            'CFNumberFormatterOptionFlags', 'CFNumberFormatterPadPosition', 'CFNumberFormatterPadPosition.AfterPrefix',
+            'CFNumberFormatterPadPosition.AfterSuffix', 'CFNumberFormatterPadPosition.BeforePrefix',
+            'CFNumberFormatterPadPosition.BeforeSuffix', 'CFNumberFormatterRef', 'CFNumberFormatterStyle',
+            'CFNumberFormatterStyle.CurrencyStyle', 'CFNumberFormatterStyle.DecimalStyle', 'CFNumberFormatterStyle.NoStyle',
+            'CFNumberFormatterStyle.PercentStyle', 'CFNumberFormatterStyle.ScientificStyle', 'CFNumberFormatterStyle.SpellOutStyle',
+            'CFNumberRef', 'CFOptionFlags', 'CFPlugInInstanceRef', 'CFPlugInRef', 'CFPropertyListMutabilityOptions', 'CFPropertyListRef',
+            'CFRange', 'CFReadStreamRef', 'CFRunLoopObserverContext', 'CFRunLoopObserverRef', 'CFRunLoopRef', 'CFRunLoopSourceContext',
+            'CFRunLoopSourceContext1', 'CFRunLoopSourceRef', 'CFRunLoopTimerContext', 'CFRunLoopTimerRef', 'CFSetCallBacks', 'CFSetRef',
+            'CFSocketContext', 'CFSocketNativeHandle', 'CFSocketRef', 'CFSocketSignature', 'CFStreamClientContext', 'CFStreamError',
+            'CFStringCompareFlags', 'CFStringEncoding', 'CFStringEncodings', 'CFStringEncodings.ANSEL', 'CFStringEncodings.Big5',
+            'CFStringEncodings.Big5_E', 'CFStringEncodings.Big5_HKSCS_1999', 'CFStringEncodings.CNS_11643_92_P1',
+            'CFStringEncodings.CNS_11643_92_P2', 'CFStringEncodings.CNS_11643_92_P3', 'CFStringEncodings.DOSArabic',
+            'CFStringEncodings.DOSBalticRim', 'CFStringEncodings.DOSCanadianFrench', 'CFStringEncodings.DOSChineseSimplif',
+            'CFStringEncodings.DOSChineseTrad', 'CFStringEncodings.DOSCyrillic', 'CFStringEncodings.DOSGreek',
+            'CFStringEncodings.DOSGreek1', 'CFStringEncodings.DOSGreek2', 'CFStringEncodings.DOSHebrew', 'CFStringEncodings.DOSIcelandic',
+            'CFStringEncodings.DOSJapanese', 'CFStringEncodings.DOSKorean', 'CFStringEncodings.DOSLatin1', 'CFStringEncodings.DOSLatin2',
+            'CFStringEncodings.DOSLatinUS', 'CFStringEncodings.DOSNordic', 'CFStringEncodings.DOSPortuguese',
+            'CFStringEncodings.DOSRussian', 'CFStringEncodings.DOSThai', 'CFStringEncodings.DOSTurkish', 'CFStringEncodings.EBCDIC_CP037',
+            'CFStringEncodings.EBCDIC_US', 'CFStringEncodings.EUC_CN', 'CFStringEncodings.EUC_JP', 'CFStringEncodings.EUC_KR',
+            'CFStringEncodings.EUC_TW', 'CFStringEncodings.GBK_95', 'CFStringEncodings.GB_18030_2000', 'CFStringEncodings.GB_2312_80',
+            'CFStringEncodings.HZ_GB_2312', 'CFStringEncodings.ISOLatin10', 'CFStringEncodings.ISOLatin2', 'CFStringEncodings.ISOLatin3',
+            'CFStringEncodings.ISOLatin4', 'CFStringEncodings.ISOLatin5', 'CFStringEncodings.ISOLatin6', 'CFStringEncodings.ISOLatin7',
+            'CFStringEncodings.ISOLatin8', 'CFStringEncodings.ISOLatin9', 'CFStringEncodings.ISOLatinArabic',
+            'CFStringEncodings.ISOLatinCyrillic', 'CFStringEncodings.ISOLatinGreek', 'CFStringEncodings.ISOLatinHebrew',
+            'CFStringEncodings.ISOLatinThai', 'CFStringEncodings.ISO_2022_CN', 'CFStringEncodings.ISO_2022_CN_EXT',
+            'CFStringEncodings.ISO_2022_JP', 'CFStringEncodings.ISO_2022_JP_1', 'CFStringEncodings.ISO_2022_JP_2',
+            'CFStringEncodings.ISO_2022_JP_3', 'CFStringEncodings.ISO_2022_KR', 'CFStringEncodings.JIS_C6226_78',
+            'CFStringEncodings.JIS_X0201_76', 'CFStringEncodings.JIS_X0208_83', 'CFStringEncodings.JIS_X0208_90',
+            'CFStringEncodings.JIS_X0212_90', 'CFStringEncodings.KOI8_R', 'CFStringEncodings.KOI8_U', 'CFStringEncodings.KSC_5601_87',
+            'CFStringEncodings.KSC_5601_92_Johab', 'CFStringEncodings.MacArabic', 'CFStringEncodings.MacArmenian',
+            'CFStringEncodings.MacBengali', 'CFStringEncodings.MacBurmese', 'CFStringEncodings.MacCeltic',
+            'CFStringEncodings.MacCentralEurRoman', 'CFStringEncodings.MacChineseSimp', 'CFStringEncodings.MacChineseTrad',
+            'CFStringEncodings.MacCroatian', 'CFStringEncodings.MacCyrillic', 'CFStringEncodings.MacDevanagari',
+            'CFStringEncodings.MacDingbats', 'CFStringEncodings.MacEthiopic', 'CFStringEncodings.MacExtArabic',
+            'CFStringEncodings.MacFarsi', 'CFStringEncodings.MacGaelic', 'CFStringEncodings.MacGeorgian', 'CFStringEncodings.MacGreek',
+            'CFStringEncodings.MacGujarati', 'CFStringEncodings.MacGurmukhi', 'CFStringEncodings.MacHFS', 'CFStringEncodings.MacHebrew',
+            'CFStringEncodings.MacIcelandic', 'CFStringEncodings.MacInuit', 'CFStringEncodings.MacJapanese',
+            'CFStringEncodings.MacKannada', 'CFStringEncodings.MacKhmer', 'CFStringEncodings.MacKorean', 'CFStringEncodings.MacLaotian',
+            'CFStringEncodings.MacMalayalam', 'CFStringEncodings.MacMongolian', 'CFStringEncodings.MacOriya',
+            'CFStringEncodings.MacRomanLatin1', 'CFStringEncodings.MacRomanian', 'CFStringEncodings.MacSinhalese',
+            'CFStringEncodings.MacSymbol', 'CFStringEncodings.MacTamil', 'CFStringEncodings.MacTelugu', 'CFStringEncodings.MacThai',
+            'CFStringEncodings.MacTibetan', 'CFStringEncodings.MacTurkish', 'CFStringEncodings.MacUkrainian', 'CFStringEncodings.MacVT100',
+            'CFStringEncodings.MacVietnamese', 'CFStringEncodings.NextStepJapanese', 'CFStringEncodings.ShiftJIS',
+            'CFStringEncodings.ShiftJIS_X0213', 'CFStringEncodings.ShiftJIS_X0213_MenKuTen', 'CFStringEncodings.UTF7',
+            'CFStringEncodings.UTF7_IMAP', 'CFStringEncodings.VISCII', 'CFStringEncodings.WindowsArabic',
+            'CFStringEncodings.WindowsBalticRim', 'CFStringEncodings.WindowsCyrillic', 'CFStringEncodings.WindowsGreek',
+            'CFStringEncodings.WindowsHebrew', 'CFStringEncodings.WindowsKoreanJohab', 'CFStringEncodings.WindowsLatin2',
+            'CFStringEncodings.WindowsLatin5', 'CFStringEncodings.WindowsVietnamese', 'CFStringInlineBuffer', 'CFStringRef',
+            'CFStringTokenizerRef', 'CFSwappedFloat32', 'CFSwappedFloat64', 'CFTimeInterval', 'CFTimeZoneNameStyle',
+            'CFTimeZoneNameStyle.DaylightSaving', 'CFTimeZoneNameStyle.Generic', 'CFTimeZoneNameStyle.ShortDaylightSaving',
+            'CFTimeZoneNameStyle.ShortGeneric', 'CFTimeZoneNameStyle.ShortStandard', 'CFTimeZoneNameStyle.Standard', 'CFTimeZoneRef',
+            'CFTreeContext', 'CFTreeRef', 'CFTypeID', 'CFTypeRef', 'CFURLBookmarkCreationOptions', 'CFURLBookmarkFileCreationOptions',
+            'CFURLBookmarkResolutionOptions', 'CFURLRef', 'CFUUIDBytes', 'CFUUIDRef', 'CFUserNotificationRef', 'CFWriteStreamRef',
+            'CFXMLAttributeDeclarationInfo', 'CFXMLAttributeListDeclarationInfo', 'CFXMLDocumentInfo', 'CFXMLDocumentTypeInfo',
+            'CFXMLElementInfo', 'CFXMLElementTypeDeclarationInfo', 'CFXMLEntityInfo', 'CFXMLEntityReferenceInfo', 'CFXMLExternalID',
+            'CFXMLNodeRef', 'CFXMLNotationInfo', 'CFXMLParserCallBacks', 'CFXMLParserContext', 'CFXMLParserRef',
+            'CFXMLProcessingInstructionInfo', 'CFXMLTreeRef'
+        ),
+        /*
+        ** Core Graphics Protocols
+        **
+        */
+        11 => array(
+            'CGBitmapContext', 'CGColor', 'CGColorSpace', 'CGContext', 'CGDataConsumer', 'CGDataProvider', 'CGFont', 'CGFunction', 'CGGradient',
+            'CGImage', 'CGLayer', 'CGPath', 'CGPattern', 'CGPDFArray', 'CGPDFContentStream', 'CGPDFContext', 'CGPDFDictionary', 'CGPDFDocument',
+            'CGPDFObject', 'CGPDFOperatorTable', 'CGPDFPage', 'CGPDFScanner', 'CGPDFStream', 'CGPDFString', 'CGShading'
+        ),
+
+        /*
+        ** Core Graphics Data Types
+        **
+        */
+        12 => array(
+            'CGBitmapContextReleaseDataCallback', 'CGColorRef', 'CGColorSpaceRef', 'CGContextRef', 'CGDataConsumerCallbacks',
+            'CGDataConsumerRef', 'CGDataProviderRef', 'CGDataProviderDirectCallbacks', 'CGDataProviderSequentialCallbacks', 'CGFontRef',
+            'CGFontIndex', 'CGGlyph', 'CGFunctionRef', 'CGFunctionCallbacks', 'CGGradientRef', 'CGImageRef', 'CGLayerRef', 'CGPathRef',
+            'CGMutablePathRef', 'CGPathElement', 'CGPatternRef', 'CGPatternCallbacks', 'CGPDFArrayRef', 'CGPDFContentStreamRef',
+            'CGPDFDictionaryRef', 'CGPDFDocumentRef', 'CGPDFObjectRef', 'CGPDFBoolean', 'CGPDFInteger', 'CGPDFReal', 'CGPDFOperatorTableRef',
+            'CGPDFPageRef', 'CGPDFScannerRef', 'CGPDFStreamRef', 'CGPDFStringRef', 'CGShadingRef', 'CGAffineTransform', 'CGFloat', 'CGPoint', 'CGRect',
+            'CGSize', 'CGVector', 'CGError'
+        ),
+        /*
+        ** UIKit Classes
+        **
+        */
+        13 => array(
+            'NSFileProviderExtension', 'NSLayoutConstraint', 'NSLayoutManager', 'NSParagraphStyle', 'NSMutableParagraphStyle',
+            'NSShadow', 'NSStringDrawingContext', 'NSTextAttachment', 'NSTextContainer', 'NSTextTab', 'UIAcceleration', 'UIAccelerometer',
+            'UIAccessibilityCustomAction', 'UIAccessibilityElement', 'UIActivity', 'UIAlertAction', 'UIBarItem', 'UIBarButtonItem',
+            'UITabBarItem', 'UIBezierPath', 'UICollectionViewLayout', 'UICollectionViewFlowLayout', 'UICollectionViewTransitionLayout',
+            'UICollectionViewLayoutAttributes', 'UICollectionViewLayoutInvalidationContext',
+            'UICollectionViewFlowLayoutInvalidationContext', 'UICollectionViewUpdateItem', 'UIColor', 'UIDevice', 'UIDictationPhrase',
+            'UIDocument', 'UIManagedDocument', 'UIDocumentInteractionController', 'UIDynamicAnimator', 'UIDynamicBehavior',
+            'UIAttachmentBehavior', 'UICollisionBehavior', 'UIDynamicItemBehavior', 'UIGravityBehavior', 'UIPushBehavior', 'UISnapBehavior',
+            'UIEvent', 'UIFont', 'UIFontDescriptor', 'UIGestureRecognizer', 'UILongPressGestureRecognizer', 'UIPanGestureRecognizer',
+            'UIScreenEdgePanGestureRecognizer', 'UIPinchGestureRecognizer', 'UIRotationGestureRecognizer', 'UISwipeGestureRecognizer',
+            'UITapGestureRecognizer', 'UIImage', 'UIImageAsset', 'UIKeyCommand', 'UILexicon', 'UILexiconEntry', 'UILocalNotification',
+            'UILocalizedIndexedCollation', 'UIMenuController', 'UIMenuItem', 'UIMotionEffect', 'UIInterpolatingMotionEffect',
+            'UIMotionEffectGroup', 'UINavigationItem', 'UINib', 'UIPasteboard', 'UIPercentDrivenInteractiveTransition', 'UIPopoverController',
+            'UIPresentationController', 'UIPopoverPresentationController', 'UIPrintFormatter', 'UIMarkupTextPrintFormatter',
+            'UISimpleTextPrintFormatter', 'UIViewPrintFormatter', 'UIPrintInfo', 'UIPrintInteractionController', 'UIPrintPageRenderer',
+            'UIPrintPaper', 'UIPrinter', 'UIPrinterPickerController', 'UIResponder', 'UIApplication', 'UIView', 'UIActionSheet',
+            'UIActivityIndicatorView', 'UIAlertView', 'UICollectionReusableView', 'UICollectionViewCell', 'UIControl', 'UIButton',
+            'UIDatePicker', 'UIPageControl', 'UIRefreshControl', 'UISegmentedControl', 'UISlider', 'UIStepper', 'UISwitch', 'UITextField',
+            'UIImageView', 'UIInputView', 'UILabel', 'UINavigationBar', 'UIPickerView', 'UIPopoverBackgroundView', 'UIProgressView',
+            'UIScrollView', 'UICollectionView', 'UITableView', 'UITextView', 'UISearchBar', 'UITabBar', 'UITableViewCell',
+            'UITableViewHeaderFooterView', 'UIToolbar', 'UIVisualEffectView', 'UIWebView', 'UIWindow', 'UIViewController',
+            'UIActivityViewController', 'UIAlertController', 'UICollectionViewController', 'UIDocumentMenuViewController',
+            'UIDocumentPickerExtensionViewController', 'UIDocumentPickerViewController', 'UIInputViewController', 'UINavigationController',
+            'UIImagePickerController', 'UIVideoEditorController', 'UIPageViewController', 'UIReferenceLibraryViewController',
+            'UISearchController', 'UISplitViewController', 'UITabBarController', 'UITableViewController', 'UIScreen', 'UIScreenMode',
+            'UISearchDisplayController', 'UIStoryboard', 'UIStoryboardSegue', 'UIStoryboardPopoverSegue', 'UITableViewRowAction',
+            'UITextChecker', 'UITextInputMode', 'UITextInputStringTokenizer', 'UITextPosition', 'UITextRange', 'UITextSelectionRect', 'UITouch',
+            'UITraitCollection', 'UIUserNotificationAction', 'UIMutableUserNotificationAction', 'UIUserNotificationCategory',
+            'UIMutableUserNotificationCategory', 'UIUserNotificationSettings', 'UIVisualEffect', 'UIBlurEffect', 'UIVibrancyEffect',
+            'NSTextStorage', 'UIActivityItemProvider'
+        ),
+        /*
+        ** UIKit Protocols
+        **
+        */
+        14 => array(
+            'NSLayoutManagerDelegate', 'NSTextAttachmentContainer', 'NSTextLayoutOrientationProvider', 'NSTextStorageDelegate',
+            'UIAccelerometerDelegate', 'UIAccessibility', 'UIAccessibilityAction', 'UIAccessibilityContainer', 'UIAccessibilityFocus',
+            'UIAccessibilityIdentification', 'UIAccessibilityReadingContent', 'UIActionSheetDelegate', 'UIActivityItemSource',
+            'UIAdaptivePresentationControllerDelegate', 'UIAlertViewDelegate', 'UIAppearance', 'UIAppearanceContainer',
+            'UIApplicationDelegate', 'UIBarPositioning', 'UIBarPositioningDelegate', 'UICollectionViewDataSource',
+            'UICollectionViewDelegate', 'UICollectionViewDelegateFlowLayout', 'UICollisionBehaviorDelegate', 'UIContentContainer',
+            'UICoordinateSpace', 'UIDataSourceModelAssociation', 'UIDocumentInteractionControllerDelegate', 'UIDocumentMenuDelegate',
+            'UIDocumentPickerDelegate', 'UIDynamicAnimatorDelegate', 'UIDynamicItem', 'UIGestureRecognizerDelegate',
+            'UIGuidedAccessRestrictionDelegate', 'UIImagePickerControllerDelegate', 'UIInputViewAudioFeedback', 'UIKeyInput',
+            'UILayoutSupport', 'UINavigationBarDelegate', 'UINavigationControllerDelegate', 'UIObjectRestoration',
+            'UIPageViewControllerDataSource', 'UIPageViewControllerDelegate', 'UIPickerViewAccessibilityDelegate',
+            'UIPickerViewDataSource', 'UIPickerViewDelegate', 'UIPopoverBackgroundViewMethods', 'UIPopoverControllerDelegate',
+            'UIPopoverPresentationControllerDelegate', 'UIPrintInteractionControllerDelegate', 'UIPrinterPickerControllerDelegate',
+            'UIResponderStandardEditActions', 'UIScrollViewAccessibilityDelegate', 'UIScrollViewDelegate', 'UISearchBarDelegate',
+            'UISearchControllerDelegate', 'UISearchDisplayDelegate', 'UISearchResultsUpdating', 'UISplitViewControllerDelegate',
+            'UIStateRestoring', 'UITabBarControllerDelegate', 'UITabBarDelegate', 'UITableViewDataSource', 'UITableViewDelegate',
+            'UITextDocumentProxy', 'UITextFieldDelegate', 'UITextInput', 'UITextInputDelegate', 'UITextInputTokenizer', 'UITextInputTraits',
+            'UITextViewDelegate', 'UIToolbarDelegate', 'UITraitEnvironment', 'UIVideoEditorControllerDelegate',
+            'UIViewControllerAnimatedTransitioning', 'UIViewControllerContextTransitioning', 'UIViewControllerInteractiveTransitioning',
+            'UIViewControllerRestoration', 'UIViewControllerTransitionCoordinator', 'UIViewControllerTransitionCoordinatorContext',
+            'UIViewControllerTransitioningDelegate', 'UIWebViewDelegate'
+        ),
+        /*
+        ** AppKit Classes
+        **
+        */
+        15 => array(
+            'NSAccessibilityElement', 'NSAlert', 'NSAnimation', 'NSViewAnimation', 'NSAnimationContext', 'NSAppearance',
+            'NSBezierPath', 'NSCell', 'NSActionCell', 'NSButtonCell', 'NSMenuItemCell', 'NSPopUpButtonCell', 'NSDatePickerCell', 'NSFormCell',
+            'NSLevelIndicatorCell', 'NSPathCell', 'NSSegmentedCell', 'NSSliderCell', 'NSStepperCell', 'NSTextFieldCell', 'NSComboBoxCell',
+            'NSPathComponentCell', 'NSSearchFieldCell', 'NSSecureTextFieldCell', 'NSTableHeaderCell', 'NSTokenFieldCell', 'NSBrowserCell',
+            'NSImageCell', 'NSTextAttachmentCell', 'NSColor', 'NSColorList', 'NSColorPicker', 'NSColorSpace', 'NSController', 'NSObjectController',
+            'NSArrayController', 'NSDictionaryController', 'NSTreeController', 'NSUserDefaultsController', 'NSCursor', 'NSDockTile',
+            'NSDocument', 'NSPersistentDocument', 'NSDocumentController', 'NSDraggingImageComponent', 'NSDraggingItem', 'NSDraggingSession',
+            'NSEvent', 'NSFont', 'NSFontCollection', 'NSMutableFontCollection', 'NSFontDescriptor', 'NSFontManager', 'NSGestureRecognizer',
+            'NSClickGestureRecognizer', 'NSMagnificationGestureRecognizer', 'NSPanGestureRecognizer', 'NSPressGestureRecognizer',
+            'NSRotationGestureRecognizer', 'NSGlyphGenerator', 'NSGlyphInfo', 'NSGradient', 'NSGraphicsContext', 'NSHelpManager', 'NSImage',
+            'NSImageRep', 'NSBitmapImageRep', 'NSCachedImageRep', 'NSCIImageRep', 'NSCustomImageRep', 'NSEPSImageRep', 'NSPDFImageRep',
+            'NSPICTImageRep', 'NSInputManager', 'NSInputServer', 'NSMediaLibraryBrowserController',
+            'NSMenu', 'NSMenuItem', 'NSMovie', 'NSNib', 'NSNibConnector', 'NSNibControlConnector', 'NSNibOutletConnector', 'NSOpenGLContext',
+            'NSOpenGLPixelBuffer', 'NSOpenGLPixelFormat', 'NSPageLayout', 'NSPasteboard',
+            'NSPasteboardItem', 'NSPathControlItem', 'NSPDFInfo', 'NSPDFPanel', 'NSPredicateEditorRowTemplate', 'NSPrinter', 'NSPrintInfo',
+            'NSPrintOperation', 'NSPrintPanel', 'NSResponder', 'NSApplication', 'NSDrawer', 'NSPopover', 'NSView', 'NSBox', 'NSClipView',
+            'NSCollectionView', 'NSControl', 'NSBrowser', 'NSButton', 'NSPopUpButton', 'NSStatusBarButton', 'NSColorWell', 'NSDatePicker',
+            'NSImageView', 'NSLevelIndicator', 'NSMatrix', 'NSForm', 'NSPathControl', 'NSRuleEditor', 'NSPredicateEditor', 'NSScroller',
+            'NSSegmentedControl', 'NSSlider', 'NSStepper', 'NSTableView', 'NSOutlineView', 'NSTextField', 'NSComboBox', 'NSSearchField',
+            'NSSecureTextField', 'NSTokenField', 'NSMenuView', 'NSMovieView', 'NSOpenGLView', 'NSProgressIndicator', 'NSQuickDrawView',
+            'NSRulerView', 'NSScrollView', 'NSSplitView', 'NSStackView', 'NSTableCellView', 'NSTableHeaderView', 'NSTableRowView', 'NSTabView',
+            'NSText', 'NSTextView', 'NSVisualEffectView', 'NSViewController', 'NSCollectionViewItem', 'NSPageController',
+            'NSSplitViewController', 'NSTabViewController', 'NSTitlebarAccessoryViewController', 'NSWindow', 'NSPanel', 'NSColorPanel',
+            'NSFontPanel', 'NSSavePanel', 'NSOpenPanel', 'NSWindowController', 'NSRulerMarker', 'NSRunningApplication', 'NSScreen',
+            'NSSharingService', 'NSSharingServicePicker', 'NSSound', 'NSSpeechRecognizer', 'NSSpeechSynthesizer', 'NSSpellChecker',
+            'NSSplitViewItem', 'NSStatusBar', 'NSStatusItem', 'NSStoryboard', 'NSStoryboardSegue', 'NSTableColumn', 'NSTabViewItem',
+            'NSTextAlternatives', 'NSTextBlock', 'NSTextTable', 'NSTextTableBlock', 'NSTextFinder',
+            'NSTextInputContext', 'NSTextList', 'NSToolbar', 'NSToolbarItem', 'NSToolbarItemGroup', 'NSTouch', 'NSTrackingArea',
+            'NSTreeNode', 'NSTypesetter', 'NSATSTypesetter', 'NSWorkspace', 'CAOpenGLLayer',
+            'NSOpenGLLayer'
+        ),
+        /*
+        ** AppKit Protocols
+        **
+        */
+        16 => array(
+            'NSAccessibility', 'NSAccessibility Informal', 'NSAccessibilityButton', 'NSAccessibilityCheckBox',
+            'NSAccessibilityContainsTransientUI', 'NSAccessibilityGroup', 'NSAccessibilityImage',
+            'NSAccessibilityLayoutArea', 'NSAccessibilityLayoutItem', 'NSAccessibilityList', 'NSAccessibilityNavigableStaticText',
+            'NSAccessibilityOutline', 'NSAccessibilityProgressIndicator', 'NSAccessibilityRadioButton', 'NSAccessibilityRow',
+            'NSAccessibilitySlider', 'NSAccessibilityStaticText', 'NSAccessibilityStepper', 'NSAccessibilitySwitch', 'NSAccessibilityTable',
+            'NSAlertDelegate', 'NSAnimatablePropertyContainer', 'NSAnimationDelegate', 'NSAppearanceCustomization', 'NSApplicationDelegate',
+            'NSBrowserDelegate', 'NSChangeSpelling', 'NSCollectionViewDelegate', 'NSColorPickingCustom', 'NSColorPickingDefault',
+            'NSComboBoxCellDataSource', 'NSComboBoxDataSource', 'NSComboBoxDelegate', 'NSControlTextEditingDelegate',
+            'NSDatePickerCellDelegate', 'NSDictionaryControllerKeyValuePair', 'NSDraggingDestination', 'NSDraggingInfo', 'NSDraggingSource',
+            'NSDrawerDelegate', 'NSEditor', 'NSEditorRegistration', 'NSFontPanelValidation', 'NSGestureRecognizerDelegate', 'NSGlyphStorage',
+            'NSIgnoreMisspelledWords', 'NSImageDelegate', 'NSKeyValueBindingCreation', 'NSLayerDelegateContentsScaleUpdating',
+            'NSMatrixDelegate', 'NSMenuDelegate', 'NSMenuValidation', 'NSNibAwaking', 'NSOpenSavePanelDelegate',
+            'NSOutlineViewDataSource', 'NSOutlineViewDelegate', 'NSPageControllerDelegate', 'NSPasteboardItemDataProvider',
+            'NSPasteboardReading', 'NSPasteboardWriting', 'NSPathCellDelegate', 'NSPathControlDelegate', 'NSPlaceholders', 'NSPopoverDelegate',
+            'NSPrintPanelAccessorizing', 'NSRuleEditorDelegate', 'NSSeguePerforming', 'NSServicesMenuRequestor', 'NSSharingServiceDelegate',
+            'NSSharingServicePickerDelegate', 'NSSoundDelegate', 'NSSpeechRecognizerDelegate', 'NSSpeechSynthesizerDelegate',
+            'NSSplitViewDelegate', 'NSStackViewDelegate', 'NSTabViewDelegate', 'NSTableViewDataSource', 'NSTableViewDelegate',
+            'NSTextDelegate', 'NSTextFieldDelegate', 'NSTextFinderBarContainer', 'NSTextFinderClient', 'NSTextInput',
+            'NSTextInputClient', 'NSTextViewDelegate',
+            'NSTokenFieldCellDelegate', 'NSTokenFieldDelegate', 'NSToolTipOwner', 'NSToolbarDelegate', 'NSToolbarItemValidation',
+            'NSUserInterfaceItemIdentification', 'NSUserInterfaceItemSearchDataSource', 'NSUserInterfaceItemSearching',
+            'NSUserInterfaceValidations', 'NSValidatedUserInterfaceItem', 'NSViewControllerPresentationAnimator', 'NSWindowDelegate',
+            'NSWindowRestoration', 'NSWindowScripting'
+        )
+    ),
+    'SYMBOLS' => array(
+        # Operators
+        1 => array(
+            '!=', '!==', '%', '%=', '&', '&&', '&*', '&+', '&-', '&=', '*', '*=', '+', '++', '+=', '-', '--', '-=', '...', '..<', '/',
+            '/=', '<', '<<', '<<=', '<=', '==', '===', '>', '>=', '>>', '>>=', '??', '^', '^=', '|', '|=', '||', '~=', '~>', '!', '~'
+        ),
+        # Structure
+        2 => array(
+            '(', ')', '[', ']', '{', '}', ',', ';', ':'
+        )
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        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,
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #B833A1;',                        // Keywords
+            2 => 'color: #B833A1;',                        // Attributes
+            3 => 'color: #508187;',                        // Builtin Functions
+            4 => 'color: #6F41A7;',                        // Types
+            5 => 'color: #6F41A7;',
+            6 => 'color: #6F41A7;',
+            7 => 'color: #6F41A7;',
+            8 => 'color: #6F41A7;',
+            9 => 'color: #6F41A7;',
+            10 => 'color: #6F41A7;',
+            11 => 'color: #6F41A7;',
+            12 => 'color: #6F41A7;',
+            13 => 'color: #6F41A7;',
+            14 => 'color: #6F41A7;',
+            15 => 'color: #6F41A7;',
+            16 => 'color: #6F41A7;'
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #008312;',
+            'MULTI' => 'color: #008312;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #C41A16;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: black;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #C41A16;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #1C00CF;',
+            1 => 'color: #1C00CF;',
+            2 => 'color: #1C00CF;',
+            3 => 'color: #1C00CF;',
+        ),
+        'METHODS' => array(
+            1 => 'color: #508187;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: black;'
+        ),
+        'REGEXPS' => array(),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => '',
+        9 => '',
+        10 => '',
+        11 => '',
+        12 => '',
+        13 => '',
+        14 => '',
+        15 => '',
+        16 => '',
+    ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+    ),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/systemverilog.php b/vendor/geshi/geshi/src/geshi/systemverilog.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/systemverilog.php
rename to vendor/geshi/geshi/src/geshi/systemverilog.php
index ed928fb134f15136794585e719ff872f113888c9..24ed3439b1e46981c25dad5d9394c35674c121df 100644
--- a/vendor/easybook/geshi/geshi/systemverilog.php
+++ b/vendor/geshi/geshi/src/geshi/systemverilog.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Sean O'Boyle
  * Copyright: (C) 2008 IntelligentDV
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/06/25
  *
  * SystemVerilog IEEE 1800-2009(draft8) language file for GeSHi.
@@ -52,9 +52,9 @@
  *        Project:  SyntaxFiles
  *
  * File: systemverilog.php
- * $LastChangedBy: benbe $
- * $LastChangedDate: 2012-08-18 01:56:20 +0200 (Sa, 18. Aug 2012) $
- * $LastChangedRevision: 2542 $
+ * $LastChangedBy$
+ * $LastChangedDate$
+ * $LastChangedRevision$
  *
  ************************************************************************/
 
@@ -313,4 +313,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/tcl.php b/vendor/geshi/geshi/src/geshi/tcl.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/tcl.php
rename to vendor/geshi/geshi/src/geshi/tcl.php
index 2c1d53ccd65273cf1931badf8cf252ecea7e1fa9..73b854eb593002b28d15d81d9f1b0bfe250f41e0 100644
--- a/vendor/easybook/geshi/geshi/tcl.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/05/05
  *
  * TCL/iTCL language file for GeSHi.
@@ -50,14 +50,14 @@
 
 $language_data = array (
     'LANG_NAME' => 'TCL',
-    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_SINGLE' => array(),
     'COMMENT_MULTI' => array(),
     'COMMENT_REGEXP' => array(
-        1 => '/(?<!\\\\)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        1 => '/(?:^|(?<=\{|;))\s*#(?:\\\\\\\\|\\\\\\n|.)*$/m',
         //2 => '/{[^}\n]+}/'
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
+    'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         /*
@@ -187,7 +187,6 @@ $language_data = array (
     'PARSER_CONTROL' => array(
         'COMMENTS' => array(
             'DISALLOWED_BEFORE' => '\\'
+            )
         )
-    )
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/tclegg.php b/vendor/geshi/geshi/src/geshi/tclegg.php
new file mode 100644
index 0000000000000000000000000000000000000000..cc787e8c5aa785a8668b355d76ffc3220886ebd2
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/tclegg.php
@@ -0,0 +1,501 @@
+<?php
+/*************************************************************************************
+ * tclegg.php
+ * ---------------------------------
+ * Author: Reid van Melle (rvanmelle@gmail.com)
+ * Copyright: (c) 2004 Reid van Melle (sorry@nowhere)
+ * Release Version: 1.0.9.0
+ * Date Started: 2006/05/05
+ *
+ * TCL/iTCL language file for GeSHi.
+ *
+ * This was thrown together in about an hour so I don't expect
+ * really great things.  However, it is a good start.  I never
+ * got a change to try out the iTCL or object-based support but
+ * this is not widely used anyway.
+ *
+ * CHANGES
+ * -------
+ * 2008/05/23 (1.0.7.22)
+ *  -  Added description of extra language features (SF#1970248)
+ * 2006/05/05 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2006/05/05)
+ * -------------------------
+ * - Get TCL built-in special variables highlighted with a new color..
+ *   currently, these are listed in //special variables in the keywords
+ *   section, but they get covered by the general REGEXP for symbols
+ * - General cleanup, testing, and verification
+ *
+ *************************************************************************************
+ *
+ *     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' => 'TCLEGG',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        1 => '/(?<!\\\\)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //2 => '/{[^}\n]+}/'
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        /*
+         * Set 1: reserved words
+         * http://python.org/doc/current/ref/keywords.html
+         */
+        1 => array(
+            'break',
+            'case',
+            'catch',
+            'continue',
+            'default',
+            'else',
+            'elseif',
+            'error',
+            'eval',
+            'exit',
+            'expr',
+            'for',
+            'for_array_keys',
+            'for_file',
+            'for_recursive_glob',
+            'foreach',
+            'global',
+            'if',
+            'in',
+            'itcl_class',
+            'loop',
+            'method',
+            'namespace',
+            'proc',
+            'protected',
+            'public',
+            'rename',
+            'return',
+            'set',
+            'switch',
+            'then',
+            'unwind_protect',
+            'uplevel',
+            'upvar',
+            'variable',
+            'while',
+        ),
+
+        /*
+         * Set 2: builtins
+         * http://asps.activatestate.com/ASPN/docs/ActiveTcl/8.4/tcl/tcl_2_contents.htm
+         */
+        2 => array(
+            // string handling
+            'append', 'binary', 'format', 're_syntax', 'regexp', 'regsub',
+            'scan', 'string', 'subst',
+            // list handling
+            'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange',
+            'lreplace', 'lsearch', 'lset', 'lsort', 'split',
+            // procedures and output
+            'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file',
+            'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek',
+            'socket', 'tell',
+            // packages and source files
+            'load', 'loadTk', 'package', 'pgk::create', 'pgk_mkIndex', 'source',
+            // interpreter routines
+            'bgerror', 'history', 'info', 'interp', 'memory', 'unknown',
+            // library routines
+            'enconding', 'http', 'msgcat',
+            // system related
+            'cd', 'clock', 'exec', 'glob', 'pid', 'pwd', 'time',
+            // platform specified
+            'dde', 'registry', 'resource',
+            // special variables
+            '$argc', '$argv', '$errorCode', '$errorInfo', '$argv0',
+            '$auto_index', '$auto_oldpath', '$auto_path', '$env',
+            '$tcl_interactive', '$tcl_libpath', '$tcl_library',
+            '$tcl_pkgPath', '$tcl_platform', '$tcl_precision', '$tcl_traceExec',
+        ),
+
+        /*
+         * Set 3: standard library
+         * Replaced by binds
+         */
+        3 => array(
+            //'comment', 'filename', 'library', 'packagens', 'tcltest', 'tclvars',
+            'act',
+            'away',
+            'bcst',
+            'bot',
+            'chat',
+            'chjn',
+            'chof',
+            'chon',
+            'chpt',
+            'cron',
+            'ctcp',
+            'ctcr',
+            'dcc',
+            'disc',
+            'evnt',
+            'fil',
+            'filt',
+            'flud',
+            'kick',
+            'link',
+            'log',
+            'lost',
+            'mode',
+            'msg',
+            'msgm',
+            'need',
+            'nick',
+            'nkch',
+            'notc',
+            'note',
+            'out',
+            'part',
+            'pub',
+            'pubm',
+            'raw',
+            'rcvd',
+            'rejn',
+            'sent',
+            'sign',
+            'splt',
+            'topc',
+            'tout',
+            'unld',
+            'wall',
+        ),
+
+        /*
+         * Set 4: tcl-commands (eggdrop dedicated)
+         */
+        4 => array(
+            'addbot',
+            'addchanrec',
+            'adduser',
+            'assoc',
+
+            'backup',
+            'banlist',
+            'bind',
+            'binds',
+            'boot',
+            'botattr',
+            'botishalfop',
+            'botisop',
+            'botisvoice',
+            'botlist',
+            'botonchan',
+            'bots',
+
+            'callevent',
+            'chanbans',
+            'chanexempts',
+            'chaninvites',
+            'chanlist',
+            'channel',
+            'channels',
+            'chansettype',
+            'chattr',
+            'chhandle',
+            'clearqueue',
+            'compressfile',
+            'connect',
+            'console',
+            'control',
+            'countusers',
+            'cp',
+            'ctime',
+
+            'dccbroadcast',
+            'dccdumpfile',
+            'dcclist',
+            'dccputchan',
+            'dccsend',
+            'dccsimul',
+            'dccused',
+            'decrypt',
+            'delchanrec',
+            'delhost',
+            'deludef',
+            'deluser',
+            'die',
+            'dnslookup',
+            'dumpfile',
+            'duration',
+
+            'echo',
+            'encpass',
+            'encrypt',
+            'erasenotes',
+            'exemptlist',
+
+            'filesend',
+            'finduser',
+            'flushmode',
+
+            'getchan',
+            'getchanhost',
+            'getchanidle',
+            'getchaninfo',
+            'getchanjoin',
+            'getchanmode',
+            'getdccaway',
+            'getdccidle',
+            'getdesc',
+            'getdirs',
+            'getfileq',
+            'getfiles',
+            'getfilesendtime',
+            'getflags',
+            'getlink',
+            'getowner',
+            'getpwd',
+            'getting',
+            'getudefs',
+            'getuser',
+
+            'hand',
+            'handonchan',
+
+            'idx',
+            'ignorelist',
+            'invitelist',
+            'isban',
+            'isbansticky',
+            'isbotnick',
+            'ischanban',
+            'ischanexempt',
+            'ischaninvite',
+            'ischanjuped',
+            'iscompressed',
+            'isdynamic',
+            'isexempt',
+            'isexemptsticky',
+            'ishalfop',
+            'isignore',
+            'isinvite',
+            'isinvitesticky',
+            'islinked',
+            'isop',
+            'ispermban',
+            'ispermexempt',
+            'isperminvite',
+            'isvoice',
+
+            'jump',
+
+            'killassoc',
+            'killban',
+            'killchanban',
+            'killchanexempt',
+            'killchaninvite',
+            'killdcc',
+            'killexempt',
+            'killignore',
+            'killinvite',
+            'killtimer',
+            'killutimer',
+
+            'listen',
+            'listnotes',
+            'loadchannels',
+            'loadhelp',
+            'loadmodule',
+            'logfile',
+
+            'maskhost',
+            'matchaddr',
+            'matchattr',
+            'matchban',
+            'matchcidr',
+            'matchexempt',
+            'matchinvite',
+            'matchstr',
+            'md',
+            'mkdir',
+            'modules',
+            'mv',
+            'myip',
+
+            'newban',
+            'newchanban',
+            'newchanexempt',
+            'newchaninvite',
+            'newexempt',
+            'newignore',
+            'newinvite',
+            'notes',
+
+            'onchan',
+            'onchansplit',
+
+            'passwdok',
+            'pushmode',
+            'putallbots',
+            'putbot',
+            'putcmdlog',
+            'putdcc',
+            'puthelp',
+            'putkick',
+            'putlog',
+            'putloglev',
+            'putnow',
+            'putquick',
+            'putserv',
+            'putxferlog',
+
+            'queuesize',
+
+            'rand',
+            'rehash',
+            'reload',
+            'reloadhelp',
+            'renudef',
+            'resetbans',
+            'resetchan',
+            'resetchanidle',
+            'resetchanjoin',
+            'resetexempts',
+            'resetinvites',
+            'restart',
+            'rmdir',
+
+            'save',
+            'savechannels',
+            'sendnote',
+            'setchan',
+            'setchaninfo',
+            'setdccaway',
+            'setdesc',
+            'setflags',
+            'setlink',
+            'setowner',
+            'setpwd',
+            'setudef',
+            'setuser',
+            'stickban',
+            'stickexempt',
+            'stickinvite',
+            'storenote',
+            'strftime',
+            'strip',
+            'stripcodes',
+
+            'timer',
+            'timers',
+            'topic',
+            'traffic',
+
+            'unames',
+            'unbind',
+            'uncompressfile',
+            'unixtime',
+            'unlink',
+            'unloadhelp',
+            'unloadmodule',
+            'unstickban',
+            'unstickexempt',
+            'unstickinvite',
+            'userlist',
+            'utimer',
+            'utimers',
+
+            'validchan',
+            'valididx',
+            'validuser',
+
+            'washalfop',
+            'wasop',
+            'whom',
+        )
+    ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '$', '*', '&', '%', '!', ';', '<', '>', '?'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #ff7700;font-weight:bold;',    // Reserved
+            2 => 'color: #008000;',                        // Built-ins + self
+            3 => 'color: #dc143c;',                        // Standard lib
+            4 => 'color: #0000cd;'                        // Special methods
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+//            2 => 'color: #483d8b;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: black;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #483d8b;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #ff4500;'
+        ),
+        'METHODS' => array(
+            1 => 'color: black;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+        ),
+        'REGEXPS' => array(
+            0 => 'color: #ff3333;'
+        ),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => 'http://wiki.tcl.tk/{FNAMEL}',
+        2 => 'http://wiki.tcl.tk/{FNAMEUF}',
+        3 => 'http://wiki.eggdrop.fr/Binds#{FNAMEU}',
+        4 => 'http://wiki.eggdrop.fr/{FNAMEUF}'
+    ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '::'
+    ),
+    'REGEXPS' => array(
+        //Special variables
+        0 => '[\\$]+[a-zA-Z_][a-zA-Z0-9_]*',
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'PARSER_CONTROL' => array(
+        'COMMENTS' => array(
+            'DISALLOWED_BEFORE' => '\\'
+        )
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/teraterm.php b/vendor/geshi/geshi/src/geshi/teraterm.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/teraterm.php
rename to vendor/geshi/geshi/src/geshi/teraterm.php
index 2c12cdc41025ffe83fb8d9e21753ff1762704442..7c360029d85036081eb4942b53f7d95a5e7cc8ee 100644
--- a/vendor/easybook/geshi/geshi/teraterm.php
+++ b/vendor/geshi/geshi/src/geshi/teraterm.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Boris Maisuradze (boris at logmett.com)
  * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/09/26
  *
  * Tera Term Macro language file for GeSHi.
@@ -350,4 +350,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/geshi/geshi/src/geshi/texgraph.php b/vendor/geshi/geshi/src/geshi/texgraph.php
new file mode 100644
index 0000000000000000000000000000000000000000..ed579555b43a9e9b555162d4f34e647dcdce4686
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/texgraph.php
@@ -0,0 +1,1137 @@
+<?php
+/*************************************************************************************
+ * texgraph.php
+ * -----------
+ * Author: Patrick Fradin (patrick.fradin@gmail.com)
+ * Copyright: (c) 2011 Patrick Fradin
+ * Release Version: 1.0.9.0
+ * Date Started: 2011-09-18
+ *
+ * TeXgraph language file for GeSHi.
+ *
+ * http://texgraph.tuxfamily.org/
+ *
+ *************************************************************************************
+ *
+ *     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' => 'TeXgraph',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array(
+        '{'=>'}'
+    ),
+    'COMMENT_REGEXP' => array(
+    ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array( //file construction
+            'TeXgraph', 'Cmd', 'Var', 'Mac', 'Graph', 'Include'
+        ),
+        2 => array( //programmation structure
+            'if', 'else', 'elif',  'fi',
+            'for', 'do', 'od', 'by', 'By',
+            'step', 'until', 'in', 'to', 'repeat', 'from', 'odfi', 'andif',
+            'And', 'Or', 'CutA', 'CutB', 'Inside', 'Inter', 'InterL'
+        ),
+        3 => array( // commandes prédéfinies
+            'Aretes',
+            'Arg',
+            'Args',
+            'Assign',
+            'Axes',
+            'Bezier',
+            'Bord',
+            'Border',
+            'Build3D',
+            'Cartesienne',
+            'ChangeAttr',
+            'Clip2D',
+            'Clip3DLine',
+            'ClipFacet',
+            'Close',
+            'CloseFile',
+            'ComposeMatrix',
+            'ComposeMatrix3D',
+            'Concat',
+            'ConvertToObj',
+            'ConvertToObjN',
+            'Copy',
+            'Courbe',
+            'Creer',
+            'DefMac',
+            'DefVar',
+            'DefaultAttr',
+            'Del',
+            'DelGraph',
+            'DelMac',
+            'DelVar',
+            'Der',
+            'Diff',
+            'Display3D',
+            'DistCam',
+            'Droite',
+            'Dup',
+            'Echange',
+            'Ellipse',
+            'EllipticArc',
+            'Ent',
+            'EpsCoord',
+            'EquaDif',
+            'Eval',
+            'Exec',
+            'Export',
+            'ExportObject',
+            'ExportPathData',
+            'Fenetre',
+            'FileExists',
+            'For',
+            'Free',
+            'Fvisible',
+            'Get',
+            'Get3D',
+            'GetAttr',
+            'GetMatrix',
+            'GetMatrix3D',
+            'GetSpline',
+            'GetStr',
+            'GetSurface',
+            'GrayScale',
+            'Grille',
+            'HexaColor',
+            'IdMatrix',
+            'IdMatrix3D',
+            'Im',
+            'Implicit',
+            'Inc',
+            'Input',
+            'InputMac',
+            'Inserer3D',
+            'Insert',
+            'Int',
+            'IsMac',
+            'IsString',
+            'IsVar',
+            'Label',
+            'Ligne',
+            'Liste',
+            'Load',
+            'LoadImage',
+            'Loop',
+            'LowerCase',
+            'M',
+            'MakePoly',
+            'Map',
+            'Marges',
+            'Merge',
+            'Message',
+            'Mix',
+            'ModelView',
+            'Mtransform',
+            'Mtransform3D',
+            'MyExport',
+            'Nargs',
+            'NewGraph',
+            'NewMac',
+            'NewVar',
+            'Nops',
+            'Norm',
+            'Normal',
+            'OpenFile',
+            'OriginalCoord',
+            'PaintFacet',
+            'PaintVertex',
+            'Path',
+            'PermuteWith',
+            'Point',
+            'Polaire',
+            'PosCam',
+            'Prodscal',
+            'Prodvec',
+            'Proj3D',
+            'Rand',
+            'Re',
+            'ReCalc',
+            'ReadData',
+            'ReadFlatPs',
+            'ReadObj',
+            'RenCommand',
+            'RenMac',
+            'RestoreAttr',
+            'Reverse',
+            'Rgb',
+            'Round',
+            'Saut',
+            'SaveAttr',
+            'ScientificF',
+            'Seq',
+            'Set',
+            'SetAttr',
+            'SetMatrix',
+            'SetMatrix3D',
+            'Si',
+            'Solve',
+            'Sommets',
+            'Sort',
+            'SortFacet',
+            'Special',
+            'Spline',
+            'Str',
+            'StrArgs',
+            'StrComp',
+            'StrCopy',
+            'StrDel',
+            'StrEval',
+            'StrLength',
+            'StrPos',
+            'StrReplace',
+            'String',
+            'TeX2FlatPs',
+            'UpperCase',
+            'While',
+            'WriteFile',
+            'abs',
+            'arccos',
+            'arccot',
+            'arcsin',
+            'arctan',
+            'argch',
+            'argcth',
+            'argsh',
+            'argth',
+            'bar',
+            'ch',
+            'cos',
+            'cot',
+            'cth',
+            'draw',
+            'opp',
+            'sh',
+            'sin',
+            'sqr',
+            'sqrt',
+            'tan',
+            'th',
+        ),
+        4 => array( //commandes relatives à l'interface graphique
+            'AddMenu2D',
+            'AddMenu3D',
+            'Attributs',
+            'DelBitmap',
+            'DelButton',
+            'DelItem',
+            'DelText',
+            'Delay',
+            'Hide',
+            'ListFiles',
+            'ListWords',
+            'MaxPixels',
+            'Move',
+            'NewBitmap',
+            'NewButton',
+            'NewItem',
+            'NewText',
+            'NotXor',
+            'Pixel',
+            'Pixel2Scr',
+            'ReDraw',
+            'Scr2Pixel',
+            'Show',
+            'Stroke',
+            'Timer',
+            'TimerMac',
+            'UpdateLocalDatabase',
+            'VisibleGraph',
+        ),
+        5 => array( //constantes prédéfinies
+            'Data',
+            'Diese',
+            'DirSep',
+            'DocPath',
+            'ExportMode',
+            'GUI',
+            'Huge',
+            'ImageViewer',
+            'InitialPath',
+            'JavaviewPath',
+            'LARGE',
+            'LF',
+            'Large',
+            'Nil',
+            'PdfReader',
+            'Thicklines',
+            'TmpPath',
+            'UserMacPath',
+            'WebLoad',
+            'Windows',
+            'Xmax',
+            'Xmin',
+            'Xscale',
+            'Ymax',
+            'Ymin',
+            'Yscale',
+            'aliceblue',
+            'antiquewhite',
+            'aqua',
+            'aquamarine',
+            'asterisk',
+            'azure',
+            'baseline',
+            'bdiag',
+            'beige',
+            'bevel',
+            'bezier',
+            'bigdot',
+            'bisque',
+            'black',
+            'blanchedalmond',
+            'blue',
+            'blueviolet',
+            'bmp',
+            'bottom',
+            'brown',
+            'burlywood',
+            'butt',
+            'cadetblue',
+            'center',
+            'centered',
+            'central',
+            'chartreuse',
+            'chocolate',
+            'circle',
+            'closepath',
+            'comp',
+            'coral',
+            'cornflowerblue',
+            'cornsilk',
+            'crimson',
+            'cross',
+            'curve',
+            'cyan',
+            'darkblue',
+            'darkcyan',
+            'darkgoldenrod',
+            'darkgray',
+            'darkgreen',
+            'darkkhaki',
+            'darkmagenta',
+            'darkolivegreen',
+            'darkorange',
+            'darkorchid',
+            'darkred',
+            'darksalmon',
+            'darkseagreen',
+            'darkslateblue',
+            'darkslategray',
+            'darkturquoise',
+            'darkviolet',
+            'dashed',
+            'deeppink',
+            'deepskyblue',
+            'diagcross',
+            'diamond',
+            'dimgray',
+            'dodgerblue',
+            'dot',
+            'dotcircle',
+            'dotted',
+            'e',
+            'ellipse',
+            'ellipticArc',
+            'eps',
+            'epsc',
+            'fdiag',
+            'firebrick',
+            'floralwhite',
+            'footnotesize',
+            'forestgreen',
+            'framed',
+            'fuchsia',
+            'full',
+            'gainsboro',
+            'geom',
+            'ghostwhite',
+            'gold',
+            'goldenrod',
+            'gray',
+            'green',
+            'greenyellow',
+            'honeydew',
+            'horizontal',
+            'hotpink',
+            'huge',
+            'hvcross',
+            'i',
+            'indianred',
+            'indigo',
+            'ivory',
+            'jump',
+            'jvx',
+            'khaki',
+            'large',
+            'lavender',
+            'lavenderblush',
+            'lawngreen',
+            'left',
+            'lemonchiffon',
+            'lightblue',
+            'lightcoral',
+            'lightcyan',
+            'lightgoldenrodyellow',
+            'lightgray',
+            'lightgreen',
+            'lightpink',
+            'lightsalmon',
+            'lightseagreen',
+            'lightskyblue',
+            'lightslategray',
+            'lightsteelblue',
+            'lightyellow',
+            'lime',
+            'limegreen',
+            'line',
+            'linearc',
+            'linen',
+            'magenta',
+            'margeB',
+            'margeD',
+            'margeG',
+            'margeH',
+            'maroon',
+            'mediumaquamarine',
+            'mediumblue',
+            'mediumorchid',
+            'mediumpurple',
+            'mediumseagreen',
+            'mediumslateblue',
+            'mediumspringgreen',
+            'mediumturquoise',
+            'mediumvioletred',
+            'midnightblue',
+            'mintcream',
+            'mistyrose',
+            'miter',
+            'moccasin',
+            'move',
+            'navajowhite',
+            'navy',
+            'noline',
+            'none',
+            'normalsize',
+            'obj',
+            'oldlace',
+            'olive',
+            'olivedrab',
+            'oplus',
+            'orange',
+            'orangered',
+            'orchid',
+            'ortho',
+            'otimes',
+            'palegoldenrod',
+            'palegreen',
+            'paleturquoise',
+            'palevioletred',
+            'papayawhip',
+            'pdf',
+            'pdfc',
+            'peachpuff',
+            'pentagon',
+            'peru',
+            'pgf',
+            'pi',
+            'pink',
+            'plum',
+            'plus',
+            'powderblue',
+            'psf',
+            'pst',
+            'purple',
+            'red',
+            'right',
+            'rosybrown',
+            'round',
+            'royalblue',
+            'saddlebrown',
+            'salmon',
+            'sandybrown',
+            'scriptsize',
+            'seagreen',
+            'seashell',
+            'sep',
+            'sep3D',
+            'sienna',
+            'silver',
+            'skyblue',
+            'slateblue',
+            'slategray',
+            'small',
+            'snow',
+            'solid',
+            'special',
+            'springgreen',
+            'square',
+            'src4latex',
+            'stacked',
+            'steelblue',
+            'svg',
+            'teal',
+            'teg',
+            'tex',
+            'texsrc',
+            'thicklines',
+            'thinlines',
+            'thistle',
+            'times',
+            'tiny',
+            'tkz',
+            'tomato',
+            'top',
+            'triangle',
+            'turquoise',
+            'user',
+            'userdash',
+            'version',
+            'vertical',
+            'violet',
+            'wheat',
+            'white',
+            'whitesmoke',
+            'yellow',
+            'yellowgreen',
+        ),
+        6 => array( //macros prédéfinies
+            'Abs',
+            'Anp',
+            'Apercu',
+            'Arc',
+            'Arc3D',
+            'AretesNum',
+            'AxeX3D',
+            'AxeY3D',
+            'AxeZ3D',
+            'Axes3D',
+            'Bcolor',
+            'Bouton',
+            'BoxAxes3D',
+            'BrightColor',
+            'Bsave',
+            'Ceil',
+            'Cercle',
+            'Cercle3D',
+            'Chanfrein',
+            'ChangeWinTo',
+            'Clip',
+            'Clip3D',
+            'ColorJump',
+            'CompVer',
+            'CompileEps',
+            'CompilePdf',
+            'Cone',
+            'Courbe3D',
+            'CpCopy',
+            'CpDel',
+            'CpNops',
+            'CpReplace',
+            'CpReverse',
+            'CplColor',
+            'Cvx2d',
+            'Cvx3d',
+            'Cvx3dAux',
+            'Cylindre',
+            'Dark',
+            'Dbissec',
+            'Dcarre',
+            'Dcone',
+            'Dcylindre',
+            'Ddroite',
+            'Dmed',
+            'Dparallel',
+            'Dparallelep',
+            'Dparallelo',
+            'Dperp',
+            'Dpolyreg',
+            'DpqGoneReg',
+            'DpqGoneReg3D',
+            'Dprisme',
+            'Dpyramide',
+            'DrawAretes',
+            'DrawDdroite',
+            'DrawDot',
+            'DrawDroite',
+            'DrawFaces',
+            'DrawFacet',
+            'DrawFlatFacet',
+            'DrawGouraudTr',
+            'DrawPlan',
+            'DrawPoly',
+            'DrawPolyNC',
+            'DrawSmoothFacet',
+            'Drectangle',
+            'Dsphere',
+            'Dsurface',
+            'Dtetraedre',
+            'Esave',
+            'ExportGouraudTr',
+            'ExportSmoothFacet',
+            'FacesNum',
+            'Gcolor',
+            'GradDroite',
+            'HollowFacet',
+            'Hsb',
+            'HueColor',
+            'Incfrac',
+            'Intersec',
+            'Intersection',
+            'IsAlign',
+            'IsAlign3d',
+            'IsIn',
+            'IsPlan',
+            'KillDup',
+            'KillDup3D',
+            'LabelArc',
+            'LabelAxe',
+            'LabelDot',
+            'LabelDot3D',
+            'LabelSeg',
+            'Lcolor',
+            'Light',
+            'Ligne3D',
+            'MakeVer',
+            'Map3D',
+            'MapBy',
+            'Merge3d',
+            'MixColor',
+            'MouseZoom',
+            'NewLabel',
+            'NewLabelDot',
+            'NewLabelDot3D',
+            'NewTeXlabel',
+            'Nops3d',
+            'Ordonner',
+            'Palette',
+            'Parallelep',
+            'Point3D',
+            'Pos',
+            'Pos3d',
+            'Prisme',
+            'Pyramide',
+            'Rarc',
+            'Rcercle',
+            'Rcolor',
+            'RealArg',
+            'RealCoord',
+            'RealCoordV',
+            'Rellipse',
+            'RellipticArc',
+            'RestoreTphi',
+            'RestoreWin',
+            'RestoreWin3d',
+            'Rgb2Gray',
+            'Rgb2Hexa',
+            'Rgb2Hsb',
+            'RgbL',
+            'Ryb',
+            'SatColor',
+            'SaveTphi',
+            'SaveWin',
+            'SaveWin3d',
+            'SceneToGeom',
+            'SceneToJvx',
+            'SceneToObj',
+            'ScrCoord',
+            'ScrCoordV',
+            'ScreenCenter',
+            'ScreenPos',
+            'ScreenX',
+            'ScreenY',
+            'Section',
+            'Section2',
+            'Seg',
+            'SetStr',
+            'Snapshot',
+            'SortWith',
+            'Sphere',
+            'StrListAdd',
+            'StrListCopy',
+            'StrListDelKey',
+            'StrListDelVal',
+            'StrListGetKey',
+            'StrListInit',
+            'StrListInsert',
+            'StrListKill',
+            'StrListReplace',
+            'StrListReplaceKey',
+            'StrListShow',
+            'StrNum',
+            'SvgCoord',
+            'TeXCoord',
+            'Tetra',
+            'VarGlob',
+            'WriteObj',
+            'WriteOff',
+            'Xde',
+            'Yde',
+            'Zde',
+            'addfrac',
+            'affin',
+            'aire3d',
+            'angle',
+            'angle3d',
+            'angleD',
+            'antirot3d',
+            'arc',
+            'arcBezier',
+            'axeX',
+            'axeY',
+            'axes',
+            'background',
+            'bande',
+            'bary',
+            'bary3d',
+            'bbox',
+            'bdAngleD',
+            'bdArc',
+            'bdAxes',
+            'bdCercle',
+            'bdCone',
+            'bdCurve',
+            'bdCylinder',
+            'bdDot',
+            'bdDroite',
+            'bdFacet',
+            'bdLabel',
+            'bdLine',
+            'bdPlan',
+            'bdPlanEqn',
+            'bdPrism',
+            'bdPyramid',
+            'bdSphere',
+            'bdSurf',
+            'bdTorus',
+            'bdWall',
+            'binom',
+            'bissec',
+            'bordsAjour',
+            'cap',
+            'capB',
+            'carre',
+            'centerView',
+            'chaine',
+            'class_Path',
+            'clipCurve',
+            'clipPoly',
+            'compileFormule',
+            'conv2Facet',
+            'conv2FlatPs',
+            'coord',
+            'cup',
+            'cupB',
+            'curve2Cone',
+            'curve2Cylinder',
+            'curveTube',
+            'cutBezier',
+            'defAff',
+            'defAff3d',
+            'del',
+            'det',
+            'det3d',
+            'div',
+            'domaine1',
+            'domaine2',
+            'domaine3',
+            'dproj3d',
+            'dproj3dO',
+            'drawFlatPs',
+            'drawSet',
+            'drawTeXlabel',
+            'drawTeXlabel3d',
+            'drawWin3d',
+            'dsym3d',
+            'dsym3dO',
+            'ecart',
+            'ellipseArc',
+            'engineerF',
+            'epsCoord',
+            'extractFlatPs',
+            'fact',
+            'flecher',
+            'free',
+            'ftransform',
+            'ftransform3d',
+            'geomview',
+            'getdot',
+            'getdroite',
+            'getplan',
+            'getplanEqn',
+            'grille3d',
+            'help',
+            'hom',
+            'hom3d',
+            'interDD',
+            'interDP',
+            'interLP',
+            'interPP',
+            'inv',
+            'inv3d',
+            'invmatrix',
+            'invmatrix3d',
+            'isobar',
+            'isobar3d',
+            'javaview',
+            'label',
+            'labelarc',
+            'length',
+            'length3d',
+            'line2Cone',
+            'line2Cylinder',
+            'lineTube',
+            'loadFlatPs',
+            'makeLabel3d',
+            'markangle',
+            'markseg',
+            'markseg3d',
+            'matrix',
+            'matrix3d',
+            'max',
+            'med',
+            'median',
+            'min',
+            'mod',
+            'moy',
+            'mtransform',
+            'mtransform3d',
+            'mulmatrix',
+            'mulmatrix3d',
+            'n',
+            'newxlegend',
+            'newylegend',
+            'newzlegend',
+            'nil',
+            'normalize',
+            'not',
+            'parallel',
+            'parallelo',
+            'pdfprog',
+            'periodic',
+            'permute',
+            'permute3d',
+            'perp',
+            'pgcd',
+            'planEqn',
+            'polyreg',
+            'ppcm',
+            'pqGoneReg',
+            'pqGoneReg3D',
+            'prod',
+            'proj',
+            'proj3d',
+            'proj3dO',
+            'projO',
+            'purge3d',
+            'putAbove',
+            'px',
+            'pxy',
+            'pxz',
+            'py',
+            'pyz',
+            'pz',
+            'rect',
+            'rectangle',
+            'rectangle3d',
+            'replace',
+            'replace3d',
+            'reverse',
+            'reverse3d',
+            'rot',
+            'rot3d',
+            'rotCurve',
+            'rotLine',
+            'set',
+            'setB',
+            'setminus',
+            'setminusB',
+            'shift',
+            'shift3d',
+            'simil',
+            'size',
+            'split2facet1',
+            'split2facet2',
+            'suite',
+            'sum',
+            'svgCoord',
+            'sym',
+            'sym3d',
+            'sym3dO',
+            'symG',
+            'symO',
+            'tangente',
+            'tangenteP',
+            'texCoord',
+            'transformbox3d',
+            'trianguler',
+            'var',
+            'view',
+            'view3D',
+            'viewDir',
+            'visible',
+            'wedge',
+            'zoom',
+        ),
+        7 => array( //variables prédéfinies
+            'AngleStep',
+            'Arrows',
+            'AutoReCalc',
+            'Color',
+            'ComptGraph',
+            'ComptLabel3d',
+            'DashPattern',
+            'DeltaB',
+            'DotAngle',
+            'DotScale',
+            'DotSize',
+            'DotStyle',
+            'Eofill',
+            'FillColor',
+            'FillOpacity',
+            'FillStyle',
+            'ForMinToMax',
+            'HideColor',
+            'HideStyle',
+            'HideWidth',
+            'IsVisible',
+            'LabelAngle',
+            'LabelSize',
+            'LabelStyle',
+            'LineCap',
+            'LineJoin',
+            'LineStyle',
+            'MiterLimit',
+            'MouseCode',
+            'NbBoutons',
+            'NbPoints',
+            'Origin',
+            'PenMode',
+            'RefPoint',
+            'ScriptExt',
+            'StrokeOpacity',
+            'TeXLabel',
+            'TeXify',
+            'TeXifyLabels',
+            'TphiList',
+            'Width',
+            'Xfact',
+            'Xinf',
+            'Xsup',
+            'Yfact',
+            'Yinf',
+            'Ysup',
+            'Zinf',
+            'ZoomList',
+            'Zsup',
+            'above',
+            'arrows',
+            'arrowscale',
+            'axeOrigin',
+            'backcolor',
+            'backculling',
+            'border',
+            'bordercolor',
+            'cleanLabel',
+            'clip',
+            'clipwin',
+            'close',
+            'color',
+            'contrast',
+            'cube',
+            'defaultMatrix',
+            'deg',
+            'dir',
+            'disc',
+            'dollar',
+            'dotcolor',
+            'dotscale',
+            'dotstyle',
+            'drawbox',
+            'flip',
+            'grid',
+            'gridcolor',
+            'gridwidth',
+            'height',
+            'hidden',
+            'hiddenLines',
+            'hollow',
+            'inside',
+            'label3d',
+            'labeldir',
+            'labelpos',
+            'labels',
+            'labelsep',
+            'labelsize',
+            'labelstyle',
+            'legendpos',
+            'linestyle',
+            'maxGrad',
+            'mirror',
+            'mm',
+            'nbdeci',
+            'nbdot',
+            'nbfacet',
+            'normal',
+            'numericFormat',
+            'opacity',
+            'originlabel',
+            'outside',
+            'phi',
+            'position',
+            'rad',
+            'radius',
+            'radiusscale',
+            'radscale',
+            'rotation',
+            'scale',
+            'select',
+            'showdot',
+            'smooth',
+            'stock',
+            'stock1',
+            'stock2',
+            'stock3',
+            'stock4',
+            'stock5',
+            't',
+            'tMax',
+            'tMin',
+            'tailleB',
+            'theta',
+            'tickdir',
+            'tickpos',
+            'tube',
+            'twoside',
+            'u',
+            'usecomma',
+            'v',
+            'vecI',
+            'vecJ',
+            'vecK',
+            'width',
+            'win2dList',
+            'win3dList',
+            'xaxe',
+            'xgradlimits',
+            'xlabelsep',
+            'xlabelstyle',
+            'xlegendsep',
+            'xlimits',
+            'xstep',
+            'xylabelpos',
+            'xylabelsep',
+            'xyticks',
+            'yaxe',
+            'ygradlimits',
+            'ylabelsep',
+            'ylabelstyle',
+            'ylegendsep',
+            'ylimits',
+            'ystep',
+            'zaxe',
+            'zgradlimits',
+            'zlabelsep',
+            'zlabelstyle',
+            'zlegendsep',
+            'zlimits',
+            'zstep',
+        )
+    ),
+    '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: #3ad900;font-weight: bold;',// file construction
+            2  => 'color: #A53;',// programmation structure
+            3  => 'color: #35A;font-weight: bold;',// commandes prédéfinies
+            4  => 'color: #472;',// commandes relatives à l'interface graphique
+            5  => 'color: #008080;',// constantes prédéfinies
+            6  => 'color: #808000;font-weight: bold;',// macros prédéfinies
+            7  => 'color: #000;font-weight: bold;',// variables prédéfinies
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #777;',
+            'MULTI' => 'color: #880;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #820;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #880;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #000;'
+        ),
+        'METHODS' => array(
+            1 => '',
+            2 => ''
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #000;'
+        ),
+        'REGEXPS' => array(
+        ),
+        'SCRIPT' => array(
+            0 => ''
+        )
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://melusine.eu.org/syracuse/G/geshi/docs/texgraph/#{FNAME}',
+        4 => '',
+        5 => '',
+        6 => 'http://melusine.eu.org/syracuse/G/geshi/docs/texgraph/#{FNAME}',
+        7 => ''
+    ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+    ),
+    'REGEXPS' => array(
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+    ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/text.php b/vendor/geshi/geshi/src/geshi/text.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/text.php
rename to vendor/geshi/geshi/src/geshi/text.php
index 3c7f17c62da306085102cebd511cdc0ad0430828..5b97cff393e7e69191855abca581e8c6580d3ab1 100644
--- a/vendor/easybook/geshi/geshi/text.php
+++ b/vendor/geshi/geshi/src/geshi/text.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Sean Hanna (smokingrope@gmail.com)
  * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 04/23/2006
  *
  * Standard Text File (No Syntax Highlighting).
@@ -77,6 +77,6 @@ $language_data = array (
     'PARSER_CONTROL' => array(
         'ENABLE_FLAGS' => array(
             'ALL' => GESHI_NEVER
-        ),
-    )
+            )
+        )
 );
diff --git a/vendor/easybook/geshi/geshi/thinbasic.php b/vendor/geshi/geshi/src/geshi/thinbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/thinbasic.php
rename to vendor/geshi/geshi/src/geshi/thinbasic.php
index 3d2034921ff65f0199b6dad630192cda5b24424f..d4c91e2466d9d2a834dd9ddb7ebd5255a948663a 100644
--- a/vendor/easybook/geshi/geshi/thinbasic.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/05/12
  *
  * thinBasic language file for GeSHi.
diff --git a/vendor/geshi/geshi/src/geshi/tsql.php b/vendor/geshi/geshi/src/geshi/tsql.php
new file mode 100644
index 0000000000000000000000000000000000000000..e333c97120a0b5f5118024e19fbde8b69ba6ff00
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/tsql.php
@@ -0,0 +1,819 @@
+<?php
+/*************************************************************************************
+ * tsql.php
+ * --------
+ * 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.9.0
+ * Date Started: 2005/11/22
+ *
+ * T-SQL language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2004/01/23 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2006/01/23)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     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' => 'T-SQL',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'"),
+    'HARDQUOTE' => array("N'", "'"),
+    'ESCAPE_CHAR' => '[',
+    'KEYWORDS' => array(
+        1 => array(
+            /*
+                Built-in functions
+                Highlighted in pink.
+                Moved these to first array so that functions like @@ROWCOUNT
+                weren't broken up into @@ in black and ROWCOUNT in blue
+                This would prevent the correct pink coloring from taking place.
+                Not sure of any other downsides to this.
+            */
+
+            //Configuration Functions
+            '@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME',
+            '@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS',
+            '@@TEXTSIZE','@@MAX_PRECISION','@@VERSION','@@NESTLEVEL',
+
+            //Cursor Functions
+            '@@CURSOR_ROWS','@@FETCH_STATUS',
+
+            //Date and Time Functions
+            'DATEADD','DATEDIFF','DATENAME','DATEPART','GETDATE','GETUTCDATE',
+            'DATEFROMPARTS','DATETIMEFROMPARTS', 'SMALLDATETIMEFROMPARTS', 'DATETIME2FROMPARTS', 'TIMEFROMPARTS',
+            'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'SYSDATETIME', 'SYSUTCDATETIME',
+            'YEAR', 'QUARTER', 'MONTH', 'DAY', 'HOUR', 'MINUTE', 'SECOND',
+            'EOMONTH',
+
+            //Mathematical Functions
+            'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN',
+            'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS',
+            'POWER','TAN','COT','RADIANS', 'RANK',
+
+            //Meta Data Functions
+            'COL_LENGTH','COL_NAME','FULLTEXTCATALOGPROPERTY',
+            'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL',
+            'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME',
+            'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID',
+            '@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY',
+            'TYPEPROPERTY','FILEPROPERTY','OBJECT_SCHEMA_NAME', 'SCHEMA_ID', 'SCHEMA_NAME', 'OBJECT_DEFINITION',
+
+            //Security Functions
+            'IS_SRVROLEMEMBER','SUSER_SID','SUSER_SNAME','USER_NAME', 'SUSER_NAME', 'USER_ID',
+            'HAS_DBACCESS','IS_MEMBER', 'CURRENT_USER',
+
+            //String Functions
+            'ASCII','SOUNDEX','PATINDEX','CHARINDEX','REPLACE','STR','LEFT', 'RIGHT','DATALENGTH','HASHBYTES',
+            'DIFFERENCE','QUOTENAME','STUFF','REPLICATE','SUBSTRING','LEN',
+            'REVERSE','UNICODE','LOWER','UPPER','LTRIM','RTRIM','FORMAT','TRY_CONVERT','TRY_PARSE','PARSE','CONVERT','CONCAT',
+
+            //System Functions
+            'APP_NAME','COLLATIONPROPERTY','@@ERROR','FORMATMESSAGE',
+            'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR',
+            'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS','PROGRAM_NAME',
+            '@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY',
+            'STATS_DATE','@@TRANCOUNT',
+
+            // Error handling
+            'ERROR_STATE', 'ERROR_SEVERITY', 'ERROR_NUMBER', 'ERROR_MESSAGE', 'ERROR_LINE', 'ERROR_PROCEDURE',
+
+            //System Statistical Functions
+            '@@CONNECTIONS','@@PACK_RECEIVED','@@CPU_BUSY','@@PACK_SENT',
+            '@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY',
+            '@@TOTAL_READ','@@PACKET_ERRORS','@@TOTAL_WRITE',
+
+            //Text and Image Functions
+            'TEXTPTR','TEXTVALID',
+
+            //Aggregate functions
+            'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG',
+            'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'VARP', 'ROW_NUMBER',
+            'LAG', 'LEAD', 'PERCENT_RANK', 'CUME_DIST', 'FIRST_VALUE', 'LAST_VALUE',
+            'PERCENTILE_CONT', 'PERCENTILE_DESC',
+
+            // Logic functions
+            'CHOOSE', 'IIF', 'ISNULL', 'COALESCE', 'NULLIF',
+
+            // GUID
+            'NEWID', 'NEWSEQUENTIALID',
+        ),
+        2 => array(
+            // Datatypes
+            'bigint', 'tinyint', 'money',
+            'smallmoney', 'datetime', 'smalldatetime',
+            'text', 'nvarchar', 'ntext', 'varbinary', 'image',
+            'sql_variant', 'uniqueidentifier', 'smallint', 'int',
+            'xml', 'hierarchyid', 'geography', 'geometry', 'varchar', 'char', 'nchar',
+            'numeric', 'decimal', 'bit', 'sysname', 'date', 'time', 'datetime2', 'datetimeoffset',
+
+            // Keywords
+            'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALLOWED', 'ALTER', 'ARE', 'ARRAY', 'AS',
+            'ASC', 'ASSERTION', 'AT', 'ATOMIC', 'AUDIT', 'AUTHORIZATION', 'AVAILABILITY', 'BACKUP', 'BEFORE', 'BEGIN', 'BINARY', 'BLOB', 'BOOLEAN', 'BOTH', 'BREADTH',
+            'BREAK', 'BROWSE', 'BUCKET_COUNT', 'BULK', 'BY', 'CACHE', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CHARACTER', 'CHECK', 'CHECKCONSTRAINTS',
+            'CHECKDB', 'CHECKPOINT',
+            'CLASS', 'CLEAR', 'CLOB', 'CLOSE', 'CLUSTERED', 'COLLATE', 'COLLATION', 'COLUMN', 'COLUMNSTORE', 'COMMIT',
+            'COMMITTED', 'COMPLETION', 'COMPUTE', 'CONFIGURATION',
+            'CONNECT', 'CONNECTION', 'CONSTRAINT', 'CONSTRAINTS', 'CONSTRUCTOR', 'CONTAINMENT', 'CONTAINS', 'CONTAINSTABLE', 'CONTINUE', 'CORRESPONDING', 'CREATE',
+            'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH', 'CURRENT_ROLE',
+            'CURSOR', 'CYCLE', 'DATA', 'DATA_MIRRORING', 'DATABASE', 'DBCC', 'DEALLOCATE', 'DEC', 'DECLARE', 'DEFAULT', 'DEFERRABLE',
+            'DEFERRED', 'DELAY', 'DELAYED_DURABILITY', 'DELETE', 'DENY', 'DEPTH', 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC',
+            'DIAGNOSTICS', 'DIALOG', 'DICTIONARY', 'DISABLED', 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DOMAIN', 'DOUBLE', 'DROP', 'DROPCLEANBUFFERS', 'DROP_EXISTING',
+            'DUMMY', 'DUMP', 'DURABILITY', 'DYNAMIC',
+            'EACH', 'ELSE', 'END', 'END-EXEC', 'EQUALS', 'ERRLVL', 'ESCAPE', 'EVERY', 'EXCEPT', 'EXCEPTION', 'EXEC', 'EXECUTE', 'EXIT',
+            'EXTERNAL', 'FALSE', 'FETCH', 'FILE', 'FILLFACTOR', 'FIRST', 'FLOAT', 'FOR', 'FOR ATTACH', 'FOR ATTACH_REBUILD_LOG', 'FORCESCAN', 'FORCESEEK', 'FOREIGN', 'FOUND', 'FREE',
+            'FREEPROCCACHE', 'FREETEXT', 'FREETEXTTABLE',
+            'FROM', 'FUNCTION', 'GENERAL', 'GET', 'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GROUP', 'GROUPING', 'HAVING', 'HOLDLOCK', 'HOST',
+            'IDENTITY', 'IDENTITY_INSERT', 'IDENTITYCOL', 'IF', 'IGNORE', 'IMMEDIATE', 'INDEX', 'INDICATOR', 'INITIALIZE', 'INITIALLY',
+            'INOUT', 'INPUT', 'INSERT', 'INTEGER', 'INTERSECT', 'INTERVAL', 'INTO', 'IS', 'ISOLATION', 'ITERATE', 'KEY',
+            'KILL', 'LANGUAGE', 'LARGE', 'LAST', 'LATERAL', 'LEADING', 'LESS', 'LEVEL', 'LIMIT', 'LINENO', 'LOAD', 'LOCAL',
+            'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATOR', 'MAP', 'MASTER KEY', 'MATCH', 'MATCHED', 'MEMORY_OPTIMIZED', 'MEMORY_OPTIMIZED_DATA', 'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT', 'MESSAGE', 'MILLISECOND', 'MODIFIES', 'MODIFY', 'MODULE', 'NAMES', 'NANOSECOND', 'NATIONAL', 'NATIVE_COMPILATION',
+            'NATURAL', 'NCLOB', 'NEW', 'NEXT', 'NO', 'NO_INFOMSGS', 'NOCHECK', 'NOCOUNT', 'NONCLUSTERED', 'NONE', 'OBJECT', 'OF',
+            'OFF', 'OFFSET', 'OFFSETS', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPERATION', 'OPTION',
+            'OPTIMIZER_WHATIF',
+            'ORDER', 'ORDINALITY', 'OUT', 'OUTPUT', 'OVER', 'OWNER', 'PAD', 'PARAMETER', 'PARTIAL', 'PARTITION', 'PASSWORD', 'PATH', 'PERCENT', 'PLAN',
+            'POSTFIX', 'PREFIX', 'PREORDER', 'PREPARE', 'PRESERVE', 'PRECEDING', 'PREVIOUS', 'PRIMARY', 'PRINT', 'PRIOR', 'PRIVILEGES', 'PROC', 'PROCEDURE',
+            'PUBLIC', 'QUERYRULEOFF', 'QUERYTRACEON', 'RAISERROR', 'RANGE', 'READ', 'READS', 'READTEXT', 'REAL', 'REBUILD', 'RECEIVE', 'RECONFIGURE', 'RECURSIVE', 'REF', 'REFERENCES', 'REFERENCING', 'RELATIVE',
+            'REPEATABLE', 'REPLICATION', 'RESTORE', 'RESTRICT', 'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROW', 'ROWCOUNT',
+            'ROWGUIDCOL', 'ROWS', 'RULE', 'SAVE', 'SAVEPOINT', 'SCHEMA', 'SCHEMA_AND_DATA', 'SCOPE', 'SCROLL', 'SEARCH', 'SECONDS', 'SECTION', 'SELECT', 'SEND', 'SENT',
+            'SEQUENCE', 'SERIALIZABLE', 'SERVER', 'SESSION', 'SESSION_USER', 'SET', 'SETCPUWEIGHT', 'SETIOWEIGHT',
+            'SETS', 'SETUSER', 'SHOW_STATISTICS', 'SHOWWEIGHTS', 'SHUTDOWN', 'SIZE', 'SNAPSHOT', 'SPACE', 'SPECIFIC', 'SPECIFICATION',
+            'SPECIFICTYPE', 'SQL', 'SQLEXCEPTION', 'SQLPERF', 'SQLSTATE', 'SQLWARNING', 'START', 'STAT_HEADER', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STRUCTURE',
+            'SYSTEM_USER', 'TABLE', 'TEMPORARY', 'TERMINATE', 'TEXTSIZE', 'THAN', 'THEN', 'THROW', 'TIES', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE',
+            'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TSEQUAL', 'TYPE', 'UNBOUNDED', 'UNCOMMITTED',
+            'UNDEFINED', 'UNDER', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNNEST', 'UPDATE', 'UPDATETEXT', 'USAGE', 'USE', 'USER', 'USING', 'VALUE', 'VALUES',
+            'VARIABLE', 'VARYING', 'VIEW', 'WAITFOR', 'WHEN', 'WHENEVER', 'WHERE', 'WHILE', 'WITH', 'WITHIN', 'WITHOUT', 'WORK', 'WRITE', 'WRITETEXT', 'ZONE',
+
+            // cursor keywords
+            'FORWARD_ONLY', 'READ_ONLY', 'FAST_FORWARD',
+
+            // resource governor
+            'RESOURCE', 'GOVERNOR', 'POOL', 'WORKLOAD',
+
+            // other keywords that were missing or are new in SQL Server 2012.
+            'ANSI_NULL_DFLT_ON',
+            'ACCENT_SENSITIVITY', 'ACTIVATION', 'ACTIVE', 'ADDRESS', 'AES', 'AFFINITY', 'ALGORITHM', 'ALL_SPARSE_COLUMNS', 'ALLOW_MULTIPLE_EVENT_LOSS',
+            'ALLOW_PAGE_LOCKS', 'ALLOW_ROW_LOCKS', 'ALLOW_SINGLE_EVENT_LOSS', 'ALLOW_SNAPSHOT_ISOLATION', 'ANONYMOUS', 'ANSI_DEFAULTS', 'ANSI_NULL_DEFAULT',
+            'ANSI_NULL_DFLT_OFF', 'ANSI_NULLS', 'ANSI_PADDING', 'ANSI_WARNINGS', 'ARITHABORT', 'ARITHIGNORE', 'ASSEMBLY', 'ASYMMETRIC', 'ATTACH_REBUILD_LOG', 'AUTO', 'AUTO_CLEANUP',
+            'AUTO_CLOSE', 'AUTO_CREATE_STATISTICS', 'AUTO_SHRINK', 'AUTO_UPDATE_STATISTICS', 'AUTO_UPDATE_STATISTICS_ASYNC', 'BATCHSIZE', 'BEGIN_DIALOG',
+            'BINDING', 'BROKER', 'BROKER_INSTANCE', 'BULK_LOGGED', 'CAP_CPU_PERCENT', 'CATALOG_DEFAULT', 'CATCH', 'CERTIFICATE', 'CHANGE_RETENTION',
+            'CHANGE_TRACKING', 'CHECK_EXPIRATION',  'CHECK_POLICY', 'CLASSIFIER_FUNCTION', 'CLUSTER', 'CODEPAGE', 'COLLECTION',
+            'COLUMN_SET', 'COMPATIBILITY_LEVEL', 'COMPRESSION', 'CONCAT_NULL_YIELDS_NULL', 'CONTENT', 'CONTRACT', 'CONVERSATION', 'CPU', 'CPU_ID', 'CREDENTIAL',
+            'CRYPTOGRAPHIC', 'CURSOR_CLOSE_ON_COMMIT', 'CURSOR_DEFAULT', 'DATA_COMPRESSION', 'DATABASE_MIRRORING', 'DATAFILETYPE', 'DATE_CORRELATION_OPTIMIZATION',
+            'DATEFIRST', 'DATEFORMAT', 'DAYS', 'DB_CHAINING', 'DEADLOCK_PRIORITY', 'DECRYPTION', 'DEFAULT_DATABASE', 'DEFAULT_FULLTEXT_LANGUAGE', 'DEFAULT_LANGUAGE',
+            'DEFAULT_SCHEMA', 'DIRECTORY_NAME', 'DISABLE_BROKER', 'DOCUMENT', 'EMERGENCY', 'ENABLE_BROKER', 'ENCRYPTION', 'ENDPOINT', 'ERROR_BROKER_CONVERSATIONS',
+            'ERRORFILE', 'EVENT', 'EVENT_RETENTION_MODE', 'EXPAND', 'EXTERNAL_ACCESS', 'FAILOVER', 'FAST', 'FIELDTERMINATOR', 'FILEGROUP', 'FILEGROWTH', 'FILENAME',
+            'FILEPATH', 'FILESTREAM', 'FILESTREAM_ON', 'FILETABLE_DIRECTORY', 'FILETABLE_NAMESPACE', 'FIPS_FLAGGER', 'FIRE_TRIGGERS', 'FIRSTROW', 'FMTONLY', 'FORCE',
+            'FORCE_SERVICE_ALLOW_DATA_LOSS', 'FORCED', 'FORCEPLAN', 'FORMATFILE', 'FULLTEXT', 'GROUP_MAX_REQUESTS', 'HASH', 'HIGH', 'HONOR_BROKER_PRIORITY', 'HOURS',
+            'HTTP', 'IGNORE_CONSTRAINTS', 'IGNORE_DUP_KEY', 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX', 'IGNORE_TRIGGERS', 'IMPLICIT_TRANSACTIONS', 'IMPORTANCE',
+            'INCLUDE', 'INCREMENT', 'INCREMENTAL', 'INFINITE', 'INIT', 'INITIATOR', 'INSTEAD', 'IO', 'KB', 'KEEP', 'KEEPDEFAULTS', 'KEEPFIXED', 'KEEPIDENTITY',
+            'KEEPNULLS', 'KERBEROS', 'KILOBYTES_PER_BATCH', 'LASTROW', 'LIFETIME', 'LIST', 'LISTENER_IP', 'LISTENER_PORT', 'LOCAL_SERVICE_NAME', 'LOCK_ESCALATION',
+            'LOCK_TIMEOUT', 'LOOP', 'LOW', 'MAX_CPU_PERCENT', 'MAX_DISPATCH_LATENCY', 'MAX_DOP', 'MAX_EVENT_SIZE', 'MAX_FILES', 'MAX_MEMORY', 'MAX_MEMORY_PERCENT',
+            'MAX_QUEUE_READERS', 'MAX_ROLLOVER_FILES', 'MAXDOP', 'MAXERRORS', 'MAXRECURSION', 'MAXSIZE', 'MAXVALUE', 'MB', 'MEDIUM', 'MEMORY_PARTITION_MODE',
+            'MERGE', 'MESSAGE_FORWARD_SIZE', 'MESSAGE_FORWARDING', 'MIN_CPU_PERCENT', 'MIN_MEMORY_PERCENT', 'MINUTES', 'MINVALUE', 'MIRROR_ADDRESS', 'MOVE',
+            'MULTI_USER', 'MUST_CHANGE', 'NEGOTIATE', 'NESTED_TRIGGERS', 'NEW_ACCOUNT', 'NEW_BROKER', 'NEWNAME', 'NO_COMPRESSION', 'NO_EVENT_LOSS', 'NO_WAIT', 'NOEXEC', 'NOEXPAND',
+            'NOLOCK', 'NON_TRANSACTED_ACESS', 'NOWAIT', 'NTLM', 'NUMA_NODE_ID', 'NUMANODE', 'NUMERIC_ROUNDABORT', 'OFFLINE', 'OLD_ACCOUNT', 'ON_FAILURE', 'ONLINE',
+            'OPTIMIZE', 'OVERRIDE', 'PAD_INDEX', 'PAGE', 'PAGE_VERIFY', 'PAGLOCK', 'PARAMETERIZATION', 'PARSEONLY', 'PARTITIONS', 'PARTNER', 'PER_CPU', 'PER_NODE',
+            'PERMISSION_SET', 'PERSISTED', 'POISON_MESSAGE_HANDLING', 'POPULATION', 'PRIORITY', 'PRIORITY_LEVEL', 'PRIVATE', 'PROCEDURE_NAME', 'PROCESS', 'PROFILE',
+            'PROPERTY', 'PROPERTY_DESCRIPTION', 'PROPERTY_INT_ID', 'PROPERTY_SET_GUID', 'PROVIDER', 'QUERY_GOVERNOR_COST_LIMIT', 'QUEUE', 'QUEUE_DELAY',
+            'QUOTED_IDENTIFIER', 'RC4', 'READ_COMMITTED_SNAPSHOT', 'READ_WRITE', 'READCOMMITTED', 'READCOMMITTEDLOCK', 'READONLY', 'READPAST', 'READUNCOMMITTED',
+            'READWRITE', 'RECOMPILE', 'RECOVERY', 'RECOVERY FULL', 'RECOVERY SIMPLE', 'RECURSIVE_TRIGGERS', 'REGENERATE', 'REMOTE', 'REMOTE_PROC_TRANSACTIONS', 'REMOTE_SERVICE_NAME', 'REMOVE',
+            'REPEATABLEREAD', 'REQUEST_MAX_CPU_TIME_SEC', 'REQUEST_MAX_MEMORY_GRANT_PERCENT', 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC', 'REQUIRED', 'RESERVE_DISK_SPACE',
+            'RESET', 'RESTART', 'RESTRICTED_USER', 'RESUME', 'RETENTION', 'ROBUST', 'ROUTE', 'ROWLOCK', 'ROWS_PER_BATCH', 'ROWTERMINATOR', 'SAFE', 'SAFETY',
+            'SCHEDULER', 'SCHEMABINDING', 'SCHEME', 'SECRET', 'SERVICE', 'SERVICE_BROKER', 'SERVICE_NAME', 'SETERROR', 'SHOWPLAN', 'SHOWPLAN_ALL', 'SHOWPLAN_TEXT',
+            'SHOWPLAN_XML', 'SIMPLE', 'SINGLE_USER', 'SORT_IN_TEMPDB', 'SOURCE', 'SPARSE', 'SPATIAL_WINDOW_MAX_CELLS', 'SPLIT', 'STARTED', 'STARTUP_STATE',
+            'STATISTICAL_SEMANTICS', 'STATISTICS_NORECOMPUTE', 'STATUS', 'STOP', 'STOPLIST', 'STOPPED', 'SUPPORTED', 'SUSPEND', 'SWITCH', 'SYMMETRIC', 'SYNONYM',
+            'SYSTEM', 'TABLOCK', 'TABLOCKX', 'TARGET', 'TARGET_RECOVERY_TIME', 'TCP', 'TIMEOUT', 'TORN_PAGE_DETECTION', 'TRACK_CAUSALITY', 'TRACK_COLUMNS_UPDATED',
+            'TRANSFER', 'TRANSFORM_NOISE_WORDS', 'TRUSTWORTHY', 'TRY', 'TSQL', 'TWO_DIGIT_YEAR_CUTOFF', 'UNCHECKED', 'UNLIMITED', 'UNLOCK', 'UNSAFE', 'UPDLOCK',
+            'USED', 'VALID_XML', 'VALIDATION', 'VIEW_METADATA', 'VISIBILITY', 'WEEKDAY', 'WELL_FORMED_XML', 'WINDOWS', 'WITH SUBJECT', 'WITNESS', 'XACT_ABORT', 'XLOCK',
+
+            /* AlwaysOn stuff */
+            'AUTHENTICATION', 'ENDPOINT_URL', 'LISTENER', 'COPY_ONLY', 'NORECOVERY', 'NOUNLOAD', 'HADR', 'PORT',
+            'FAILOVER_MODE', 'MANUAL', 'AVAILABILITY_MODE', 'ASYNCHRONOUS_COMMIT', 'SYNCHRONOUS_COMMIT', 'AUTOMATIC', 'REPLICA', 'READ_ONLY_ROUTING_URL', 'BACKUP_PRIORITY', 'SECONDARY_ROLE', 'ALLOW_CONNECTIONS', 'AUTOMATED_BACKUP_PREFERENCE', 'SECONDARY', 'SECONDARY_ONLY', 'PRIMARY_ROLE', 'READ_ONLY_ROUTING_LIST',
+        ),
+        3 => array(
+            /*
+                System stored procedures
+                Higlighted dark brown
+            */
+
+            // CLR stored procedures
+            'sp_FuzzyLookupTableMaintenanceInstall', 'sp_FuzzyLookupTableMaintenanceInvoke', 'sp_FuzzyLookupTableMaintenanceUninstall',
+
+            // system procedures named with xp_
+            'xp_grantlogin', 'xp_logininfo', 'xp_repl_convert_encrypt_sysadmin_wrapper', 'xp_revokelogin',
+
+            // extended procedures
+            'xp_availablemedia',  'xp_cmdshell', 'xp_create_subdir', 'xp_delete_file', 'xp_dirtree', 'xp_enum_oledb_providers',
+            'xp_enumerrorlogs', 'xp_enumgroups',  'xp_fileexist', 'xp_fixeddrives', 'xp_get_script', 'xp_get_tape_devices',
+            'xp_getnetname', 'xp_instance_regaddmultistring',  'xp_instance_regdeletekey', 'xp_instance_regdeletevalue',
+            'xp_instance_regenumkeys', 'xp_instance_regenumvalues',  'xp_instance_regread', 'xp_instance_regremovemultistring',
+            'xp_instance_regwrite', 'xp_logevent', 'xp_loginconfig', 'xp_msver',  'xp_msx_enlist', 'xp_passAgentInfo',
+            'xp_prop_oledb_provider', 'xp_qv', 'xp_readerrorlog', 'xp_regaddmultistring',  'xp_regdeletekey', 'xp_regdeletevalue',
+            'xp_regenumkeys', 'xp_regenumvalues', 'xp_regread', 'xp_regremovemultistring',  'xp_regwrite', 'xp_replposteor',
+            'xp_servicecontrol', 'xp_sprintf', 'xp_sqlagent_enum_jobs', 'xp_sqlagent_is_starting',  'xp_sqlagent_monitor',
+            'xp_sqlagent_notify', 'xp_sqlagent_param', 'xp_sqlmaint', 'xp_sscanf', 'xp_subdirs',  'xp_sysmail_activate',
+            'xp_sysmail_attachment_load',  'xp_sysmail_format_query',
+
+            // extended procedures named with sp_
+            'sp_AddFunctionalUnitToComponent', 'sp_audit_write', 'sp_availability_group_command_internal', 'sp_begin_parallel_nested_tran',
+            'sp_bindsession', 'sp_change_tracking_waitforchanges', 'sp_commit_parallel_nested_tran', 'sp_control_dbmasterkey_password',
+            'sp_createorphan', 'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen', 'sp_cursoroption',
+            'sp_cursorprepare', 'sp_cursorprepexec', 'sp_cursorunprepare', 'sp_delete_http_namespace_reservation',
+            'sp_describe_first_result_set', 'sp_describe_undeclared_parameters', 'sp_droporphans', 'sp_enable_sql_debug', 'sp_execute',
+            'sp_executesql', 'sp_fulltext_getdata', 'sp_fulltext_keymappings', 'sp_fulltext_pendingchanges', 'sp_get_query_template',
+            'sp_getbindtoken', 'sp_getschemalock', 'sp_http_generate_wsdl_complex', 'sp_http_generate_wsdl_simple',
+            'sp_migrate_user_to_contained', 'sp_new_parallel_nested_tran_id', 'sp_OACreate', 'sp_OADestroy', 'sp_OAGetErrorInfo',
+            'sp_OAGetProperty', 'sp_OAMethod', 'sp_OASetProperty', 'sp_OAStop', 'sp_PostAgentInfo', 'sp_prepare', 'sp_prepexec',
+            'sp_prepexecrpc', 'sp_releaseschemalock', 'sp_repl_generateevent', 'sp_replcmds', 'sp_replcounters', 'sp_replddlparser',
+            'sp_repldone', 'sp_replflush', 'sp_replhelp', 'sp_replsendtoqueue', 'sp_replsetsyncstatus', 'sp_repltrans',
+            'sp_replwritetovarbin', 'sp_reserve_http_namespace', 'sp_reset_connection', 'sp_resyncexecute', 'sp_resyncexecutesql',
+            'sp_resyncprepare', 'sp_resyncuniquetable', 'sp_rollback_parallel_nested_tran', 'sp_server_diagnostics',
+            'sp_SetOBDCertificate', 'sp_setuserbylogin', 'sp_showmemo_xml', 'sp_start_user_instance', 'sp_testlinkedserver',
+            'sp_trace_create', 'sp_trace_generateevent', 'sp_trace_setevent', 'sp_trace_setfilter', 'sp_trace_setstatus', 'sp_unprepare',
+            'sp_update_user_instance', 'sp_xml_preparedocument', 'sp_xml_removedocument', 'sp_xp_cmdshell_proxy_account'
+
+        ),
+        4 => array(
+            // DMVs/DMFs/catalog views etc. highlighted green.
+
+            //schemas
+            'sys', 'INFORMATION_SCHEMA',
+
+            // inline TVFs
+            'dm_cryptographic_provider_algorithms','dm_cryptographic_provider_keys','dm_cryptographic_provider_sessions',
+            'dm_db_database_page_allocations','dm_db_index_operational_stats','dm_db_index_physical_stats',
+            'dm_db_missing_index_columns','dm_db_objects_disabled_on_compatibility_level_change',
+            'dm_exec_cached_plan_dependent_objects','dm_exec_cursors','dm_exec_describe_first_result_set',
+            'dm_exec_describe_first_result_set_for_object','dm_exec_plan_attributes','dm_exec_query_plan','dm_exec_sql_text',
+            'dm_exec_text_query_plan','dm_exec_xml_handles','dm_fts_index_keywords','dm_fts_index_keywords_by_document',
+            'dm_fts_index_keywords_by_property','dm_fts_parser','dm_io_virtual_file_stats','dm_logconsumer_cachebufferrefs',
+            'dm_logconsumer_privatecachebuffers','dm_logpool_consumers','dm_logpool_sharedcachebuffers','dm_logpoolmgr_freepools',
+            'dm_logpoolmgr_respoolsize','dm_logpoolmgr_stats','dm_os_volume_stats','dm_sql_referenced_entities',
+            'dm_sql_referencing_entities','fn_builtin_permissions','fn_check_object_signatures','fn_dblog','fn_dump_dblog',
+            'fn_get_audit_file','fn_get_sql','fn_helpcollations','fn_MSxe_read_event_stream','fn_trace_gettable',
+            'fn_translate_permissions', 'fn_validate_plan_guide',  'fn_xe_file_target_read_file',
+
+            // multi-statement TVFs
+            'fn_EnumCurrentPrincipals', 'fn_helpdatatypemap', 'fn_listextendedproperty', 'fn_my_permissions',
+            'fn_PhysLocCracker', 'fn_replgetcolidfrombitmap', 'fn_RowDumpCracker', 'fn_servershareddrives',
+            'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo',  'fn_virtualfilestats',
+            'fn_virtualservernodes',
+
+            // aggregate functions
+            'GeographyCollectionAggregate', 'GeographyConvexHullAggregate', 'GeographyEnvelopeAggregate', 'GeographyUnionAggregate',
+            'GeometryCollectionAggregate', 'GeometryConvexHullAggregate', 'GeometryEnvelopeAggregate', 'GeometryUnionAggregate',
+            'ORMask',
+
+            // scalar functions
+            'fn_cColvEntries_80','fn_cdc_check_parameters','fn_cdc_get_column_ordinal','fn_cdc_get_max_lsn','fn_cdc_get_min_lsn',
+            'fn_cdc_has_column_changed','fn_cdc_hexstrtobin','fn_cdc_map_lsn_to_time','fn_cdc_map_time_to_lsn','fn_fIsColTracked',
+            'fn_GetCurrentPrincipal','fn_GetRowsetIdFromRowDump','fn_hadr_backup_is_preferred_replica','fn_IsBitSetInBitmask',
+            'fn_isrolemember','fn_MapSchemaType','fn_MSdayasnumber','fn_MSgeneration_downloadonly','fn_MSget_dynamic_filter_login',
+            'fn_MSorbitmaps','fn_MSrepl_map_resolver_clsid','fn_MStestbit','fn_MSvector_downloadonly','fn_numberOf1InBinaryAfterLoc',
+            'fn_numberOf1InVarBinary','fn_PhysLocFormatter','fn_repladjustcolumnmap','fn_repldecryptver4','fn_replformatdatetime',
+            'fn_replgetparsedddlcmd','fn_replp2pversiontotranid', 'fn_replreplacesinglequote',
+            'fn_replreplacesinglequoteplusprotectstring', 'fn_repluniquename', 'fn_replvarbintoint', 'fn_sqlvarbasetostr',
+            'fn_varbintohexstr', 'fn_varbintohexsubstring', 'fn_yukonsecuritymodelrequired',
+
+            // service queues
+            'EventNotificationErrorsQueue', 'QueryNotificationErrorsQueue', 'ServiceBrokerQueue',
+
+            // system tables
+            'sysallocunits','sysasymkeys','sysaudacts','sysbinobjs','sysbinsubobjs','sysbrickfiles','syscerts','syschildinsts','sysclones','sysclsobjs',
+            'syscolpars','syscompfragments','sysconvgroup','syscscolsegments','syscsdictionaries','sysdbfiles','sysdbfrag','sysdbreg','sysdercv','sysdesend',
+            'sysendpts','sysfgfrag','sysfiles1','sysfoqueues','sysfos','sysftinds','sysftproperties','sysftsemanticsdb','sysftstops','sysguidrefs',
+            'sysidxstats','sysiscols','syslnklgns','sysmultiobjrefs','sysnsobjs','sysobjkeycrypts','sysobjvalues','sysowners','sysphfg','syspriorities',
+            'sysprivs','syspru','sysprufiles','sysqnames','sysremsvcbinds','sysrmtlgns','sysrowsetrefs','sysrowsets','sysrscols','sysrts',
+            'sysscalartypes','sysschobjs','sysseobjvalues','syssingleobjrefs','syssoftobjrefs','syssqlguides','systypedsubobjs','sysusermsgs','syswebmethods',
+            'sysxlgns','sysxmitbody', 'sysxmitqueue', 'sysxmlcomponent', 'sysxmlfacet', 'sysxmlplacement', 'sysxprops', 'sysxsrvs',
+
+            // user tables (these are currently in dbo schema but will be fixed)
+            'trace_xe_action_map', 'trace_xe_event_map',
+
+            // backward compatibility views
+            'sysaltfiles', 'syscacheobjects', 'syscharsets', 'syscolumns', 'syscomments', 'sysconfigures', 'sysconstraints', 'syscurconfigs', 'syscursorcolumns',
+            'syscursorrefs', 'syscursors', 'syscursortables', 'sysdatabases', 'sysdepends', 'sysdevices', 'sysfilegroups', 'sysfiles', 'sysforeignkeys',
+            'sysfulltextcatalogs', 'sysindexes', 'sysindexkeys', 'syslanguages', 'syslockinfo', 'syslogins', 'sysmembers', 'sysmessages', 'sysobjects',
+            'sysoledbusers', 'sysopentapes', 'sysperfinfo', 'syspermissions', 'sysprocesses', 'sysprotects', 'sysreferences', 'sysremotelogins', 'sysservers',
+            'systypes', 'sysusers',
+
+            // INFORMATION_SCHEMA views
+            'COLUMN_DOMAIN_USAGE', 'COLUMN_PRIVILEGES', 'COLUMNS', 'CONSTRAINT_COLUMN_USAGE',
+            'CONSTRAINT_TABLE_USAGE', 'KEY_COLUMN_USAGE', 'PARAMETERS', 'REFERENTIAL_CONSTRAINTS', 'ROUTINE_COLUMNS',
+            'ROUTINES', 'SCHEMATA', 'SEQUENCES', 'TABLE_CONSTRAINTS', 'TABLE_PRIVILEGES', 'TABLES', 'VIEW_COLUMN_USAGE',
+            'VIEW_TABLE_USAGE', 'VIEWS',
+
+            // catalog views
+            'default_constraints',
+            'all_columns', 'all_objects', 'all_parameters', 'all_sql_modules', 'all_views', 'allocation_units',
+            'assemblies', 'assembly_files', 'assembly_modules', 'assembly_references', 'assembly_types', 'asymmetric_keys',
+            'availability_databases_cluster', 'availability_group_listener_ip_addresses', 'availability_group_listeners',
+            'availability_groups', 'availability_groups_cluster', 'availability_read_only_routing_lists',
+            'availability_replicas', 'backup_devices', 'certificates', 'change_tracking_databases', 'change_tracking_tables',
+            'check_constraints', 'column_store_dictionaries', 'column_store_index_stats', 'column_store_segments',
+            'column_type_usages', 'column_xml_schema_collection_usages', 'computed_columns', 'configurations',
+            'conversation_endpoints', 'conversation_groups', 'conversation_priorities', 'credentials', 'crypt_properties',
+            'cryptographic_providers', 'databases', 'endpoint_webmethods', 'endpoints', 'event_notification_event_types',
+            'event_notifications', 'events', 'extended_procedures', 'extended_properties', 'filegroups',
+            'filetable_system_defined_objects', 'filetables', 'foreign_key_columns', 'foreign_keys', 'fulltext_catalogs',
+            'fulltext_document_types', 'fulltext_index_catalog_usages', 'fulltext_index_columns', 'fulltext_index_fragments',
+            'fulltext_indexes', 'fulltext_languages', 'fulltext_semantic_language_statistics_database',
+            'fulltext_semantic_languages', 'fulltext_stoplists', 'fulltext_stopwords', 'fulltext_system_stopwords',
+            'function_order_columns', 'http_endpoints', 'identity_columns', 'index_columns', 'indexes', 'internal_tables',
+            'key_constraints', 'key_encryptions', 'linked_logins', 'login_token', 'master_files', 'numbered_procedure_parameters',
+            'numbered_procedures', 'objects', 'openkeys', 'parameter_type_usages', 'parameter_xml_schema_collection_usages',
+            'partition_functions', 'partition_parameters', 'partition_range_values', 'partition_schemes',
+            'partitions', 'plan_guides', 'procedures', 'registered_search_properties', 'registered_search_property_lists',
+            'remote_logins', 'remote_service_bindings', 'resource_governor_configuration',  'resource_governor_resource_pool_affinity',
+            'resource_governor_resource_pools', 'resource_governor_workload_groups', 'routes', 'schemas', 'securable_classes',
+            'server_assembly_modules', 'server_audit_specification_details', 'server_audit_specifications',
+            'server_audits', 'server_event_notifications', 'server_event_session_actions', 'server_event_session_events',
+            'server_event_session_fields', 'server_event_session_targets', 'server_event_sessions', 'server_events',
+            'server_file_audits', 'server_permissions', 'server_principal_credentials', 'server_principals', 'server_role_members',
+            'server_sql_modules', 'server_trigger_events', 'server_triggers', 'servers', 'service_broker_endpoints',
+            'service_contract_message_usages', 'service_contract_usages', 'service_contracts', 'service_message_types',
+            'service_queue_usages', 'service_queues', 'services', 'soap_endpoints', 'spatial_index_tessellations', 'spatial_indexes',
+            'spatial_reference_systems', 'sql_dependencies', 'sql_expression_dependencies', 'sql_logins', 'sql_modules', 'stats',
+            'stats_columns', 'symmetric_keys', 'synonyms', 'system_columns', 'system_components_surface_area_configuration',
+            'system_internals_allocation_units', 'system_internals_partition_columns', 'system_internals_partitions', 'system_objects',
+            'system_parameters', 'system_sql_modules', 'system_views', 'table_types', 'tcp_endpoints', 'trace_categories',
+            'trace_columns', 'trace_event_bindings', 'trace_events', 'trace_subclass_values', 'traces', 'transmission_queue',
+            'trigger_event_types', 'trigger_events', 'triggers', 'type_assembly_usages', 'types', 'user_token', 'via_endpoints',
+            'xml_indexes', 'xml_schema_attributes', 'xml_schema_collections', 'xml_schema_component_placements',
+            'xml_schema_components',  'xml_schema_elements', 'xml_schema_facets', 'xml_schema_model_groups', 'xml_schema_namespaces',
+            'xml_schema_types', 'xml_schema_wildcard_namespaces', 'xml_schema_wildcards',
+
+            // DMVs / DMFs
+            'dm_audit_actions', 'dm_audit_class_type_map', 'dm_broker_activated_tasks', 'dm_broker_connections', 'dm_broker_forwarded_messages',
+            'dm_broker_queue_monitors', 'dm_cdc_errors', 'dm_cdc_log_scan_sessions', 'dm_clr_appdomains', 'dm_clr_loaded_assemblies',
+            'dm_clr_properties', 'dm_clr_tasks', 'dm_cryptographic_provider_properties', 'dm_database_encryption_keys', 'dm_db_file_space_usage',
+            'dm_db_fts_index_physical_stats', 'dm_db_index_usage_stats', 'dm_db_log_space_usage', 'dm_db_mirroring_auto_page_repair',
+            'dm_db_mirroring_connections', 'dm_db_mirroring_past_actions', 'dm_db_missing_index_details', 'dm_db_missing_index_group_stats',
+            'dm_db_missing_index_groups', 'dm_db_partition_stats', 'dm_db_persisted_sku_features', 'dm_db_script_level', 'dm_db_session_space_usage',
+            'dm_db_task_space_usage', 'dm_db_uncontained_entities', 'dm_exec_background_job_queue', 'dm_exec_background_job_queue_stats',
+            'dm_exec_cached_plans', 'dm_exec_connections', 'dm_exec_procedure_stats', 'dm_exec_query_memory_grants', 'dm_exec_query_optimizer_info', 'dm_exec_query_profiles',
+            'dm_exec_query_resource_semaphores', 'dm_exec_query_stats', 'dm_exec_query_transformation_stats', 'dm_exec_requests', 'dm_exec_sessions',
+            'dm_exec_trigger_stats', 'dm_filestream_file_io_handles', 'dm_filestream_file_io_requests', 'dm_filestream_non_transacted_handles',
+            'dm_fts_active_catalogs', 'dm_fts_fdhosts', 'dm_fts_index_population', 'dm_fts_memory_buffers', 'dm_fts_memory_pools',
+            'dm_fts_outstanding_batches', 'dm_fts_population_ranges', 'dm_fts_semantic_similarity_population', 'dm_hadr_auto_page_repair',
+            'dm_hadr_availability_group_states', 'dm_hadr_availability_replica_cluster_nodes', 'dm_hadr_availability_replica_cluster_states',
+            'dm_hadr_availability_replica_states', 'dm_hadr_cluster', 'dm_hadr_cluster_members', 'dm_hadr_cluster_networks',
+            'dm_hadr_database_replica_cluster_states', 'dm_hadr_database_replica_states', 'dm_hadr_instance_node_map', 'dm_hadr_name_id_map',
+            'dm_io_backup_tapes', 'dm_io_cluster_shared_drives', 'dm_io_pending_io_requests', 'dm_logpool_hashentries',
+            'dm_logpool_stats', 'dm_os_buffer_descriptors', 'dm_os_child_instances', 'dm_os_cluster_nodes', 'dm_os_cluster_properties',
+            'dm_os_dispatcher_pools', 'dm_os_dispatchers', 'dm_os_hosts', 'dm_os_latch_stats', 'dm_os_loaded_modules',
+            'dm_os_memory_allocations', 'dm_os_memory_broker_clerks', 'dm_os_memory_brokers', 'dm_os_memory_cache_clock_hands',
+            'dm_os_memory_cache_counters', 'dm_os_memory_cache_entries', 'dm_os_memory_cache_hash_tables', 'dm_os_memory_clerks',
+            'dm_os_memory_node_access_stats', 'dm_os_memory_nodes', 'dm_os_memory_objects', 'dm_os_memory_pools', 'dm_os_nodes',
+            'dm_os_performance_counters', 'dm_os_process_memory', 'dm_os_ring_buffers', 'dm_os_schedulers',
+            'dm_os_server_diagnostics_log_configurations', 'dm_os_spinlock_stats', 'dm_os_stacks', 'dm_os_sublatches', 'dm_os_sys_info',
+            'dm_os_sys_memory', 'dm_os_tasks', 'dm_os_threads', 'dm_os_virtual_address_dump', 'dm_os_wait_stats', 'dm_os_waiting_tasks',
+            'dm_os_windows_info', 'dm_os_worker_local_storage', 'dm_os_workers', 'dm_qn_subscriptions', 'dm_repl_articles', 'dm_repl_schemas',
+            'dm_repl_tranhash', 'dm_repl_traninfo', 'dm_resource_governor_configuration', 'dm_resource_governor_resource_pool_affinity',
+            'dm_resource_governor_resource_pools', 'dm_resource_governor_workload_groups', 'dm_server_audit_status', 'dm_server_memory_dumps',
+            'dm_server_registry', 'dm_server_services', 'dm_tcp_listener_states', 'dm_tran_active_snapshot_database_transactions',
+            'dm_tran_active_transactions', 'dm_tran_commit_table', 'dm_tran_current_snapshot', 'dm_tran_current_transaction',
+            'dm_tran_database_transactions', 'dm_tran_locks', 'dm_tran_session_transactions', 'dm_tran_top_version_generators',
+            'dm_tran_transactions_snapshot', 'dm_tran_version_store', 'dm_xe_map_values', 'dm_xe_object_columns', 'dm_xe_objects', 'dm_xe_packages', 'dm_xe_sessions', 'dm_xe_session_targets',
+        ),
+        5 => array(
+
+            // system procedures (sorry, not categorized, but definitely more complete and updated for Denali)
+            // moved these to their own array because they overloaded array 3
+
+            'sp_add_agent_parameter', 'sp_add_agent_profile', 'sp_add_data_file_recover_suspect_db', 'sp_add_log_file_recover_suspect_db',
+            'sp_add_log_shipping_alert_job', 'sp_add_log_shipping_primary_database', 'sp_add_log_shipping_primary_secondary',
+            'sp_add_log_shipping_secondary_database', 'sp_add_log_shipping_secondary_primary', 'sp_addapprole', 'sp_addarticle',
+            'sp_adddatatype', 'sp_adddatatypemapping', 'sp_adddistpublisher', 'sp_adddistributiondb', 'sp_adddistributor',
+            'sp_adddynamicsnapshot_job', 'sp_addextendedproc', 'sp_addextendedproperty', 'sp_addlinkedserver', 'sp_addlinkedsrvlogin',
+            'sp_addlogin', 'sp_addlogreader_agent', 'sp_addmergealternatepublisher', 'sp_addmergearticle', 'sp_addmergefilter',
+            'sp_addmergelogsettings', 'sp_addmergepartition', 'sp_addmergepublication', 'sp_addmergepullsubscription',
+            'sp_addmergepullsubscription_agent', 'sp_addmergepushsubscription_agent', 'sp_addmergesubscription', 'sp_addmessage',
+            'sp_addpublication', 'sp_addpublication_snapshot', 'sp_addpullsubscription', 'sp_addpullsubscription_agent',
+            'sp_addpushsubscription_agent', 'sp_addqreader_agent', 'sp_addqueued_artinfo', 'sp_addremotelogin', 'sp_addrole',
+            'sp_addrolemember', 'sp_addscriptexec', 'sp_addserver', 'sp_addsrvrolemember', 'sp_addsubscriber', 'sp_addsubscriber_schedule',
+            'sp_addsubscription', 'sp_addsynctriggers', 'sp_addsynctriggerscore', 'sp_addtabletocontents', 'sp_addtype', 'sp_addumpdevice',
+            'sp_adduser', 'sp_adjustpublisheridentityrange', 'sp_altermessage', 'sp_approlepassword', 'sp_article_validation',
+            'sp_articlecolumn', 'sp_articlefilter', 'sp_articleview', 'sp_assemblies_rowset', 'sp_assemblies_rowset_rmt',
+            'sp_assemblies_rowset2', 'sp_assembly_dependencies_rowset', 'sp_assembly_dependencies_rowset_rmt',
+            'sp_assembly_dependencies_rowset2', 'sp_attach_db', 'sp_attach_single_file_db', 'sp_attachsubscription', 'sp_autostats',
+            'sp_bcp_dbcmptlevel', 'sp_bindefault', 'sp_bindrule', 'sp_browsemergesnapshotfolder', 'sp_browsereplcmds',
+            'sp_browsesnapshotfolder', 'sp_can_tlog_be_applied', 'sp_catalogs', 'sp_catalogs_rowset', 'sp_catalogs_rowset_rmt',
+            'sp_catalogs_rowset2', 'sp_cdc_add_job', 'sp_cdc_change_job', 'sp_cdc_cleanup_change_table', 'sp_cdc_dbsnapshotLSN',
+            'sp_cdc_disable_db', 'sp_cdc_disable_table', 'sp_cdc_drop_job', 'sp_cdc_enable_db', 'sp_cdc_enable_table',
+            'sp_cdc_generate_wrapper_function', 'sp_cdc_get_captured_columns', 'sp_cdc_get_ddl_history', 'sp_cdc_help_change_data_capture',
+            'sp_cdc_help_jobs', 'sp_cdc_restoredb', 'sp_cdc_scan', 'sp_cdc_start_job', 'sp_cdc_stop_job', 'sp_cdc_vupgrade',
+            'sp_cdc_vupgrade_databases', 'sp_certify_removable', 'sp_change_agent_parameter', 'sp_change_agent_profile',
+            'sp_change_log_shipping_primary_database', 'sp_change_log_shipping_secondary_database', 'sp_change_log_shipping_secondary_primary',
+            'sp_change_subscription_properties', 'sp_change_users_login', 'sp_changearticle', 'sp_changearticlecolumndatatype',
+            'sp_changedbowner', 'sp_changedistpublisher', 'sp_changedistributiondb', 'sp_changedistributor_password',
+            'sp_changedistributor_property', 'sp_changedynamicsnapshot_job', 'sp_changelogreader_agent', 'sp_changemergearticle',
+            'sp_changemergefilter', 'sp_changemergelogsettings', 'sp_changemergepublication', 'sp_changemergepullsubscription',
+            'sp_changemergesubscription', 'sp_changeobjectowner', 'sp_changepublication', 'sp_changepublication_snapshot',
+            'sp_changeqreader_agent', 'sp_changereplicationserverpasswords', 'sp_changesubscriber', 'sp_changesubscriber_schedule',
+            'sp_changesubscription', 'sp_changesubscriptiondtsinfo', 'sp_changesubstatus', 'sp_check_constbytable_rowset',
+            'sp_check_constbytable_rowset2', 'sp_check_constraints_rowset', 'sp_check_constraints_rowset2', 'sp_check_dynamic_filters',
+            'sp_check_for_sync_trigger', 'sp_check_join_filter', 'sp_check_log_shipping_monitor_alert', 'sp_check_publication_access',
+            'sp_check_removable', 'sp_check_subset_filter', 'sp_check_sync_trigger', 'sp_checkinvalidivarticle',
+            'sp_checkOraclepackageversion', 'sp_clean_db_file_free_space', 'sp_clean_db_free_space', 'sp_cleanmergelogfiles',
+            'sp_cleanup_log_shipping_history', 'sp_cleanupdbreplication', 'sp_column_privileges', 'sp_column_privileges_ex',
+            'sp_column_privileges_rowset', 'sp_column_privileges_rowset_rmt', 'sp_column_privileges_rowset2', 'sp_columns', 'sp_columns_100',
+            'sp_columns_100_rowset', 'sp_columns_100_rowset2', 'sp_columns_90', 'sp_columns_90_rowset', 'sp_columns_90_rowset_rmt',
+            'sp_columns_90_rowset2', 'sp_columns_ex', 'sp_columns_ex_100', 'sp_columns_ex_90', 'sp_columns_managed', 'sp_columns_rowset',
+            'sp_columns_rowset_rmt', 'sp_columns_rowset2', 'sp_configure', 'sp_configure_peerconflictdetection', 'sp_constr_col_usage_rowset',
+            'sp_constr_col_usage_rowset2', 'sp_control_plan_guide', 'sp_copymergesnapshot', 'sp_copysnapshot', 'sp_copysubscription',
+            'sp_create_plan_guide', 'sp_create_plan_guide_from_handle', 'sp_create_removable', 'sp_createmergepalrole', 'sp_createstats',
+            'sp_createtranpalrole', 'sp_cursor_list', 'sp_cycle_errorlog', 'sp_databases', 'sp_datatype_info', 'sp_datatype_info_100',
+            'sp_datatype_info_90', 'sp_db_increased_partitions', 'sp_db_vardecimal_storage_format', 'sp_dbcmptlevel', 'sp_dbfixedrolepermission',
+            'sp_dbmmonitoraddmonitoring', 'sp_dbmmonitorchangealert', 'sp_dbmmonitorchangemonitoring', 'sp_dbmmonitordropalert',
+            'sp_dbmmonitordropmonitoring', 'sp_dbmmonitorhelpalert', 'sp_dbmmonitorhelpmonitoring', 'sp_dbmmonitorresults', 'sp_dbmmonitorupdate',
+            'sp_dbremove', 'sp_ddopen', 'sp_defaultdb', 'sp_defaultlanguage', 'sp_delete_log_shipping_alert_job',
+            'sp_delete_log_shipping_primary_database', 'sp_delete_log_shipping_primary_secondary', 'sp_delete_log_shipping_secondary_database',
+            'sp_delete_log_shipping_secondary_primary', 'sp_deletemergeconflictrow', 'sp_deletepeerrequesthistory', 'sp_deletetracertokenhistory',
+            'sp_denylogin', 'sp_depends', 'sp_describe_cursor', 'sp_describe_cursor_columns', 'sp_describe_cursor_tables', 'sp_detach_db',
+            'sp_disableagentoffload', 'sp_distcounters', 'sp_drop_agent_parameter', 'sp_drop_agent_profile', 'sp_dropanonymousagent',
+            'sp_dropanonymoussubscription', 'sp_dropapprole', 'sp_droparticle', 'sp_dropdatatypemapping', 'sp_dropdevice', 'sp_dropdistpublisher',
+            'sp_dropdistributiondb', 'sp_dropdistributor', 'sp_dropdynamicsnapshot_job', 'sp_dropextendedproc', 'sp_dropextendedproperty',
+            'sp_droplinkedsrvlogin', 'sp_droplogin', 'sp_dropmergealternatepublisher', 'sp_dropmergearticle', 'sp_dropmergefilter',
+            'sp_dropmergelogsettings', 'sp_dropmergepartition', 'sp_dropmergepublication', 'sp_dropmergepullsubscription',
+            'sp_dropmergesubscription', 'sp_dropmessage', 'sp_droppublication', 'sp_droppublisher', 'sp_droppullsubscription',
+            'sp_dropremotelogin', 'sp_dropreplsymmetrickey', 'sp_droprole', 'sp_droprolemember', 'sp_dropserver', 'sp_dropsrvrolemember',
+            'sp_dropsubscriber', 'sp_dropsubscription', 'sp_droptype', 'sp_dropuser', 'sp_dsninfo', 'sp_enable_heterogeneous_subscription',
+            'sp_enableagentoffload', 'sp_enum_oledb_providers', 'sp_enumcustomresolvers', 'sp_enumdsn', 'sp_enumeratependingschemachanges',
+            'sp_enumerrorlogs', 'sp_enumfullsubscribers', 'sp_enumoledbdatasources', 'sp_estimate_data_compression_savings',
+            'sp_estimated_rowsize_reduction_for_vardecimal', 'sp_expired_subscription_cleanup', 'sp_filestream_force_garbage_collection',
+            'sp_filestream_recalculate_container_size', 'sp_firstonly_bitmap', 'sp_fkeys', 'sp_flush_commit_table',
+            'sp_flush_commit_table_on_demand', 'sp_foreign_keys_rowset', 'sp_foreign_keys_rowset_rmt', 'sp_foreign_keys_rowset2',
+            'sp_foreign_keys_rowset3', 'sp_foreignkeys', 'sp_fulltext_catalog', 'sp_fulltext_column', 'sp_fulltext_database',
+            'sp_fulltext_load_thesaurus_file', 'sp_fulltext_recycle_crawl_log', 'sp_fulltext_semantic_register_language_statistics_db',
+            'sp_fulltext_semantic_unregister_language_statistics_db', 'sp_fulltext_service', 'sp_fulltext_table', 'sp_generate_agent_parameter',
+            'sp_generatefilters', 'sp_get_distributor', 'sp_get_job_status_mergesubscription_agent', 'sp_get_mergepublishedarticleproperties',
+            'sp_get_Oracle_publisher_metadata', 'sp_get_redirected_publisher', 'sp_getagentparameterlist', 'sp_getapplock',
+            'sp_getdefaultdatatypemapping', 'sp_getmergedeletetype', 'sp_getProcessorUsage', 'sp_getpublisherlink',
+            'sp_getqueuedarticlesynctraninfo', 'sp_getqueuedrows', 'sp_getsqlqueueversion', 'sp_getsubscription_status_hsnapshot',
+            'sp_getsubscriptiondtspackagename', 'sp_gettopologyinfo', 'sp_getVolumeFreeSpace', 'sp_grant_publication_access', 'sp_grantdbaccess',
+            'sp_grantlogin', 'sp_help', 'sp_help_agent_default', 'sp_help_agent_parameter', 'sp_help_agent_profile', 'sp_help_datatype_mapping',
+            'sp_help_fulltext_catalog_components', 'sp_help_fulltext_catalogs', 'sp_help_fulltext_catalogs_cursor', 'sp_help_fulltext_columns',
+            'sp_help_fulltext_columns_cursor', 'sp_help_fulltext_system_components', 'sp_help_fulltext_tables', 'sp_help_fulltext_tables_cursor',
+            'sp_help_log_shipping_alert_job', 'sp_help_log_shipping_monitor', 'sp_help_log_shipping_monitor_primary',
+            'sp_help_log_shipping_monitor_secondary', 'sp_help_log_shipping_primary_database', 'sp_help_log_shipping_primary_secondary',
+            'sp_help_log_shipping_secondary_database', 'sp_help_log_shipping_secondary_primary', 'sp_help_peerconflictdetection',
+            'sp_help_publication_access', 'sp_help_spatial_geography_histogram', 'sp_help_spatial_geography_index',
+            'sp_help_spatial_geography_index_xml', 'sp_help_spatial_geometry_histogram', 'sp_help_spatial_geometry_index',
+            'sp_help_spatial_geometry_index_xml', 'sp_helpallowmerge_publication', 'sp_helparticle', 'sp_helparticlecolumns', 'sp_helparticledts',
+            'sp_helpconstraint', 'sp_helpdatatypemap', 'sp_helpdb', 'sp_helpdbfixedrole', 'sp_helpdevice', 'sp_helpdistpublisher',
+            'sp_helpdistributiondb', 'sp_helpdistributor', 'sp_helpdistributor_properties', 'sp_helpdynamicsnapshot_job', 'sp_helpextendedproc',
+            'sp_helpfile', 'sp_helpfilegroup', 'sp_helpindex', 'sp_helplanguage', 'sp_helplinkedsrvlogin', 'sp_helplogins', 'sp_helplogreader_agent',
+            'sp_helpmergealternatepublisher', 'sp_helpmergearticle', 'sp_helpmergearticlecolumn', 'sp_helpmergearticleconflicts',
+            'sp_helpmergeconflictrows', 'sp_helpmergedeleteconflictrows', 'sp_helpmergefilter', 'sp_helpmergelogfiles',
+            'sp_helpmergelogfileswithdata', 'sp_helpmergelogsettings', 'sp_helpmergepartition', 'sp_helpmergepublication',
+            'sp_helpmergepullsubscription', 'sp_helpmergesubscription', 'sp_helpntgroup', 'sp_helppeerrequests', 'sp_helppeerresponses',
+            'sp_helppublication', 'sp_helppublication_snapshot', 'sp_helppublicationsync', 'sp_helppullsubscription', 'sp_helpqreader_agent',
+            'sp_helpremotelogin', 'sp_helpreplfailovermode', 'sp_helpreplicationdb', 'sp_helpreplicationdboption', 'sp_helpreplicationoption',
+            'sp_helprole', 'sp_helprolemember', 'sp_helprotect', 'sp_helpserver', 'sp_helpsort', 'sp_helpsrvrole', 'sp_helpsrvrolemember',
+            'sp_helpstats', 'sp_helpsubscriberinfo', 'sp_helpsubscription', 'sp_helpsubscription_properties', 'sp_helpsubscriptionerrors',
+            'sp_helptext', 'sp_helptracertokenhistory', 'sp_helptracertokens', 'sp_helptrigger', 'sp_helpuser', 'sp_helpxactsetjob',
+            'sp_hexadecimal', 'sp_http_generate_wsdl_defaultcomplexorsimple', 'sp_http_generate_wsdl_defaultsimpleorcomplex',
+            'sp_identitycolumnforreplication', 'sp_IH_LR_GetCacheData', 'sp_IHadd_sync_command', 'sp_IHarticlecolumn',
+            'sp_IHget_loopback_detection', 'sp_IHScriptIdxFile', 'sp_IHScriptSchFile', 'sp_IHValidateRowFilter', 'sp_IHXactSetJob',
+            'sp_indexcolumns_managed', 'sp_indexes', 'sp_indexes_100_rowset', 'sp_indexes_100_rowset2', 'sp_indexes_90_rowset',
+            'sp_indexes_90_rowset_rmt', 'sp_indexes_90_rowset2', 'sp_indexes_managed', 'sp_indexes_rowset', 'sp_indexes_rowset_rmt',
+            'sp_indexes_rowset2', 'sp_indexoption', 'sp_invalidate_textptr', 'sp_is_makegeneration_needed', 'sp_ivindexhasnullcols',
+            'sp_kill_filestream_non_transacted_handles', 'sp_lightweightmergemetadataretentioncleanup', 'sp_link_publication',
+            'sp_linkedservers', 'sp_linkedservers_rowset', 'sp_linkedservers_rowset2', 'sp_lock', 'sp_logshippinginstallmetadata',
+            'sp_lookupcustomresolver', 'sp_mapdown_bitmap', 'sp_markpendingschemachange', 'sp_marksubscriptionvalidation', 'sp_mergearticlecolumn',
+            'sp_mergecleanupmetadata', 'sp_mergedummyupdate', 'sp_mergemetadataretentioncleanup', 'sp_mergesubscription_cleanup',
+            'sp_mergesubscriptionsummary', 'sp_monitor',
+            'sp_objectfilegroup',
+            'sp_oledb_database', 'sp_oledb_defdb', 'sp_oledb_deflang', 'sp_oledb_language', 'sp_oledb_ro_usrname', 'sp_oledbinfo', 'sp_ORbitmap',
+            'sp_password', 'sp_peerconflictdetection_tableaug', 'sp_pkeys', 'sp_posttracertoken', 'sp_primary_keys_rowset',
+            'sp_primary_keys_rowset_rmt', 'sp_primary_keys_rowset2', 'sp_primarykeys', 'sp_procedure_params_100_managed',
+            'sp_procedure_params_100_rowset', 'sp_procedure_params_100_rowset2', 'sp_procedure_params_90_rowset', 'sp_procedure_params_90_rowset2',
+            'sp_procedure_params_managed', 'sp_procedure_params_rowset', 'sp_procedure_params_rowset2', 'sp_procedures_rowset', 'sp_procedures_rowset2',
+            'sp_processlogshippingmonitorhistory', 'sp_processlogshippingmonitorprimary', 'sp_processlogshippingmonitorsecondary',
+            'sp_processlogshippingretentioncleanup', 'sp_procoption', 'sp_prop_oledb_provider', 'sp_provider_types_100_rowset',
+            'sp_provider_types_90_rowset', 'sp_provider_types_rowset', 'sp_publication_validation', 'sp_publicationsummary', 'sp_publishdb',
+            'sp_publisherproperty', 'sp_readerrorlog', 'sp_recompile', 'sp_redirect_publisher', 'sp_refresh_heterogeneous_publisher',
+            'sp_refresh_log_shipping_monitor', 'sp_refreshsqlmodule', 'sp_refreshsubscriptions', 'sp_refreshview', 'sp_register_custom_scripting',
+            'sp_registercustomresolver', 'sp_reinitmergepullsubscription', 'sp_reinitmergesubscription', 'sp_reinitpullsubscription',
+            'sp_reinitsubscription', 'sp_releaseapplock', 'sp_remoteoption', 'sp_removedbreplication', 'sp_removedistpublisherdbreplication',
+            'sp_removesrvreplication', 'sp_rename', 'sp_renamedb', 'sp_repladdcolumn', 'sp_replcleanupccsprocs', 'sp_repldeletequeuedtran',
+            'sp_repldropcolumn', 'sp_replgetparsedddlcmd', 'sp_replica', 'sp_replication_agent_checkup', 'sp_replicationdboption', 'sp_replincrementlsn',
+            'sp_replmonitorchangepublicationthreshold', 'sp_replmonitorhelpmergesession', 'sp_replmonitorhelpmergesessiondetail',
+            'sp_replmonitorhelpmergesubscriptionmoreinfo', 'sp_replmonitorhelppublication', 'sp_replmonitorhelppublicationthresholds',
+            'sp_replmonitorhelppublisher', 'sp_replmonitorhelpsubscription', 'sp_replmonitorrefreshjob', 'sp_replmonitorsubscriptionpendingcmds',
+            'sp_replpostsyncstatus', 'sp_replqueuemonitor', 'sp_replrestart', 'sp_replrethrow', 'sp_replsetoriginator', 'sp_replshowcmds',
+            'sp_replsqlqgetrows', 'sp_replsync', 'sp_requestpeerresponse', 'sp_requestpeertopologyinfo', 'sp_resetsnapshotdeliveryprogress',
+            'sp_resetstatus', 'sp_resign_database', 'sp_resolve_logins', 'sp_restoredbreplication', 'sp_restoremergeidentityrange',
+            'sp_resyncmergesubscription', 'sp_revoke_publication_access', 'sp_revokedbaccess', 'sp_revokelogin', 'sp_schemafilter', 'sp_schemata_rowset',
+            'sp_script_reconciliation_delproc', 'sp_script_reconciliation_insproc', 'sp_script_reconciliation_sinsproc',
+            'sp_script_reconciliation_vdelproc', 'sp_script_reconciliation_xdelproc', 'sp_script_synctran_commands', 'sp_scriptdelproc',
+            'sp_scriptdynamicupdproc', 'sp_scriptinsproc', 'sp_scriptmappedupdproc', 'sp_scriptpublicationcustomprocs', 'sp_scriptsinsproc',
+            'sp_scriptsubconflicttable', 'sp_scriptsupdproc', 'sp_scriptupdproc', 'sp_scriptvdelproc', 'sp_scriptvupdproc', 'sp_scriptxdelproc',
+            'sp_scriptxupdproc', 'sp_sequence_get_range', 'sp_server_info', 'sp_serveroption', 'sp_setapprole', 'sp_SetAutoSAPasswordAndDisable',
+            'sp_setdefaultdatatypemapping', 'sp_setnetname', 'sp_setOraclepackageversion', 'sp_setreplfailovermode', 'sp_setsubscriptionxactseqno',
+            'sp_settriggerorder', 'sp_showcolv', 'sp_showlineage', 'sp_showpendingchanges', 'sp_showrowreplicainfo', 'sp_spaceused',
+            'sp_sparse_columns_100_rowset', 'sp_special_columns', 'sp_special_columns_100', 'sp_special_columns_90', 'sp_sproc_columns',
+            'sp_sproc_columns_100', 'sp_sproc_columns_90', 'sp_sqlexec', 'sp_srvrolepermission', 'sp_startmergepullsubscription_agent',
+            'sp_startmergepushsubscription_agent', 'sp_startpublication_snapshot', 'sp_startpullsubscription_agent', 'sp_startpushsubscription_agent',
+            'sp_statistics', 'sp_statistics_100', 'sp_statistics_rowset', 'sp_statistics_rowset2', 'sp_stopmergepullsubscription_agent',
+            'sp_stopmergepushsubscription_agent', 'sp_stoppublication_snapshot', 'sp_stoppullsubscription_agent', 'sp_stoppushsubscription_agent',
+            'sp_stored_procedures', 'sp_subscribe', 'sp_subscription_cleanup', 'sp_subscriptionsummary', 'sp_syspolicy_execute_policy',
+            'sp_syspolicy_subscribe_to_policy_category', 'sp_syspolicy_unsubscribe_from_policy_category', 'sp_syspolicy_update_ddl_trigger',
+            'sp_syspolicy_update_event_notification', 'sp_table_constraints_rowset', 'sp_table_constraints_rowset2', 'sp_table_privileges',
+            'sp_table_privileges_ex', 'sp_table_privileges_rowset', 'sp_table_privileges_rowset_rmt', 'sp_table_privileges_rowset2',
+            'sp_table_statistics_rowset', 'sp_table_statistics2_rowset', 'sp_table_type_columns_100', 'sp_table_type_columns_100_rowset',
+            'sp_table_type_pkeys', 'sp_table_type_primary_keys_rowset', 'sp_table_types', 'sp_table_types_rowset', 'sp_table_validation',
+            'sp_tablecollations', 'sp_tablecollations_100', 'sp_tablecollations_90', 'sp_tableoption', 'sp_tables', 'sp_tables_ex',
+            'sp_tables_info_90_rowset', 'sp_tables_info_90_rowset_64', 'sp_tables_info_90_rowset2', 'sp_tables_info_90_rowset2_64',
+            'sp_tables_info_rowset', 'sp_tables_info_rowset_64', 'sp_tables_info_rowset2', 'sp_tables_info_rowset2_64', 'sp_tables_rowset',
+            'sp_tables_rowset_rmt', 'sp_tables_rowset2', 'sp_tableswc', 'sp_trace_getdata', 'sp_unbindefault', 'sp_unbindrule',
+            'sp_unregister_custom_scripting', 'sp_unregistercustomresolver', 'sp_unsetapprole', 'sp_unsubscribe', 'sp_update_agent_profile',
+            'sp_updateextendedproperty', 'sp_updatestats', 'sp_upgrade_log_shipping', 'sp_user_counter1', 'sp_user_counter10', 'sp_user_counter2',
+            'sp_user_counter3', 'sp_user_counter4', 'sp_user_counter5', 'sp_user_counter6', 'sp_user_counter7', 'sp_user_counter8', 'sp_user_counter9',
+            'sp_usertypes_rowset', 'sp_usertypes_rowset_rmt', 'sp_usertypes_rowset2', 'sp_validate_redirected_publisher',
+            'sp_validate_replica_hosts_as_publishers', 'sp_validatecache', 'sp_validatelogins', 'sp_validatemergepublication',
+            'sp_validatemergepullsubscription', 'sp_validatemergesubscription', 'sp_validlang', 'sp_validname', 'sp_verifypublisher', 'sp_views_rowset',
+            'sp_views_rowset2', 'sp_vupgrade_mergeobjects', 'sp_vupgrade_mergetables',  'sp_vupgrade_replication', 'sp_vupgrade_replsecurity_metadata',
+            'sp_who', 'sp_who2', 'sp_xml_schema_rowset', 'sp_xml_schema_rowset2',
+        ),
+        6 => array(
+
+            // system MS procedures, marked brown.
+
+            'sp_MS_marksystemobject', 'sp_MS_replication_installed', 'sp_MSacquireHeadofQueueLock',
+            'sp_MSacquireserverresourcefordynamicsnapshot', 'sp_MSacquireSlotLock', 'sp_MSacquiresnapshotdeliverysessionlock',
+            'sp_MSactivate_auto_sub', 'sp_MSactivatelogbasedarticleobject', 'sp_MSactivateprocedureexecutionarticleobject',
+            'sp_MSadd_anonymous_agent', 'sp_MSadd_article', 'sp_MSadd_compensating_cmd', 'sp_MSadd_distribution_agent',
+            'sp_MSadd_distribution_history', 'sp_MSadd_dynamic_snapshot_location', 'sp_MSadd_filteringcolumn', 'sp_MSadd_log_shipping_error_detail',
+            'sp_MSadd_log_shipping_history_detail', 'sp_MSadd_logreader_agent', 'sp_MSadd_logreader_history', 'sp_MSadd_merge_agent',
+            'sp_MSadd_merge_anonymous_agent', 'sp_MSadd_merge_history', 'sp_MSadd_merge_history90', 'sp_MSadd_merge_subscription',
+            'sp_MSadd_mergereplcommand', 'sp_MSadd_mergesubentry_indistdb', 'sp_MSadd_publication', 'sp_MSadd_qreader_agent',
+            'sp_MSadd_qreader_history', 'sp_MSadd_repl_alert', 'sp_MSadd_repl_command', 'sp_MSadd_repl_commands27hp', 'sp_MSadd_repl_error',
+            'sp_MSadd_replcmds_mcit', 'sp_MSadd_replmergealert', 'sp_MSadd_snapshot_agent', 'sp_MSadd_snapshot_history', 'sp_MSadd_subscriber_info',
+            'sp_MSadd_subscriber_schedule', 'sp_MSadd_subscription', 'sp_MSadd_subscription_3rd', 'sp_MSadd_tracer_history', 'sp_MSadd_tracer_token',
+            'sp_MSaddanonymousreplica', 'sp_MSadddynamicsnapshotjobatdistributor', 'sp_MSaddguidcolumn', 'sp_MSaddguidindex', 'sp_MSaddinitialarticle',
+            'sp_MSaddinitialpublication', 'sp_MSaddinitialschemaarticle', 'sp_MSaddinitialsubscription', 'sp_MSaddlightweightmergearticle',
+            'sp_MSaddmergedynamicsnapshotjob', 'sp_MSaddmergetriggers', 'sp_MSaddmergetriggers_from_template', 'sp_MSaddmergetriggers_internal',
+            'sp_MSaddpeerlsn', 'sp_MSaddsubscriptionarticles', 'sp_MSadjust_pub_identity', 'sp_MSagent_retry_stethoscope', 'sp_MSagent_stethoscope',
+            'sp_MSallocate_new_identity_range', 'sp_MSalreadyhavegeneration', 'sp_MSanonymous_status', 'sp_MSarticlecleanup',
+            'sp_MSbrowsesnapshotfolder', 'sp_MScache_agent_parameter', 'sp_MScdc_capture_job', 'sp_MScdc_cleanup_job', 'sp_MScdc_db_ddl_event',
+            'sp_MScdc_ddl_event', 'sp_MScdc_logddl', 'sp_MSchange_article', 'sp_MSchange_distribution_agent_properties',
+            'sp_MSchange_logreader_agent_properties', 'sp_MSchange_merge_agent_properties', 'sp_MSchange_mergearticle', 'sp_MSchange_mergepublication',
+            'sp_MSchange_originatorid', 'sp_MSchange_priority', 'sp_MSchange_publication', 'sp_MSchange_retention', 'sp_MSchange_retention_period_unit',
+            'sp_MSchange_snapshot_agent_properties', 'sp_MSchange_subscription_dts_info', 'sp_MSchangearticleresolver',
+            'sp_MSchangedynamicsnapshotjobatdistributor', 'sp_MSchangedynsnaplocationatdistributor', 'sp_MSchangeobjectowner',
+            'sp_MScheck_agent_instance', 'sp_MScheck_Jet_Subscriber', 'sp_MScheck_logicalrecord_metadatamatch', 'sp_MScheck_merge_subscription_count',
+            'sp_MScheck_pub_identity', 'sp_MScheck_pull_access', 'sp_MScheck_snapshot_agent', 'sp_MScheck_subscription', 'sp_MScheck_subscription_expiry',
+            'sp_MScheck_subscription_partition', 'sp_MScheck_tran_retention', 'sp_MScheckexistsgeneration', 'sp_MScheckexistsrecguid',
+            'sp_MScheckfailedprevioussync', 'sp_MScheckidentityrange', 'sp_MScheckIsPubOfSub', 'sp_MSchecksharedagentforpublication',
+            'sp_MSchecksnapshotstatus', 'sp_MScleanup_agent_entry', 'sp_MScleanup_conflict', 'sp_MScleanup_publication_ADinfo',
+            'sp_MScleanup_subscription_distside_entry', 'sp_MScleanupdynamicsnapshotfolder', 'sp_MScleanupdynsnapshotvws', 'sp_MSCleanupForPullReinit',
+            'sp_MScleanupmergepublisher_internal', 'sp_MSclear_dynamic_snapshot_location', 'sp_MSclearresetpartialsnapshotprogressbit',
+            'sp_MScomputelastsentgen', 'sp_MScomputemergearticlescreationorder', 'sp_MScomputemergeunresolvedrefs', 'sp_MSconflicttableexists',
+            'sp_MScreate_all_article_repl_views', 'sp_MScreate_article_repl_views', 'sp_MScreate_dist_tables', 'sp_MScreate_logical_record_views',
+            'sp_MScreate_sub_tables', 'sp_MScreate_tempgenhistorytable', 'sp_MScreatedisabledmltrigger', 'sp_MScreatedummygeneration',
+            'sp_MScreateglobalreplica', 'sp_MScreatelightweightinsertproc', 'sp_MScreatelightweightmultipurposeproc',
+            'sp_MScreatelightweightprocstriggersconstraints', 'sp_MScreatelightweightupdateproc', 'sp_MScreatemergedynamicsnapshot',
+            'sp_MScreateretry', 'sp_MSdbuseraccess', 'sp_MSdbuserpriv', 'sp_MSdefer_check', 'sp_MSdelete_tracer_history', 'sp_MSdeletefoldercontents',
+            'sp_MSdeletemetadataactionrequest', 'sp_MSdeletepeerconflictrow', 'sp_MSdeleteretry', 'sp_MSdeletetranconflictrow', 'sp_MSdelgenzero',
+            'sp_MSdelrow', 'sp_MSdelrowsbatch', 'sp_MSdelrowsbatch_downloadonly', 'sp_MSdelsubrows', 'sp_MSdelsubrowsbatch', 'sp_MSdependencies',
+            'sp_MSdetect_nonlogged_shutdown', 'sp_MSdetectinvalidpeerconfiguration', 'sp_MSdetectinvalidpeersubscription', 'sp_MSdist_activate_auto_sub',
+            'sp_MSdist_adjust_identity', 'sp_MSdistpublisher_cleanup', 'sp_MSdistribution_counters', 'sp_MSdistributoravailable',
+            'sp_MSdodatabasesnapshotinitiation', 'sp_MSdopartialdatabasesnapshotinitiation', 'sp_MSdrop_6x_publication', 'sp_MSdrop_6x_replication_agent',
+            'sp_MSdrop_anonymous_entry', 'sp_MSdrop_article', 'sp_MSdrop_distribution_agent', 'sp_MSdrop_distribution_agentid_dbowner_proxy',
+            'sp_MSdrop_dynamic_snapshot_agent', 'sp_MSdrop_logreader_agent', 'sp_MSdrop_merge_agent', 'sp_MSdrop_merge_subscription',
+            'sp_MSdrop_publication', 'sp_MSdrop_qreader_history', 'sp_MSdrop_snapshot_agent', 'sp_MSdrop_snapshot_dirs', 'sp_MSdrop_subscriber_info',
+            'sp_MSdrop_subscription', 'sp_MSdrop_subscription_3rd', 'sp_MSdrop_tempgenhistorytable', 'sp_MSdroparticleconstraints',
+            'sp_MSdroparticletombstones', 'sp_MSdropconstraints', 'sp_MSdropdynsnapshotvws', 'sp_MSdropfkreferencingarticle', 'sp_MSdropmergearticle',
+            'sp_MSdropmergedynamicsnapshotjob', 'sp_MSdropretry', 'sp_MSdroptemptable', 'sp_MSdummyupdate', 'sp_MSdummyupdate_logicalrecord',
+            'sp_MSdummyupdate90', 'sp_MSdummyupdatelightweight', 'sp_MSdynamicsnapshotjobexistsatdistributor', 'sp_MSenable_publication_for_het_sub',
+            'sp_MSensure_single_instance', 'sp_MSenum_distribution', 'sp_MSenum_distribution_s', 'sp_MSenum_distribution_sd',
+            'sp_MSenum_logicalrecord_changes', 'sp_MSenum_logreader', 'sp_MSenum_logreader_s', 'sp_MSenum_logreader_sd', 'sp_MSenum_merge',
+            'sp_MSenum_merge_agent_properties', 'sp_MSenum_merge_s', 'sp_MSenum_merge_sd', 'sp_MSenum_merge_subscriptions',
+            'sp_MSenum_merge_subscriptions_90_publication', 'sp_MSenum_merge_subscriptions_90_publisher', 'sp_MSenum_metadataaction_requests',
+            'sp_MSenum_qreader', 'sp_MSenum_qreader_s', 'sp_MSenum_qreader_sd', 'sp_MSenum_replication_agents', 'sp_MSenum_replication_job',
+            'sp_MSenum_replqueues', 'sp_MSenum_replsqlqueues', 'sp_MSenum_snapshot', 'sp_MSenum_snapshot_s', 'sp_MSenum_snapshot_sd',
+            'sp_MSenum_subscriptions', 'sp_MSenumallpublications', 'sp_MSenumallsubscriptions', 'sp_MSenumarticleslightweight', 'sp_MSenumchanges',
+            'sp_MSenumchanges_belongtopartition', 'sp_MSenumchanges_notbelongtopartition', 'sp_MSenumchangesdirect', 'sp_MSenumchangeslightweight',
+            'sp_MSenumcolumns', 'sp_MSenumcolumnslightweight', 'sp_MSenumdeletes_forpartition', 'sp_MSenumdeleteslightweight', 'sp_MSenumdeletesmetadata',
+            'sp_MSenumdistributionagentproperties', 'sp_MSenumerate_PAL', 'sp_MSenumgenerations', 'sp_MSenumgenerations90', 'sp_MSenumpartialchanges',
+            'sp_MSenumpartialchangesdirect', 'sp_MSenumpartialdeletes', 'sp_MSenumpubreferences', 'sp_MSenumreplicas', 'sp_MSenumreplicas90',
+            'sp_MSenumretries', 'sp_MSenumschemachange', 'sp_MSenumsubscriptions', 'sp_MSenumthirdpartypublicationvendornames',
+            'sp_MSestimatemergesnapshotworkload', 'sp_MSestimatesnapshotworkload', 'sp_MSevalsubscriberinfo',
+            'sp_MSevaluate_change_membership_for_all_articles_in_pubid', 'sp_MSevaluate_change_membership_for_pubid',
+            'sp_MSevaluate_change_membership_for_row', 'sp_MSexecwithlsnoutput', 'sp_MSfast_delete_trans', 'sp_MSfetchAdjustidentityrange',
+            'sp_MSfetchidentityrange', 'sp_MSfillupmissingcols', 'sp_MSfilterclause', 'sp_MSfix_6x_tasks', 'sp_MSfixlineageversions',
+            'sp_MSFixSubColumnBitmaps', 'sp_MSfixupbeforeimagetables', 'sp_MSflush_access_cache', 'sp_MSforce_drop_distribution_jobs',
+            'sp_MSforcereenumeration', 'sp_MSforeach_worker', 'sp_MSforeachdb', 'sp_MSforeachtable', 'sp_MSgenerateexpandproc', 'sp_MSget_agent_names',
+            'sp_MSget_attach_state', 'sp_MSget_DDL_after_regular_snapshot', 'sp_MSget_dynamic_snapshot_location', 'sp_MSget_identity_range_info',
+            'sp_MSget_jobstate', 'sp_MSget_last_transaction', 'sp_MSget_latest_peerlsn', 'sp_MSget_load_hint', 'sp_MSget_log_shipping_new_sessionid',
+            'sp_MSget_logicalrecord_lineage', 'sp_MSget_max_used_identity', 'sp_MSget_min_seqno', 'sp_MSget_MSmerge_rowtrack_colinfo',
+            'sp_MSget_new_xact_seqno', 'sp_MSget_oledbinfo', 'sp_MSget_partitionid_eval_proc', 'sp_MSget_publication_from_taskname',
+            'sp_MSget_publisher_rpc', 'sp_MSget_repl_cmds_anonymous', 'sp_MSget_repl_commands', 'sp_MSget_repl_error', 'sp_MSget_session_statistics',
+            'sp_MSget_shared_agent', 'sp_MSget_snapshot_history', 'sp_MSget_subscriber_partition_id', 'sp_MSget_subscription_dts_info',
+            'sp_MSget_subscription_guid', 'sp_MSget_synctran_commands', 'sp_MSget_type_wrapper', 'sp_MSgetagentoffloadinfo', 'sp_MSgetalertinfo',
+            'sp_MSgetalternaterecgens', 'sp_MSgetarticlereinitvalue', 'sp_MSgetchangecount', 'sp_MSgetconflictinsertproc', 'sp_MSgetconflicttablename',
+            'sp_MSGetCurrentPrincipal', 'sp_MSgetdatametadatabatch', 'sp_MSgetdbversion', 'sp_MSgetdynamicsnapshotapplock',
+            'sp_MSgetdynsnapvalidationtoken', 'sp_MSgetisvalidwindowsloginfromdistributor', 'sp_MSgetlastrecgen', 'sp_MSgetlastsentgen',
+            'sp_MSgetlastsentrecgens', 'sp_MSgetlastupdatedtime', 'sp_MSgetlightweightmetadatabatch', 'sp_MSgetmakegenerationapplock',
+            'sp_MSgetmakegenerationapplock_90', 'sp_MSgetmaxbcpgen', 'sp_MSgetmaxsnapshottimestamp', 'sp_MSgetmergeadminapplock',
+            'sp_MSgetmetadata_changedlogicalrecordmembers', 'sp_MSgetmetadatabatch', 'sp_MSgetmetadatabatch90', 'sp_MSgetmetadatabatch90new',
+            'sp_MSgetonerow', 'sp_MSgetonerowlightweight', 'sp_MSgetpeerconflictrow', 'sp_MSgetpeerlsns', 'sp_MSgetpeertopeercommands',
+            'sp_MSgetpeerwinnerrow', 'sp_MSgetpubinfo', 'sp_MSgetreplicainfo', 'sp_MSgetreplicastate', 'sp_MSgetrowmetadata',
+            'sp_MSgetrowmetadatalightweight', 'sp_MSGetServerProperties', 'sp_MSgetsetupbelong_cost', 'sp_MSgetsubscriberinfo',
+            'sp_MSgetsupportabilitysettings', 'sp_MSgettrancftsrcrow', 'sp_MSgettranconflictrow', 'sp_MSgetversion', 'sp_MSgrantconnectreplication',
+            'sp_MShaschangeslightweight', 'sp_MShasdbaccess', 'sp_MShelp_article', 'sp_MShelp_distdb', 'sp_MShelp_distribution_agentid',
+            'sp_MShelp_identity_property', 'sp_MShelp_logreader_agentid', 'sp_MShelp_merge_agentid', 'sp_MShelp_profile', 'sp_MShelp_profilecache',
+            'sp_MShelp_publication', 'sp_MShelp_repl_agent', 'sp_MShelp_replication_status', 'sp_MShelp_replication_table', 'sp_MShelp_snapshot_agent',
+            'sp_MShelp_snapshot_agentid', 'sp_MShelp_subscriber_info', 'sp_MShelp_subscription', 'sp_MShelp_subscription_status', 'sp_MShelpcolumns',
+            'sp_MShelpconflictpublications', 'sp_MShelpcreatebeforetable', 'sp_MShelpdestowner', 'sp_MShelpdynamicsnapshotjobatdistributor',
+            'sp_MShelpfulltextindex', 'sp_MShelpfulltextscript', 'sp_MShelpindex', 'sp_MShelplogreader_agent', 'sp_MShelpmergearticles',
+            'sp_MShelpmergeconflictcounts', 'sp_MShelpmergedynamicsnapshotjob', 'sp_MShelpmergeidentity', 'sp_MShelpmergeschemaarticles',
+            'sp_MShelpobjectpublications', 'sp_MShelpreplicationtriggers', 'sp_MShelpsnapshot_agent', 'sp_MShelpsummarypublication',
+            'sp_MShelptracertokenhistory', 'sp_MShelptracertokens', 'sp_MShelptranconflictcounts', 'sp_MShelptype', 'sp_MShelpvalidationdate',
+            'sp_MSIfExistsSubscription', 'sp_MSindexspace', 'sp_MSinit_publication_access', 'sp_MSinit_subscription_agent', 'sp_MSinitdynamicsubscriber',
+            'sp_MSinsert_identity', 'sp_MSinsertdeleteconflict', 'sp_MSinserterrorlineage', 'sp_MSinsertgenerationschemachanges', 'sp_MSinsertgenhistory',
+            'sp_MSinsertlightweightschemachange', 'sp_MSinsertschemachange', 'sp_MSinvalidate_snapshot', 'sp_MSisnonpkukupdateinconflict',
+            'sp_MSispeertopeeragent', 'sp_MSispkupdateinconflict', 'sp_MSispublicationqueued', 'sp_MSisreplmergeagent', 'sp_MSissnapshotitemapplied',
+            'sp_MSkilldb', 'sp_MSlock_auto_sub', 'sp_MSlock_distribution_agent', 'sp_MSlocktable', 'sp_MSloginmappings', 'sp_MSmakearticleprocs',
+            'sp_MSmakebatchinsertproc', 'sp_MSmakebatchupdateproc', 'sp_MSmakeconflictinsertproc', 'sp_MSmakectsview', 'sp_MSmakedeleteproc',
+            'sp_MSmakedynsnapshotvws', 'sp_MSmakeexpandproc', 'sp_MSmakegeneration', 'sp_MSmakeinsertproc', 'sp_MSmakemetadataselectproc',
+            'sp_MSmakeselectproc', 'sp_MSmakesystableviews', 'sp_MSmakeupdateproc', 'sp_MSmap_partitionid_to_generations', 'sp_MSmarkreinit',
+            'sp_MSmatchkey', 'sp_MSmerge_alterschemaonly', 'sp_MSmerge_altertrigger', 'sp_MSmerge_alterview', 'sp_MSmerge_ddldispatcher',
+            'sp_MSmerge_getgencount', 'sp_MSmerge_getgencur_public', 'sp_MSmerge_is_snapshot_required', 'sp_MSmerge_log_identity_range_allocations',
+            'sp_MSmerge_parsegenlist', 'sp_MSmerge_upgrade_subscriber', 'sp_MSmergesubscribedb', 'sp_MSmergeupdatelastsyncinfo',
+            'sp_MSneedmergemetadataretentioncleanup', 'sp_MSNonSQLDDL', 'sp_MSNonSQLDDLForSchemaDDL', 'sp_MSobjectprivs', 'sp_MSpeerapplyresponse',
+            'sp_MSpeerapplytopologyinfo', 'sp_MSpeerconflictdetection_statuscollection_applyresponse',
+            'sp_MSpeerconflictdetection_statuscollection_sendresponse', 'sp_MSpeerconflictdetection_topology_applyresponse', 'sp_MSpeerdbinfo',
+            'sp_MSpeersendresponse', 'sp_MSpeersendtopologyinfo', 'sp_MSpeertopeerfwdingexec', 'sp_MSpost_auto_proc',
+            'sp_MSpostapplyscript_forsubscriberprocs', 'sp_MSprep_exclusive', 'sp_MSprepare_mergearticle', 'sp_MSprofile_in_use',
+            'sp_MSproxiedmetadata', 'sp_MSproxiedmetadatabatch', 'sp_MSproxiedmetadatalightweight', 'sp_MSpub_adjust_identity',
+            'sp_MSpublication_access', 'sp_MSpublicationcleanup', 'sp_MSpublicationview', 'sp_MSquery_syncstates', 'sp_MSquerysubtype',
+            'sp_MSrecordsnapshotdeliveryprogress', 'sp_MSreenable_check', 'sp_MSrefresh_anonymous', 'sp_MSrefresh_publisher_idrange',
+            'sp_MSregenerate_mergetriggersprocs', 'sp_MSregisterdynsnapseqno', 'sp_MSregistermergesnappubid', 'sp_MSregistersubscription',
+            'sp_MSreinit_failed_subscriptions', 'sp_MSreinit_hub', 'sp_MSreinit_subscription', 'sp_MSreinitoverlappingmergepublications',
+            'sp_MSreleasedynamicsnapshotapplock', 'sp_MSreleasemakegenerationapplock', 'sp_MSreleasemergeadminapplock', 'sp_MSreleaseSlotLock',
+            'sp_MSreleasesnapshotdeliverysessionlock', 'sp_MSremove_mergereplcommand', 'sp_MSremoveoffloadparameter', 'sp_MSrepl_agentstatussummary',
+            'sp_MSrepl_backup_complete', 'sp_MSrepl_backup_start', 'sp_MSrepl_check_publisher', 'sp_MSrepl_createdatatypemappings',
+            'sp_MSrepl_distributionagentstatussummary', 'sp_MSrepl_dropdatatypemappings', 'sp_MSrepl_enumarticlecolumninfo',
+            'sp_MSrepl_enumpublications', 'sp_MSrepl_enumpublishertables', 'sp_MSrepl_enumsubscriptions', 'sp_MSrepl_enumtablecolumninfo',
+            'sp_MSrepl_FixPALRole', 'sp_MSrepl_getdistributorinfo', 'sp_MSrepl_getpkfkrelation', 'sp_MSrepl_gettype_mappings',
+            'sp_MSrepl_helparticlermo', 'sp_MSrepl_init_backup_lsns', 'sp_MSrepl_isdbowner', 'sp_MSrepl_IsLastPubInSharedSubscription',
+            'sp_MSrepl_IsUserInAnyPAL', 'sp_MSrepl_linkedservers_rowset', 'sp_MSrepl_mergeagentstatussummary', 'sp_MSrepl_PAL_rolecheck',
+            'sp_MSrepl_raiserror', 'sp_MSrepl_schema', 'sp_MSrepl_setNFR', 'sp_MSrepl_snapshot_helparticlecolumns',
+            'sp_MSrepl_snapshot_helppublication', 'sp_MSrepl_startup_internal', 'sp_MSrepl_subscription_rowset', 'sp_MSrepl_testadminconnection',
+            'sp_MSrepl_testconnection', 'sp_MSreplagentjobexists', 'sp_MSreplcheck_permission', 'sp_MSreplcheck_pull', 'sp_MSreplcheck_subscribe',
+            'sp_MSreplcheck_subscribe_withddladmin', 'sp_MSreplcheckoffloadserver', 'sp_MSreplcopyscriptfile', 'sp_MSreplraiserror',
+            'sp_MSreplremoveuncdir', 'sp_MSreplupdateschema', 'sp_MSrequestreenumeration', 'sp_MSrequestreenumeration_lightweight',
+            'sp_MSreset_attach_state', 'sp_MSreset_queued_reinit', 'sp_MSreset_subscription', 'sp_MSreset_subscription_seqno',
+            'sp_MSreset_synctran_bit', 'sp_MSreset_transaction', 'sp_MSresetsnapshotdeliveryprogress', 'sp_MSrestoresavedforeignkeys',
+            'sp_MSretrieve_publication_attributes', 'sp_MSscript_article_view', 'sp_MSscript_dri', 'sp_MSscript_pub_upd_trig',
+            'sp_MSscript_sync_del_proc', 'sp_MSscript_sync_del_trig', 'sp_MSscript_sync_ins_proc', 'sp_MSscript_sync_ins_trig',
+            'sp_MSscript_sync_upd_proc', 'sp_MSscript_sync_upd_trig', 'sp_MSscriptcustomdelproc', 'sp_MSscriptcustominsproc',
+            'sp_MSscriptcustomupdproc', 'sp_MSscriptdatabase', 'sp_MSscriptdb_worker', 'sp_MSscriptforeignkeyrestore', 'sp_MSscriptsubscriberprocs',
+            'sp_MSscriptviewproc', 'sp_MSsendtosqlqueue', 'sp_MSset_dynamic_filter_options', 'sp_MSset_logicalrecord_metadata',
+            'sp_MSset_new_identity_range', 'sp_MSset_oledb_prop', 'sp_MSset_snapshot_xact_seqno', 'sp_MSset_sub_guid',
+            'sp_MSset_subscription_properties', 'sp_MSsetaccesslist', 'sp_MSsetalertinfo', 'sp_MSsetartprocs', 'sp_MSsetbit',
+            'sp_MSsetconflictscript', 'sp_MSsetconflicttable', 'sp_MSsetcontext_bypasswholeddleventbit', 'sp_MSsetcontext_replagent',
+            'sp_MSsetgentozero', 'sp_MSsetlastrecgen', 'sp_MSsetlastsentgen', 'sp_MSsetreplicainfo', 'sp_MSsetreplicaschemaversion',
+            'sp_MSsetreplicastatus', 'sp_MSsetrowmetadata', 'sp_MSSetServerProperties', 'sp_MSsetsubscriberinfo', 'sp_MSsettopology',
+            'sp_MSsetup_identity_range', 'sp_MSsetup_partition_groups', 'sp_MSsetup_use_partition_groups', 'sp_MSsetupbelongs',
+            'sp_MSsetupnosyncsubwithlsnatdist', 'sp_MSsetupnosyncsubwithlsnatdist_cleanup', 'sp_MSsetupnosyncsubwithlsnatdist_helper',
+            'sp_MSSharedFixedDisk', 'sp_MSSQLDMO70_version', 'sp_MSSQLDMO80_version', 'sp_MSSQLDMO90_version', 'sp_MSSQLOLE_version',
+            'sp_MSSQLOLE65_version', 'sp_MSstartdistribution_agent', 'sp_MSstartmerge_agent', 'sp_MSstartsnapshot_agent',
+            'sp_MSstopdistribution_agent', 'sp_MSstopmerge_agent', 'sp_MSstopsnapshot_agent', 'sp_MSsub_check_identity', 'sp_MSsub_set_identity',
+            'sp_MSsubscription_status', 'sp_MSsubscriptionvalidated', 'sp_MStablechecks', 'sp_MStablekeys', 'sp_MStablerefs', 'sp_MStablespace',
+            'sp_MStestbit', 'sp_MStran_ddlrepl', 'sp_MStran_is_snapshot_required', 'sp_MStrypurgingoldsnapshotdeliveryprogress', 'sp_MSuniquename',
+            'sp_MSunmarkifneeded', 'sp_MSunmarkreplinfo', 'sp_MSunmarkschemaobject', 'sp_MSunregistersubscription', 'sp_MSupdate_agenttype_default',
+            'sp_MSupdate_singlelogicalrecordmetadata', 'sp_MSupdate_subscriber_info', 'sp_MSupdate_subscriber_schedule',
+            'sp_MSupdate_subscriber_tracer_history', 'sp_MSupdate_subscription', 'sp_MSupdate_tracer_history', 'sp_MSupdatecachedpeerlsn',
+            'sp_MSupdategenerations_afterbcp', 'sp_MSupdategenhistory', 'sp_MSupdateinitiallightweightsubscription', 'sp_MSupdatelastsyncinfo',
+            'sp_MSupdatepeerlsn', 'sp_MSupdaterecgen', 'sp_MSupdatereplicastate', 'sp_MSupdatesysmergearticles', 'sp_MSuplineageversion',
+            'sp_MSuploadsupportabilitydata', 'sp_MSuselightweightreplication', 'sp_MSvalidate_dest_recgen', 'sp_MSvalidate_subscription',
+            'sp_MSvalidate_wellpartitioned_articles', 'sp_MSvalidatearticle', 'sp_MSwritemergeperfcounter',
+
+        ),
+        7 => array(
+            'APPLY', 'FULL', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS',
+            'EXISTS', 'IN', 'INNER', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME'
+        )
+    ),
+    'SYMBOLS' => array(
+        '!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=', ';', '::', ',', '.',
+        '<=>', '<>', '=', '>', '>=', '>>', '^', '|', '||', '~'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false,
+        7 => false,
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #FF00FF;',
+            2 => 'color: #0000FF;',
+            3 => 'color: #AF0000;',
+            4 => 'color: #00AF00;',
+            5 => 'color: #AF0000;',
+            6 => 'color: #AF0000;',
+            7 => 'color: #808080;',
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #009E00;',
+            'MULTI' => 'color: #009E00;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #ff0000;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #808080;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #FF0000;',
+            'HARD' => 'color: #FF0000;'
+        ),
+        'ESCAPE_CHAR' => array(
+            'HARD' => 'color: #FF0000;'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #000;'
+        ),
+        'METHODS' => array(
+            1 => 'color: #202020;',
+            2 => 'color: #202020;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #808080;'
+        ),
+        'REGEXPS' => array(
+            0 => 'color: #cc3333;'
+        ),
+        'SCRIPT' => array(
+        )
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+    ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+    ),
+    'REGEXPS' => array(
+        // variables
+        0 => "[\\@]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+    ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+    ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            2 => array(
+                'DISALLOWED_BEFORE' => "(?<![@\[a-zA-Z0-9\$_\|\#|^&'\"])",
+                'DISALLOWED_AFTER' => "(?![\]a-zA-Z0-9_\|%\-&;'\"])",
+            ),
+            7 => array(
+                'DISALLOWED_BEFORE' => "(?<![@\[a-zA-Z0-9\$_\|\#|^&'\"])",
+                'DISALLOWED_AFTER' => "(?![\]a-zA-Z0-9_\|%\-&;'\"])",
+            ),
+        )
+    )
+);
diff --git a/vendor/easybook/geshi/geshi/twig.php b/vendor/geshi/geshi/src/geshi/twig.php
similarity index 62%
rename from vendor/easybook/geshi/geshi/twig.php
rename to vendor/geshi/geshi/src/geshi/twig.php
index cc790532c1c51547cb878fac001b6ae50404660a..2936e0f1e009aa59f1a7734adb97aa47fb345449 100644
--- a/vendor/easybook/geshi/geshi/twig.php
+++ b/vendor/geshi/geshi/src/geshi/twig.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Keyvan Akbary (keyvan@kiwwito.com)
  * Copyright: (c) 2011 Keyvan Akbary (http://www.kiwwito.com/)
- * Release Version: 1.0.0
+ * Release Version: 1.0.9.0
  * Date Started: 2011/12/05
  *
  * Twig template language file for GeSHi.
@@ -15,7 +15,7 @@
  *   - Added new tags, filters and functions
  *   - Added regexps for variables, objects and properties
  *   - Lots of other minor tweaks (delimites, comments, ...)
- * 
+ *
  * 2011/12/05 (1.0.0 by Keyvan Akbary)
  *   -  Initial Release
  *
@@ -44,7 +44,7 @@
 
 $language_data = array(
     'LANG_NAME' => 'Twig',
-    'COMMENT_SINGLE' => array('{#' => '#}'),
+    'COMMENT_SINGLE' => array(),
     'COMMENT_MULTI' => array('{#' => '#}'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
@@ -53,42 +53,141 @@ $language_data = array(
         //TWIG
         //Tags
         1 => array(
-            'autoescape', 'endautoescape', 'block', 'endblock', 'do', 'embed', 'endembed',
-            'extends', 'filter', 'endfilter', 'for', 'endfor', 'from', 'if', 'else', 'elseif', 'endif',
-            'import', 'include', 'macro', 'endmacro', 'raw', 'endraw', 'sandbox', 'set', 'endset',
-            'spaceless', 'endspaceless', 'use', 'verbatim', 'endverbatim',
-            'trans', 'endtrans', 'transchoice', 'endtranschoice'
+            'autoescape',
+            'endautoescape',
+            'block',
+            'endblock',
+            'do',
+            'embed',
+            'endembed',
+            'extends',
+            'filter',
+            'endfilter',
+            'for',
+            'endfor',
+            'from',
+            'if',
+            'else',
+            'elseif',
+            'endif',
+            'import',
+            'include',
+            'macro',
+            'endmacro',
+            'raw',
+            'endraw',
+            'sandbox',
+            'set',
+            'endset',
+            'spaceless',
+            'endspaceless',
+            'use',
+            'verbatim',
+            'endverbatim',
+            'trans',
+            'endtrans',
+            'transchoice',
+            'endtranschoice'
         ),
         //Filters
         2 => array(
-            'abs', 'batch', 'capitalize', 'convert_encoding', 'date', 'date_modify', 'default',
-            'escape', 'first', 'format', 'join', 'json_encode', 'keys', 'last', 'length', 'lower',
-            'merge', 'nl2br', 'number_format', 'raw', 'replace', 'reverse', 'slice', 'sort', 'split',
-            'striptags', 'title', 'trans', 'trim', 'upper', 'url_encode'
+            'abs',
+            'batch',
+            'capitalize',
+            'convert_encoding',
+            'date',
+            'date_modify',
+            'default',
+            'escape',
+            'first',
+            'format',
+            'join',
+            'json_encode',
+            'keys',
+            'last',
+            'length',
+            'lower',
+            'merge',
+            'nl2br',
+            'number_format',
+            'replace',
+            'reverse',
+            'slice',
+            'sort',
+            'split',
+            'striptags',
+            'title',
+            'trim',
+            'upper',
+            'url_encode'
         ),
         //Functions
         3 => array(
-            'attribute', 'block', 'constant', 'cycle', 'date', 'dump', 'include',
-            'parent', 'random', 'range', 'source', 'template_from_string'
+            'attribute',
+            'cycle',
+            'dump',
+            'parent',
+            'random',
+            'range',
+            'source',
+            'template_from_string'
         ),
         //Tests
         4 => array(
-            'constant', 'defined', 'divisibleby', 'empty', 'even', 'iterable', 'null',
-            'odd', 'sameas'
+            'constant',
+            'defined',
+            'divisibleby',
+            'empty',
+            'even',
+            'iterable',
+            'null',
+            'odd',
+            'sameas'
         ),
         //Operators
         5 => array(
-            'in', 'is', 'and', 'b-and', 'or', 'b-or', 'b-xor', 'not', 'into',
-            'starts with', 'ends with', 'matches'
-        ),
-        6 => array(
-            '{{', '}}', '{%', '%}'
-        ),
+            'in',
+            'is',
+            'and',
+            'b-and',
+            'or',
+            'b-or',
+            'b-xor',
+            'not',
+            'into',
+            'starts with',
+            'ends with',
+            'matches'
+        )
     ),
     'SYMBOLS' => array(
-        '+', '-', '/', '/', '*', '**', //Math operators
-        '==', '!=', '<', '>', '>=', '<=', '===', //Logic operators
-        '..', '|', '~', '[', ']', '.', '?', ':', '(', ')', //Other
+        '{{',
+        '}}',
+        '{%',
+        '%}',
+        '+',
+        '-',
+        '/',
+        '/',
+        '*',
+        '**', //Math operators
+        '==',
+        '!=',
+        '<',
+        '>',
+        '>=',
+        '<=',
+        '===', //Logic operators
+        '..',
+        '|',
+        '~',
+        '[',
+        ']',
+        '.',
+        '?',
+        ':',
+        '(',
+        ')', //Other
         '=' //HTML (attributes)
     ),
     'CASE_SENSITIVE' => array(
@@ -98,8 +197,7 @@ $language_data = array(
         2 => true,
         3 => true,
         4 => true,
-        5 => true,
-        6 => false
+        5 => true
     ),
     'STYLES' => array(
         'KEYWORDS' => array(
@@ -107,8 +205,7 @@ $language_data = array(
             2 => 'color: #008000;', //Filters
             3 => 'color: #0600FF;', //Functions
             4 => 'color: #804040;', //Tests
-            5 => 'color: #008000;', //Operators
-            6 => 'color: #008000;'  // {{ and {%
+            5 => 'color: #008000;'
         ),
         'COMMENTS' => array(
             'MULTI' => 'color: #008080; font-style: italic;'
@@ -151,7 +248,7 @@ $language_data = array(
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
         1 => '.',
-        ),
+    ),
     'REGEXPS' => array(
         0 => array(
             GESHI_SEARCH => "([[:space:]])([a-zA-Z_][a-zA-Z0-9_]*)",
@@ -159,23 +256,23 @@ $language_data = array(
             GESHI_MODIFIERS => '',
             GESHI_BEFORE => '\\1',
             GESHI_AFTER => ''
-            ),
+        ),
         1 => array(
             GESHI_SEARCH => "\.([a-zA-Z_][a-zA-Z0-9_]*)",
             GESHI_REPLACE => '.\\1',
             GESHI_MODIFIERS => '',
             GESHI_BEFORE => '',
             GESHI_AFTER => ''
-            ),
+        ),
     ),
     'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
     'SCRIPT_DELIMITERS' => array(
         0 => array(
             '{{' => '}}',
-            '{%' => '%}'         
+            '{%' => '%}'
         ),
         1 => array(
-            '{#' => '#}',          
+            '{#' => '#}',
         )
     ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
@@ -184,7 +281,6 @@ $language_data = array(
         2 => true
     ),
     'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-        )
+        'KEYWORDS' => array()
     )
 );
diff --git a/vendor/easybook/geshi/geshi/typoscript.php b/vendor/geshi/geshi/src/geshi/typoscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/typoscript.php
rename to vendor/geshi/geshi/src/geshi/typoscript.php
index 25671d7288630c092b6de5922e5ca5a79a2968e7..c52ba91ea42d158cdbe96fd25a9d5b8bab389367 100644
--- a/vendor/easybook/geshi/geshi/typoscript.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/07/29
  *
  * TypoScript language file for GeSHi.
@@ -220,7 +220,7 @@ $language_data = array (
     'REGEXPS' => array(
             // xhtml tag
         2 => array(
-            GESHI_SEARCH => '(&lt;)([a-zA-Z\\/][^\\/\\|]*?)(&gt;)',
+            GESHI_SEARCH => '(&lt;)([a-zA-Z\\/][^\\/\\\x7C]*?)(&gt;)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 's',
             GESHI_BEFORE => '\\1',
@@ -294,5 +294,5 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
+        )
 );
diff --git a/vendor/easybook/geshi/geshi/unicon.php b/vendor/geshi/geshi/src/geshi/unicon.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/unicon.php
rename to vendor/geshi/geshi/src/geshi/unicon.php
index fcfc7861c0ef45c02470cdaf44c2dc96520e228a..bd56f5089e023619c1f49ee950d340f4b1fa047d 100644
--- a/vendor/easybook/geshi/geshi/unicon.php
+++ b/vendor/geshi/geshi/src/geshi/unicon.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Matt Oates (mattoates@gmail.com)
  * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/04/20
  *
  * Unicon the Unified Extended Dialect of Icon language file for GeSHi.
@@ -206,4 +206,3 @@ $language_data = array(
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/upc.php b/vendor/geshi/geshi/src/geshi/upc.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/upc.php
rename to vendor/geshi/geshi/src/geshi/upc.php
index 98ca885f1a2859dee7a72323819e534ebdb9394e..0b8b4859b42f83ea09cec9d9b7b9b5b0607bf941 100644
--- a/vendor/easybook/geshi/geshi/upc.php
+++ b/vendor/geshi/geshi/src/geshi/upc.php
@@ -8,7 +8,7 @@
  *  - Jack Lloyd (lloyd@randombit.net)
  *  - Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * UPC language file for GeSHi.
@@ -266,4 +266,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 4
 );
-
diff --git a/vendor/easybook/geshi/geshi/urbi.php b/vendor/geshi/geshi/src/geshi/urbi.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/urbi.php
rename to vendor/geshi/geshi/src/geshi/urbi.php
index c73e44404f0ec9aa32ff2ab1f070756f3255f154..f87e6c17ad8e80b3a20858afc1cb8989d3b94c89 100644
--- a/vendor/easybook/geshi/geshi/urbi.php
+++ b/vendor/geshi/geshi/src/geshi/urbi.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Alexandre Morgand (morgand.alexandre@gmail.com)
  * Copyright: (c) 2011 Morgand (http://gostai.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2011/09/10
  *
  * Urbi language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/uscript.php b/vendor/geshi/geshi/src/geshi/uscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/uscript.php
rename to vendor/geshi/geshi/src/geshi/uscript.php
index 03b1d48a6f1e488cf33e050916809837b8cc4c11..216eaff71423f654d28801f39d45b5549b22c7ae 100644
--- a/vendor/easybook/geshi/geshi/uscript.php
+++ b/vendor/geshi/geshi/src/geshi/uscript.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: pospi (pospi@spadgos.com)
  * Copyright: (c) 2007 pospi (http://pospi.spadgos.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/05/21
  *
  * UnrealScript language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/vala.php b/vendor/geshi/geshi/src/geshi/vala.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/vala.php
rename to vendor/geshi/geshi/src/geshi/vala.php
index 28f153427077b661b7484496c9b56cb57277f11b..fd8ce68f21f4dab783f21749aea22959a6ac84c1 100644
--- a/vendor/easybook/geshi/geshi/vala.php
+++ b/vendor/geshi/geshi/src/geshi/vala.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nicolas Joseph (nicolas.joseph@valaide.org)
  * Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/04/29
  *
  * Vala language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/vb.php b/vendor/geshi/geshi/src/geshi/vb.php
similarity index 90%
rename from vendor/easybook/geshi/geshi/vb.php
rename to vendor/geshi/geshi/src/geshi/vb.php
index d2f0dd71b5d5582bd22435b6c5117e1e81f62ea8..2d2a7b66962925418109fc6b87544d7c3a305df0 100644
--- a/vendor/easybook/geshi/geshi/vb.php
+++ b/vendor/geshi/geshi/src/geshi/vb.php
@@ -5,7 +5,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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/08/30
  *
  * Visual Basic language file for GeSHi.
@@ -50,7 +50,7 @@ $language_data = array (
     'COMMENT_MULTI' => array(),
     'COMMENT_REGEXP' => array(
         // Comments (either single or multiline with _
-        1 => '/\'.*(?<! _)\n/sU',
+        1 => '/\'.*(?<! _)$/sUm',
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
@@ -65,16 +65,16 @@ $language_data = array (
             'Call', 'Private', 'Public', 'Sub', 'Explicit', 'Compare', 'Exit'
             ),
         3 => array(
-            'And', 'Case', 'Do', 'Each', 'Else', 'ElseIf', 'For',
-            'Goto', 'If', 'Is', 'Loop', 'Next', 'Not', 'Or', 'Select', 'Step',
-            'Then', 'To', 'Until', 'While', 'With', 'Xor', 'WithEvents',
-            'DoEvents', 'Close', 'Like', 'In', 'End'
+            'And', 'Case', 'Do', 'Each', 'Else', 'ElseIf', 'End', 'For', 'GoSub',
+            'Goto', 'If', 'Is', 'Loop', 'Next', 'Not', 'Or', 'Resume', 'Select',
+            'Step', 'Then', 'To', 'Until', 'While', 'With', 'Xor', 'WithEvents',
+            'DoEvents', 'Close', 'Like', 'In'
             ),
         4 => array(
             'As', 'Dim', 'Get', 'Set', 'ReDim', 'Error',
-            'Resume', 'Declare', 'Let', 'ByRef', 'ByVal',
+            'Declare', 'Let', 'ByRef', 'ByVal',
             'Optional', 'Property', 'Control', 'UBound', 'Mod',
-            'GoSub', 'Implements', 'Input', 'LBound', 'Static', 'Stop',
+            'Implements', 'Input', 'LBound', 'Static', 'Stop',
             'Type', 'TypeOf', 'On', 'Open', 'Output', 'ParamArray',
             'Preserve', 'Print', 'RaiseEvent', 'Random', 'Line'
             ),
@@ -153,4 +153,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/vbnet.php b/vendor/geshi/geshi/src/geshi/vbnet.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/vbnet.php
rename to vendor/geshi/geshi/src/geshi/vbnet.php
index 862caa7208f81b1c0f06ffb59667eea52fe23fe7..058b9c460ab39a84ae211d6db616ca272dace64c 100644
--- a/vendor/easybook/geshi/geshi/vbnet.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/06/04
  *
  * VB.NET language file for GeSHi.
@@ -178,4 +178,3 @@ $language_data = array (
             )
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/vbscript.php b/vendor/geshi/geshi/src/geshi/vbscript.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/vbscript.php
rename to vendor/geshi/geshi/src/geshi/vbscript.php
index 6db3bbd3f331f18203ab18fcedf5e4ffcd67c936..4f73664698489bcff18e8984ddf4745bc5718c46 100644
--- a/vendor/easybook/geshi/geshi/vbscript.php
+++ b/vendor/geshi/geshi/src/geshi/vbscript.php
@@ -6,7 +6,7 @@
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org),
  *                     Nigel McNie (http://qbnz.com/highlighter),
  *                     Rory Prendergast (http://www.tanium.com)
- * Release Version: 1.0.8.12
+ * Release Version: 1.0.9.0
  * Date Started: 2012/08/20
  *
  * VBScript language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/vedit.php b/vendor/geshi/geshi/src/geshi/vedit.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/vedit.php
rename to vendor/geshi/geshi/src/geshi/vedit.php
index c1375eb009fc9bbdae227654d0f51a35fb895207..fa79420fba8a766b3f768ccf221645af90bd9328 100644
--- a/vendor/easybook/geshi/geshi/vedit.php
+++ b/vendor/geshi/geshi/src/geshi/vedit.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Pauli Lindgren (pauli0212@yahoo.com)
  * Copyright: (c) 2009 Pauli Lindgren (http://koti.mbnet.fi/pkl/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/12/16
  *
  * Vedit macro language language file for GeSHi.
@@ -99,4 +99,3 @@ $language_data = array(
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/verilog.php b/vendor/geshi/geshi/src/geshi/verilog.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/verilog.php
rename to vendor/geshi/geshi/src/geshi/verilog.php
index d6ec08615860a8b9e501222a47a2fb9dc6e54481..86323040018493800e16179975847b78bbd9ab63 100644
--- a/vendor/easybook/geshi/geshi/verilog.php
+++ b/vendor/geshi/geshi/src/geshi/verilog.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Günter Dannoritzer <dannoritzer@web.de>
  * Copyright: (C) 2008 Günter Dannoritzer
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/05/28
  *
  * Verilog language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/vhdl.php b/vendor/geshi/geshi/src/geshi/vhdl.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/vhdl.php
rename to vendor/geshi/geshi/src/geshi/vhdl.php
index cc8158fcf97d9244ed96485bea4f684516a7c168..edb0fd6116ebe12e2d0a674342f5f73f09a7275d 100644
--- a/vendor/easybook/geshi/geshi/vhdl.php
+++ b/vendor/geshi/geshi/src/geshi/vhdl.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Kevin Thibedeau (kevinpt@yahoo.com)
  * Copyright: (c) 2005 Alexander Krause
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2005/06/15
  *
  * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/vim.php b/vendor/geshi/geshi/src/geshi/vim.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/vim.php
rename to vendor/geshi/geshi/src/geshi/vim.php
index e2e363477bc7870beef20a6d94c397626aa69d72..39ec831377facc01de6ceef7dee62320845ac69d 100644
--- a/vendor/easybook/geshi/geshi/vim.php
+++ b/vendor/geshi/geshi/src/geshi/vim.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Laurent Peuch (psycojoker@gmail.com)
  * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/10/19
  *
  * Vim scripting language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/visualfoxpro.php b/vendor/geshi/geshi/src/geshi/visualfoxpro.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/visualfoxpro.php
rename to vendor/geshi/geshi/src/geshi/visualfoxpro.php
index 533f03072433cb9d06b12f077b83a4bd95c2e46a..9e43eaddfd0f6bd8d415d5bec8f31e18238824b2 100644
--- a/vendor/easybook/geshi/geshi/visualfoxpro.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/09/17
  *
  * Visual FoxPro language file for GeSHi.
@@ -452,4 +452,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/visualprolog.php b/vendor/geshi/geshi/src/geshi/visualprolog.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/visualprolog.php
rename to vendor/geshi/geshi/src/geshi/visualprolog.php
index 26c438d21d8135bf01a2b3159301272955f244cd..72ddb4510e50a106a8d2b2619b1cf8d90733d80a 100644
--- a/vendor/easybook/geshi/geshi/visualprolog.php
+++ b/vendor/geshi/geshi/src/geshi/visualprolog.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Thomas Linder Puls (puls@pdc.dk)
  * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/11/20
  *
  * Visual Prolog language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/whitespace.php b/vendor/geshi/geshi/src/geshi/whitespace.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/whitespace.php
rename to vendor/geshi/geshi/src/geshi/whitespace.php
index eec0be3f675e4b18ef1af4eee712135040322fd5..47ca8fd91d0a83f3a2e19efbf6977cb570afb1a0 100644
--- a/vendor/easybook/geshi/geshi/whitespace.php
+++ b/vendor/geshi/geshi/src/geshi/whitespace.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2009/10/31
  *
  * Whitespace language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/whois.php b/vendor/geshi/geshi/src/geshi/whois.php
similarity index 98%
rename from vendor/easybook/geshi/geshi/whois.php
rename to vendor/geshi/geshi/src/geshi/whois.php
index 6d5760882f75dd84be5fc4980813a5039525e847..5ca47e173259e45a1659091c0659b9d9f076f745 100644
--- a/vendor/easybook/geshi/geshi/whois.php
+++ b/vendor/geshi/geshi/src/geshi/whois.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/09/14
  *
  * Whois response (RPSL format) language file for GeSHi.
@@ -168,13 +168,11 @@ $language_data = array (
         'ENABLE_FLAGS' => array(
             'BRACKETS' => GESHI_NEVER,
             'SYMBOLS' => GESHI_NEVER,
-            'BRACKETS' => GESHI_NEVER,
             'STRINGS' => GESHI_NEVER,
             'ESCAPE_CHAR' => GESHI_NEVER,
             'NUMBERS' => GESHI_NEVER,
             'METHODS' => GESHI_NEVER,
             'SCRIPT' => GESHI_NEVER
             )
-        ),
+        )
 );
-
diff --git a/vendor/easybook/geshi/geshi/winbatch.php b/vendor/geshi/geshi/src/geshi/winbatch.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/winbatch.php
rename to vendor/geshi/geshi/src/geshi/winbatch.php
index d8c19ceba5f0bc9ff569bc664c6cd6fbe69e3cc2..aa1ce5268608e7ff691652e30787d744ffb86a39 100644
--- a/vendor/easybook/geshi/geshi/winbatch.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2006/05/19
  *
  * WinBatch language file for GeSHi.
@@ -365,4 +365,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/xbasic.php b/vendor/geshi/geshi/src/geshi/xbasic.php
similarity index 96%
rename from vendor/easybook/geshi/geshi/xbasic.php
rename to vendor/geshi/geshi/src/geshi/xbasic.php
index 10e61e468686f39fb40faf5cf59eb9247e07b0f2..45af71095fd95d6d76192fb2815b5b1b20900cf8 100644
--- a/vendor/easybook/geshi/geshi/xbasic.php
+++ b/vendor/geshi/geshi/src/geshi/xbasic.php
@@ -2,9 +2,9 @@
 /*************************************************************************************
  * xbasic.php
  * ----------
- * Author: José Gabriel Moya Yangüela (josemoya@gmail.com)
- * Copyright: (c) 2005 José Gabriel Moya Yangüela (http://aprenderadesaprender.6te.net)
- * Release Version: 1.0.8.11
+ * Author: José Gabriel Moya Yangüela (josemoya@gmail.com)
+ * Copyright: (c) 2005 José Gabriel Moya Yangüela (http://aprenderadesaprender.6te.net)
+ * Release Version: 1.0.9.0
  * Date Started: 2005/11/23
  *
  * XBasic language file for GeSHi.
@@ -139,4 +139,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/easybook/geshi/geshi/xml.php b/vendor/geshi/geshi/src/geshi/xml.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/xml.php
rename to vendor/geshi/geshi/src/geshi/xml.php
index 88d17901e8e3192cc5b71aefe16222c6158e0f53..a6a145f11a1274864d67df03d621efd5d0a69354 100644
--- a/vendor/easybook/geshi/geshi/xml.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2004/09/01
  *
  * XML language file for GeSHi. Based on the idea/file by Christian Weiske
diff --git a/vendor/geshi/geshi/src/geshi/xojo.php b/vendor/geshi/geshi/src/geshi/xojo.php
new file mode 100644
index 0000000000000000000000000000000000000000..e067acf4a8c63eb7da0f39dc1ec4103735e93d70
--- /dev/null
+++ b/vendor/geshi/geshi/src/geshi/xojo.php
@@ -0,0 +1,279 @@
+<?php
+/*************************************************************************************
+ * xojo.php
+ * --------
+ * Author: Dr Garry Pettet (contact@garrypettet.com)
+ * Copyright: (c) 2014 Dr Garry Pettet (http://garrypettet.com)
+ * Release Version: 1.0.9.0
+ * Date Started: 2014/10/19
+ *
+ * Xojo language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2014/10/19 (1.0.8.13)
+ *  -  First Release
+ *
+ * TODO (updated 2014/10/19)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     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' => 'Xojo',
+    'COMMENT_SINGLE' => array(1 => "'", 2 => '//', 3 => 'rem'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'NUMBERS' => array(
+        1 => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE, // integers
+        2 => GESHI_NUMBER_FLT_NONSCI // floating point numbers
+    ),
+    'KEYWORDS' => array(
+        //Keywords
+        1 => array(
+            'AddHandler',
+            'AddressOf',
+            'Aggregates',
+            'And',
+            'Array',
+            'As',
+            'Assigns',
+            'Attributes',
+            'Break',
+            'ByRef',
+            'ByVal',
+            'Call',
+            'Case',
+            'Catch',
+            'Class',
+            'Const',
+            'Continue',
+            'CType',
+            'Declare',
+            'Delegate',
+            'Dim',
+            'Do',
+            'DownTo',
+            'Each',
+            'Else',
+            'Elseif',
+            'End',
+            'Enum',
+            'Event',
+            'Exception',
+            'Exit',
+            'Extends',
+            'False',
+            'Finally',
+            'For',
+            'Function',
+            'Global',
+            'GoTo',
+            'Handles',
+            'If',
+            'Implements',
+            'In',
+            'Inherits',
+            'Inline68K',
+            'Interface',
+            'Is',
+            'IsA',
+            'Lib',
+            'Loop',
+            'Me',
+            'Mod',
+            'Module',
+            'Namespace',
+            'New',
+            'Next',
+            'Nil',
+            'Not',
+            'Object',
+            'Of',
+            'Optional',
+            'Or',
+            'ParamArray',
+            'Private',
+            'Property',
+            'Protected',
+            'Public',
+            'Raise',
+            'RaiseEvent',
+            'Rect',
+            'Redim',
+            'RemoveHandler',
+            'Return',
+            'Select',
+            'Self',
+            'Shared',
+            'Soft',
+            'Static',
+            'Step',
+            'Sub',
+            'Super',
+            'Then',
+            'To',
+            'True',
+            'Try',
+            'Until',
+            'Using',
+            'Wend',
+            'While',
+            'With',
+            'WeakAddressOf',
+            'Xor'
+        ),
+        //Data Types
+        2 => array(
+            'Boolean',
+            'CFStringRef',
+            'CString',
+            'Currency',
+            'Double',
+            'Int8',
+            'Int16',
+            'Int32',
+            'Int64',
+            'Integer',
+            'OSType',
+            'PString',
+            'Ptr',
+            'Short',
+            'Single',
+            'String',
+            'Structure',
+            'UInt8',
+            'UInt16',
+            'UInt32',
+            'UInt64',
+            'UShort',
+            'WindowPtr',
+            'WString',
+            'XMLNodeType'
+        ),
+        //Compiler Directives
+        3 => array(
+            '#Bad',
+            '#Else',
+            '#Endif',
+            '#If',
+            '#Pragma',
+            '#Tag'
+        ),
+    ),
+    'SYMBOLS' => array(
+        '+',
+        '-',
+        '*',
+        '=',
+        '/',
+        '>',
+        '<',
+        '^',
+        '(',
+        ')',
+        '.'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000FF;',  // keywords
+            2 => 'color: #0000FF;',  // primitive data types
+            3 => 'color: #0000FF;',  // compiler commands
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #7F0000;',
+            2 => 'color: #7F0000;',
+            3 => 'color: #7F0000;',
+            'MULTI' => 'color: #7F0000;'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #008080;'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #6500FE;'
+        ),
+        'NUMBERS' => array(
+            1 => 'color: #326598;', // integers
+            2 => 'color: #006532;', // floating point numbers
+        ),
+        'METHODS' => array(
+            1 => 'color: #000000;'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000;'
+        ),
+        'REGEXPS' => array(
+            1 => 'color: #326598;', // &h hex numbers
+            2 => 'color: #326598;', // &b hex numbers
+            3 => 'color: #326598;', // &o hex numbers
+        ),
+        'SCRIPT' => array()
+    ),
+    'URLS' => array(
+        1 => 'http://docs.xojo.com/index.php/{FNAMEU}',
+        2 => 'http://docs.xojo.com/index.php/{FNAMEU}',
+        3 => ''
+    ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+    ),
+    'REGEXPS' => array(
+        1 => array( // &h numbers
+            // search for &h, then any number of letters a-f or numbers 0-9
+            GESHI_SEARCH => '(&amp;h[0-9a-fA-F]*\b)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+        ),
+        2 => array( // &b numbers
+            // search for &b, then any number of 0-1 digits
+            GESHI_SEARCH => '(&amp;b[0-1]*\b)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+        ),
+        3 => array( // &o octal numbers
+            // search for &o, then any number of 0-7 digits
+            GESHI_SEARCH => '(&amp;o[0-7]*\b)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+        )
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
diff --git a/vendor/easybook/geshi/geshi/xorg_conf.php b/vendor/geshi/geshi/src/geshi/xorg_conf.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/xorg_conf.php
rename to vendor/geshi/geshi/src/geshi/xorg_conf.php
index 41e4496eeb8217441789952b7719a958efb750dd..92b276bd970cd8fe4ccd61da69c9e68ba1f1ddbc 100644
--- a/vendor/easybook/geshi/geshi/xorg_conf.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2008/06/18
  *
  * xorg.conf language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/xpp.php b/vendor/geshi/geshi/src/geshi/xpp.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/xpp.php
rename to vendor/geshi/geshi/src/geshi/xpp.php
index 52db2727b971714472a85c1f22750d09a3dcbbab..d249c487c844bac49c067079db479bd05e1cc360 100644
--- a/vendor/easybook/geshi/geshi/xpp.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/02/27
  *
  * Axapta/Dynamics Ax X++ language file for GeSHi.
diff --git a/vendor/easybook/geshi/geshi/yaml.php b/vendor/geshi/geshi/src/geshi/yaml.php
similarity index 97%
rename from vendor/easybook/geshi/geshi/yaml.php
rename to vendor/geshi/geshi/src/geshi/yaml.php
index 9de6401bbab7a7003fdcf317a8f15de69511758f..252779e9d1f8ce11c86eb7042b7402cca8e1cef0 100644
--- a/vendor/easybook/geshi/geshi/yaml.php
+++ b/vendor/geshi/geshi/src/geshi/yaml.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Josh Ventura (JoshV10@gmail.com)
  * Copyright: (c) 2010 Josh Ventura
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/12/14
  *
  * YAML language file for GeSHi.
@@ -83,6 +83,7 @@ $language_data = array (
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '',
+    'NUMBERS' => array(),
     'KEYWORDS' => array(
         1 => array(
             'all','any','none', "yes", "no"
@@ -140,10 +141,9 @@ $language_data = array (
         ),
     'URLS' => array(1 => ''),
     'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array( ),
-    'REGEXPS' => array( ),
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array( ),
-    'HIGHLIGHT_STRICT_BLOCK' => array( )
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
 );
-
diff --git a/vendor/easybook/geshi/geshi/z80.php b/vendor/geshi/geshi/src/geshi/z80.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/z80.php
rename to vendor/geshi/geshi/src/geshi/z80.php
index 71305ff938d287a409f851517e1ef8b7084ce0b0..5c8021f9e95e41fe828f5c4d8381ab924da763dc 100644
--- a/vendor/easybook/geshi/geshi/z80.php
+++ b/vendor/geshi/geshi/src/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.11
+ * Release Version: 1.0.9.0
  * Date Started: 2007/02/06
  *
  * ZiLOG Z80 Assembler language file for GeSHi.
@@ -140,4 +140,3 @@ $language_data = array (
         ),
     'TAB_WIDTH' => 8
 );
-
diff --git a/vendor/easybook/geshi/geshi/zxbasic.php b/vendor/geshi/geshi/src/geshi/zxbasic.php
similarity index 99%
rename from vendor/easybook/geshi/geshi/zxbasic.php
rename to vendor/geshi/geshi/src/geshi/zxbasic.php
index fd2c7f312a4f1b3e05cdc4cb9e781a6c97057603..d0971949054a90a56978071f5a1af1c6a1464485 100644
--- a/vendor/easybook/geshi/geshi/zxbasic.php
+++ b/vendor/geshi/geshi/src/geshi/zxbasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Jose Rodriguez (a.k.a. Boriel)
  * Based on Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) Freebasic template
- * Release Version: 1.0.8.11
+ * Release Version: 1.0.9.0
  * Date Started: 2010/06/19
  *
  * ZXBasic language file for GeSHi.
@@ -146,4 +146,3 @@ $language_data = array (
     'HIGHLIGHT_STRICT_BLOCK' => array(
         )
 );
-
diff --git a/vendor/openpsa/universalfeedcreator/.editorconfig b/vendor/openpsa/universalfeedcreator/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..60e5c2550c051e809d7e2c08b9454b9c8199d3b7
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/.editorconfig
@@ -0,0 +1,16 @@
+# This file is for unifying the coding style for different editors and IDEs
+# editorconfig.org
+
+# PHP PSR-2 Coding Standards
+# http://www.php-fig.org/psr/psr-2/
+
+root = true
+
+[*.php]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 4
+
diff --git a/vendor/openpsa/universalfeedcreator/.gitattributes b/vendor/openpsa/universalfeedcreator/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..c1719f639ee3c73a4f04a48ed63bbb481a4486e3
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/.gitattributes
@@ -0,0 +1,5 @@
+*.txt   text eol=lf
+*.js    text eol=lf
+*.html  text eol=lf
+*.css   text eol=lf
+*.php   text eol=lf
\ No newline at end of file
diff --git a/vendor/openpsa/universalfeedcreator/.gitignore b/vendor/openpsa/universalfeedcreator/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..11f0c14fb34b44673dd41457592f1fa8c11ffdb2
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/.gitignore
@@ -0,0 +1,9 @@
+/.project
+/.buildpath
+/.settings
+/vendor
+composer.phar
+composer.lock
+phpunit.xml
+.DS_Store
+*~
\ No newline at end of file
diff --git a/vendor/openpsa/universalfeedcreator/README.md b/vendor/openpsa/universalfeedcreator/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4f4c7239e741264861a5bcfe95886f24736a9078
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/README.md
@@ -0,0 +1,161 @@
+UniversalFeedCreator
+====================
+
+RSS and Atom feed generator by Kai Blankenhorn, slightly cleaned up and packaged for Composer.
+
+Supported formats: RSS0.91, RSS1.0, RSS2.0, PIE0.1 (deprecated), MBOX, OPML, ATOM, ATOM0.3,
+HTML, JS, PHP
+
+[![Build Status](https://travis-ci.org/flack/UniversalFeedCreator.png?branch=master)](https://travis-ci.org/flack/UniversalFeedCreator)
+
+## General Usage
+
+```php
+require 'vendor/autoload.php';
+
+$rss = new UniversalFeedCreator();
+$rss->useCached(); // use cached version if age < 1 hour
+$rss->title = "PHP news";
+$rss->description = "daily news from the PHP scripting world";
+
+//optional
+$rss->descriptionTruncSize = 500;
+$rss->descriptionHtmlSyndicated = true;
+
+$rss->link = "http://www.dailyphp.net/news";
+$rss->syndicationURL = "http://www.dailyphp.net/" . $_SERVER["PHP_SELF"];
+
+$image = new FeedImage();
+$image->title = "dailyphp.net logo";
+$image->url = "http://www.dailyphp.net/images/logo.gif";
+$image->link = "http://www.dailyphp.net";
+$image->description = "Feed provided by dailyphp.net. Click to visit.";
+
+//optional
+$image->descriptionTruncSize = 500;
+$image->descriptionHtmlSyndicated = true;
+
+$rss->image = $image;
+
+// get your news items from somewhere, e.g. your database:
+mysql_select_db($dbHost, $dbUser, $dbPass);
+$res = mysql_query("SELECT * FROM news ORDER BY newsdate DESC");
+while ($data = mysql_fetch_object($res)) {
+    $item = new FeedItem();
+    $item->title = $data->title;
+    $item->link = $data->url;
+    $item->description = $data->short;
+
+    //optional
+    $item->descriptionTruncSize = 500;
+    $item->descriptionHtmlSyndicated = true;
+
+    $item->date = $data->newsdate;
+    $item->source = "http://www.dailyphp.net";
+    $item->author = "John Doe";
+
+    $rss->addItem($item);
+}
+
+echo $rss->saveFeed("RSS1.0", "news/feed.xml");
+```
+
+## Changelog:
+
+```
+v1.8          12-03-13
+    packaged for Composer & cleaned up slightly
+
+v1.7.7(BH)    28-03-06
+    added GPX Feed (Barry Hunter)
+
+
+v1.7.6(BH)    20-02-06
+    added GeoRSS Feed (Barry Hunter)
+
+
+v1.7.5(BH)    16-11-05
+    added BASE Feed (Barry Hunter)
+
+v1.7.4(BH)    05-07-05
+    added KML Feed (Barry Hunter)
+
+v1.7.3(BH)    05-07-05
+    added PHP Feed (Barry Hunter)
+
+v1.7.2    10-11-04
+    license changed to LGPL
+
+v1.7.1
+    fixed a syntax bug
+    fixed left over debug code
+
+v1.7    07-18-04
+    added HTML and JavaScript feeds (configurable via CSS) (thanks to Pascal Van Hecke)
+    added HTML descriptions for all feed formats (thanks to Pascal Van Hecke)
+    added a switch to select an external stylesheet (thanks to Pascal Van Hecke)
+    changed default content-type to application/xml
+    added character encoding setting
+    fixed numerous smaller bugs (thanks to Sören Fuhrmann of golem.de)
+    improved changing ATOM versions handling (thanks to August Trometer)
+    improved the UniversalFeedCreator's useCached method (thanks to Sören Fuhrmann of golem.de)
+    added charset output in HTTP headers (thanks to Sören Fuhrmann of golem.de)
+    added Slashdot namespace to RSS 1.0 (thanks to Sören Fuhrmann of golem.de)
+
+v1.6    05-10-04
+    added stylesheet to RSS 1.0 feeds
+    fixed generator comment (thanks Kevin L. Papendick and Tanguy Pruvot)
+    fixed RFC822 date bug (thanks Tanguy Pruvot)
+    added TimeZone customization for RFC8601 (thanks Tanguy Pruvot)
+    fixed Content-type could be empty (thanks Tanguy Pruvot)
+    fixed author/creator in RSS1.0 (thanks Tanguy Pruvot)
+
+v1.6 beta    02-28-04
+    added Atom 0.3 support (not all features, though)
+    improved OPML 1.0 support (hopefully - added more elements)
+    added support for arbitrary additional elements (use with caution)
+    code beautification :-)
+    considered beta due to some internal changes
+
+v1.5.1    01-27-04
+    fixed some RSS 1.0 glitches (thanks to Stéphane Vanpoperynghe)
+    fixed some inconsistencies between documentation and code (thanks to Timothy Martin)
+
+v1.5    01-06-04
+    added support for OPML 1.0
+    added more documentation
+
+v1.4    11-11-03
+    optional feed saving and caching
+    improved documentation
+    minor improvements
+
+v1.3    10-02-03
+    renamed to FeedCreator, as it not only creates RSS anymore
+    added support for mbox
+    tentative support for echo/necho/atom/pie/???
+
+v1.2    07-20-03
+    intelligent auto-truncating of RSS 0.91 attributes
+    don't create some attributes when they're not set
+    documentation improved
+    fixed a real and a possible bug with date conversions
+    code cleanup
+
+v1.1    06-29-03
+    added images to feeds
+    now includes most RSS 0.91 attributes
+    added RSS 2.0 feeds
+
+v1.0    06-24-03
+    initial release
+```
+
+## Credits
+```
+originally (c) Kai Blankenhorn
+www.bitfolge.de
+kaib@bitfolge.de
+v1.3 work by Scott Reynen (scott@randomchaos.com) and Kai Blankenhorn
+v1.5 OPML support by Dirk Clemens
+```
diff --git a/vendor/openpsa/universalfeedcreator/composer.json b/vendor/openpsa/universalfeedcreator/composer.json
new file mode 100644
index 0000000000000000000000000000000000000000..caabfcedc8c35cb8cf870e815ca892d00d81543c
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/composer.json
@@ -0,0 +1,23 @@
+{
+    "name": "openpsa/universalfeedcreator",
+    "type": "library",
+    "description": "RSS and Atom feed generator by Kai Blankenhorn",
+    "keywords": ["rss", "atom", "pie", "opml", "gpx", "georss"],
+    "license": "LGPL",
+    "authors": [
+        {
+            "name": "Andreas Flack",
+            "email": "flack@contentcontrol-berlin.de",
+            "homepage": "http://www.contentcontrol-berlin.de/"
+        }
+    ],
+    "require": {
+        "php": ">=5.0"
+    },
+    "autoload": {
+        "classmap": ["lib"]
+    },
+    "require-dev": {
+        "phpunit/phpunit": "*"
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php b/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php
new file mode 100644
index 0000000000000000000000000000000000000000..5f80a7562571ee4edc2ae13df6689d382d590bcd
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * AtomCreator03 is a FeedCreator that implements the atom specification,
+ * as in http://www.intertwingly.net/wiki/pie/FrontPage.
+ * Please note that just by using AtomCreator03 you won't automatically
+ * produce valid atom files. For example, you have to specify either an editor
+ * for the feed or an author for every single feed item.
+ * Some elements have not been implemented yet. These are (incomplete list):
+ * author URL, item author's email and URL, item contents, alternate links,
+ * other link content types than text/html. Some of them may be created with
+ * AtomCreator03::additionalElements.
+ *
+ * @see     FeedCreator#additionalElements
+ * @since   1.6
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>, Scott Reynen <scott@randomchaos.com>
+ * @package de.bitfolge.feedcreator
+ */
+class AtomCreator03 extends FeedCreator
+{
+
+    /**
+     * AtomCreator03 constructor.
+     */
+    public function __construct()
+    {
+        $this->contentType = "application/atom+xml";
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createGeneratorComment();
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\"";
+        if ($this->format == 'TOOLBAR') {
+            $feed .= " xmlns:gtb=\"http://toolbar.google.com/custombuttons/\"";
+        }
+        if ($this->language != "") {
+            $feed .= " xml:lang=\"".$this->language."\"";
+        }
+        $feed .= ">\n";
+        $feed .= "    <title>".htmlspecialchars($this->title)."</title>\n";
+        $feed .= "    <tagline>".htmlspecialchars($this->description)."</tagline>\n";
+        $feed .= "    <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->link)."\"/>\n";
+        $feed .= "    <id>".htmlspecialchars($this->link)."</id>\n";
+        $now = new FeedDate();
+        $feed .= "    <modified>".htmlspecialchars($now->iso8601())."</modified>\n";
+        if ($this->editor != "") {
+            $feed .= "    <author>\n";
+            $feed .= "        <name>".$this->editor."</name>\n";
+            if ($this->editorEmail != "") {
+                $feed .= "        <email>".$this->editorEmail."</email>\n";
+            }
+            $feed .= "    </author>\n";
+        }
+        $feed .= "    <generator>".FEEDCREATOR_VERSION."</generator>\n";
+        $feed .= $this->_createAdditionalElements($this->additionalElements, "    ");
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "    <entry>\n";
+            $feed .= "        <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n";
+            $feed .= "        <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars(
+                    $this->items[$i]->link
+                )."\"/>\n";
+            if ($this->items[$i]->date == "") {
+                $this->items[$i]->date = time();
+            }
+            $itemDate = new FeedDate($this->items[$i]->date);
+            $feed .= "        <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
+            $feed .= "        <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
+            $feed .= "        <modified>".htmlspecialchars($itemDate->iso8601())."</modified>\n";
+            $feed .= "        <id>".htmlspecialchars($this->items[$i]->link)."</id>\n";
+            $feed .= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
+            if ($this->items[$i]->author != "") {
+                $feed .= "        <author>\n";
+                $feed .= "            <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
+                $feed .= "        </author>\n";
+            }
+            if ($this->items[$i]->description != "") {
+                $feed .= "        <summary>".htmlspecialchars($this->items[$i]->description)."</summary>\n";
+            }
+            if (isset($this->items[$i]->thumbdata)) {
+                $feed .= "        <gtb:icon mode=\"base64\" type=\"image/jpeg\">\n";
+                $feed .= chunk_split(base64_encode($this->items[$i]->thumbdata))."\n";
+                $feed .= "        </gtb:icon>\n";
+            }
+            $feed .= "    </entry>\n";
+        }
+        $feed .= "</feed>\n";
+
+        return $feed;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php b/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php
new file mode 100644
index 0000000000000000000000000000000000000000..db7314ed5365f00d5259c2551fe25db28f7f3a1a
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php
@@ -0,0 +1,163 @@
+<?php
+
+/**
+ * AtomCreator10 is a FeedCreator that implements the atom specification,
+ * as in http://www.atomenabled.org/developers/syndication/atom-format-spec.php
+ * Please note that just by using AtomCreator10 you won't automatically
+ * produce valid atom files. For example, you have to specify either an editor
+ * for the feed or an author for every single feed item.
+ * Some elements have not been implemented yet. These are (incomplete list):
+ * author URL, item author's email and URL, item contents, alternate links,
+ * other link content types than text/html. Some of them may be created with
+ * AtomCreator10::additionalElements.
+ *
+ * @see     FeedCreator#additionalElements
+ * @since   1.7.2-mod (modified)
+ * @author  Mohammad Hafiz Ismail (mypapit@gmail.com)
+ * @package de.bitfolge.feedcreator
+ */
+class AtomCreator10 extends FeedCreator
+{
+
+    /**
+     * AtomCreator10 constructor.
+     */
+    public function __construct()
+    {
+        $this->contentType = "application/atom+xml";
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createGeneratorComment();
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<feed xmlns=\"http://www.w3.org/2005/Atom\"";
+        if (!empty($this->items[0]->lat)) {
+            $feed .= " xmlns:georss=\"http://www.georss.org/georss\"\n";
+        }
+        if ($this->language != "") {
+            $feed .= " xml:lang=\"".$this->language."\"";
+        }
+        $feed .= ">\n";
+        $feed .= "    <title>".htmlspecialchars($this->title)."</title>\n";
+        $feed .= "    <subtitle>".htmlspecialchars($this->description)."</subtitle>\n";
+        $feed .= "    <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->link)."\"/>\n";
+        $feed .= "    <id>".htmlspecialchars($this->link)."</id>\n";
+        $now = new FeedDate();
+        $feed .= "    <updated>".htmlspecialchars($now->iso8601())."</updated>\n";
+        if ($this->editor != "") {
+            $feed .= "    <author>\n";
+            $feed .= "        <name>".$this->editor."</name>\n";
+            if ($this->editorEmail != "") {
+                $feed .= "        <email>".$this->editorEmail."</email>\n";
+            }
+            $feed .= "    </author>\n";
+        }
+        if ($this->category != "") {
+
+            $feed .= "    <category term=\"".htmlspecialchars($this->category)."\" />\n";
+        }
+        if ($this->copyright != "") {
+            $feed .= "    <rights>".FeedCreator::iTrunc(htmlspecialchars($this->copyright), 100)."</rights>\n";
+        }
+        $feed .= "    <generator>".$this->version()."</generator>\n";
+
+        $feed .= "    <link rel=\"self\" type=\"application/atom+xml\" href=\"".htmlspecialchars(
+                $this->syndicationURL
+            )."\" />\n";
+        $feed .= $this->_createAdditionalElements($this->additionalElements, "    ");
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "    <entry>\n";
+            $feed .= "        <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n";
+            $feed .= "        <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars(
+                    $this->items[$i]->link
+                )."\"/>\n";
+            if ($this->items[$i]->date == "") {
+                $this->items[$i]->date = time();
+            }
+            $itemDate = new FeedDate($this->items[$i]->date);
+            $feed .= "        <published>".htmlspecialchars($itemDate->iso8601())."</published>\n";
+            $feed .= "        <updated>".htmlspecialchars($itemDate->iso8601())."</updated>\n";
+
+            $tempguid = $this->items[$i]->link;
+            if ($this->items[$i]->guid != "") {
+                $tempguid = $this->items[$i]->guid;
+            }
+
+            $feed .= "        <id>".htmlspecialchars($tempguid)."</id>\n";
+            $feed .= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
+            if ($this->items[$i]->author != "") {
+                $feed .= "        <author>\n";
+                $feed .= "            <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
+                if ($this->items[$i]->authorEmail != "") {
+                    $feed .= "            <email>".htmlspecialchars($this->items[$i]->authorEmail)."</email>\n";
+                }
+
+                if ($this->items[$i]->authorURL != "") {
+                    $feed .= "            <uri>".htmlspecialchars($this->items[$i]->authorURL)."</uri>\n";
+                }
+
+                $feed .= "        </author>\n";
+            }
+
+            if ($this->items[$i]->category != "") {
+                $feed .= "        <category ";
+
+                if ($this->items[$i]->categoryScheme != "") {
+                    $feed .= " scheme=\"".htmlspecialchars($this->items[$i]->categoryScheme)."\" ";
+                }
+
+                $feed .= " term=\"".htmlspecialchars($this->items[$i]->category)."\" />\n";
+            }
+
+            if ($this->items[$i]->description != "") {
+
+                /*
+                 * ATOM should have at least summary tag, however this implementation may be inaccurate
+                */
+                $tempdesc = $this->items[$i]->getDescription();
+                $temptype = "";
+
+                if ($this->items[$i]->descriptionHtmlSyndicated) {
+                    $temptype = " type=\"html\"";
+                    $tempdesc = $this->items[$i]->getDescription();
+
+                }
+
+                if (empty($this->items[$i]->descriptionTruncSize)) {
+                    $feed .= "        <content".$temptype.">".$tempdesc."</content>\n";
+                }
+
+                $feed .= "        <summary".$temptype.">".$tempdesc."</summary>\n";
+            } else {
+
+                $feed .= "     <summary>no summary</summary>\n";
+
+            }
+
+            if ($this->items[$i]->enclosure != null) {
+                $feed .= "        <link rel=\"enclosure\" href=\"".$this->items[$i]->enclosure->url."\" type=\"".$this->items[$i]->enclosure->type."\"  length=\"".$this->items[$i]->enclosure->length."\"";
+
+                if ($this->items[$i]->enclosure->language != "") {
+                    $feed .= " xml:lang=\"".$this->items[$i]->enclosure->language."\" ";
+                }
+
+                if ($this->items[$i]->enclosure->title != "") {
+                    $feed .= " title=\"".$this->items[$i]->enclosure->title."\" ";
+                }
+
+                $feed .= " /> \n";
+            }
+            if ($this->items[$i]->lat != "") {
+                $feed .= "        <georss:point>".$this->items[$i]->lat." ".$this->items[$i]->long."</georss:point>\n";
+            }
+            $feed .= "    </entry>\n";
+        }
+        $feed .= "</feed>\n";
+
+        return $feed;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..d5e99cd46c0cc9a7e3807f1488b486b8051b5ed2
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php
@@ -0,0 +1,274 @@
+<?php
+
+/**
+ * FeedCreator is the abstract base implementation for concrete
+ * implementations that implement a specific format of syndication.
+ *
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @since   1.4
+ * @package de.bitfolge.feedcreator
+ */
+abstract class FeedCreator extends HtmlDescribable
+{
+
+    /**
+     * Mandatory attributes of a feed.
+     */
+    public $title, $description, $link;
+    public $format = 'BASE';
+
+    /**
+     * Optional attributes of a feed.
+     */
+    public $syndicationURL, $image, $language, $copyright, $pubDate, $lastBuildDate, $editor, $editorEmail, $webmaster, $category, $docs, $ttl, $rating, $skipHours, $skipDays;
+
+    /**
+     * The url of the external xsl stylesheet used to format the naked rss feed.
+     * Ignored in the output when empty.
+     */
+    public $xslStyleSheet = "";
+
+
+    /** @var FeedItem[] */
+    public $items = Array();
+
+    /**
+     * Generator string
+     */
+    public $generator = "info@mypapit.net";
+
+    /**
+     * This feed's MIME content type.
+     *
+     * @since  1.4
+     * @access private
+     */
+    protected $contentType = "application/xml";
+
+    /**
+     * This feed's character encoding.
+     *
+     * @since 1.6.1
+     */
+    protected $encoding = "UTF-8"; //"ISO-8859-1";
+
+    /**
+     * Any additional elements to include as an associated array. All $key => $value pairs
+     * will be included unencoded in the feed in the form
+     *     <$key>$value</$key>
+     * Again: No encoding will be used! This means you can invalidate or enhance the feed
+     * if $value contains markup. This may be abused to embed tags not implemented by
+     * the FeedCreator class used.
+     */
+    public $additionalElements = Array();
+
+    /**
+     * Adds a FeedItem to the feed.
+     *
+     * @param FeedItem $item The FeedItem to add to the feed.
+     */
+    public function addItem($item)
+    {
+        $this->items[] = $item;
+    }
+
+    /**
+     * Get the version string for the generator
+     *
+     * @return string
+     */
+    public function version()
+    {
+        return FEEDCREATOR_VERSION." (".$this->generator.")";
+    }
+
+    /**
+     * Truncates a string to a certain length at the most sensible point.
+     * First, if there's a '.' character near the end of the string, the string is truncated after this character.
+     * If there is no '.', the string is truncated after the last ' ' character.
+     * If the string is truncated, " ..." is appended.
+     * If the string is already shorter than $length, it is returned unchanged.
+     *
+     * @param string $string A string to be truncated.
+     * @param int $length    the maximum length the string should be truncated to
+     * @return string the truncated string
+     */
+    public static function iTrunc($string, $length)
+    {
+        if (strlen($string) <= $length) {
+            return $string;
+        }
+
+        $pos = strrpos($string, ".");
+        if ($pos >= $length - 4) {
+            $string = substr($string, 0, $length - 4);
+            $pos = strrpos($string, ".");
+        }
+        if ($pos >= $length * 0.4) {
+            return substr($string, 0, $pos + 1)." ...";
+        }
+
+        $pos = strrpos($string, " ");
+        if ($pos >= $length - 4) {
+            $string = substr($string, 0, $length - 4);
+            $pos = strrpos($string, " ");
+        }
+        if ($pos >= $length * 0.4) {
+            return substr($string, 0, $pos)." ...";
+        }
+
+        return substr($string, 0, $length - 4)." ...";
+
+    }
+
+    /**
+     * Creates a comment indicating the generator of this feed.
+     * The format of this comment seems to be recognized by
+     * Syndic8.com.
+     */
+    protected function _createGeneratorComment()
+    {
+        return "<!-- generator=\"".FEEDCREATOR_VERSION."\" -->\n";
+    }
+
+    /**
+     * Creates a string containing all additional elements specified in
+     * $additionalElements.
+     *
+     * @param array $elements      an associative array containing key => value pairs
+     * @param string $indentString a string that will be inserted before every generated line
+     * @return string the XML tags corresponding to $additionalElements
+     */
+    protected function _createAdditionalElements($elements, $indentString = "")
+    {
+        $ae = "";
+        if (is_array($elements)) {
+            foreach ($elements AS $key => $value) {
+                $ae .= $indentString."<$key>$value</$key>\n";
+            }
+        }
+
+        return $ae;
+    }
+
+    protected function _createStylesheetReferences()
+    {
+        $xml = "";
+        if (!empty($this->cssStyleSheet)) {
+            $xml .= "<?xml-stylesheet href=\"".$this->cssStyleSheet."\" type=\"text/css\"?>\n";
+        }
+        if (!empty($this->xslStyleSheet)) {
+            $xml .= "<?xml-stylesheet href=\"".$this->xslStyleSheet."\" type=\"text/xsl\"?>\n";
+        }
+
+        return $xml;
+    }
+
+    /**
+     * Builds the feed's text.
+     *
+     * @return string the feed's complete text
+     */
+    abstract public function createFeed();
+
+    /**
+     * Generate a filename for the feed cache file. The result will be $_SERVER["PHP_SELF"] with the extension changed
+     * to .xml. For example: echo $_SERVER["PHP_SELF"]."\n"; echo FeedCreator::_generateFilename(); would produce:
+     * /rss/latestnews.php
+     * latestnews.xml
+     *
+     * @return string the feed cache filename
+     * @since  1.4
+     * @access private
+     */
+    protected function _generateFilename()
+    {
+        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
+
+        return substr($fileInfo["basename"], 0, -(strlen($fileInfo["extension"]) + 1)).".xml";
+    }
+
+    /**
+     * Send given file to Browser
+     *
+     * @since 1.4
+     * @param string $filename
+     */
+    protected function _redirect($filename)
+    {
+        // attention, heavily-commented-out-area
+
+        // maybe use this in addition to file time checking
+        //header("Expires: ".date("r",time()+$this->_timeout));
+
+        /* no caching at all, doesn't seem to work as good:
+         header("Cache-Control: no-cache");
+        header("Pragma: no-cache");
+        */
+
+        // HTTP redirect, some feed readers' simple HTTP implementations don't follow it
+        //header("Location: ".$filename);
+
+        header("Content-Type: ".$this->contentType."; charset=".$this->encoding."; filename=".basename($filename));
+        if (preg_match('/\.(kml|gpx)$/', $filename)) {
+            header("Content-Disposition: attachment; filename=".basename($filename));
+        } else {
+            header("Content-Disposition: inline; filename=".basename($filename));
+        }
+        readfile($filename);
+        exit();
+    }
+
+    /**
+     * Turns on caching and checks if there is a recent version of this feed in the cache.
+     * If there is, an HTTP redirect header is sent.
+     * To effectively use caching, you should create the FeedCreator object and call this method
+     * before anything else, especially before you do the time consuming task to build the feed
+     * (web fetching, for example).
+     *
+     * @since 1.4
+     * @param string $filename optional    the filename where a recent version of the feed is saved. If not specified,
+     *                         the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see
+     *                         _generateFilename()).
+     * @param int $timeout     optional    the timeout in seconds before a cached version is refreshed (defaults to
+     *                         3600 = 1 hour)
+     */
+    public function useCached($filename = "", $timeout = 3600)
+    {
+        $this->_timeout = $timeout;
+        if ($filename == "") {
+            $filename = $this->_generateFilename();
+        }
+        if (file_exists($filename) AND (time() - filemtime($filename) < $timeout)) {
+            $this->_redirect($filename);
+        }
+    }
+
+    /**
+     * Saves this feed as a file on the local disk. After the file is saved, a redirect
+     * header may be sent to redirect the user to the newly created file.
+     *
+     * @since 1.4
+     * @param string $filename      optional    the filename where a recent version of the feed is saved. If not
+     *                              specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml
+     *                              (see _generateFilename()).
+     * @param bool $displayContents optional    send an HTTP redirect header or not. If true, the user will be
+     *                              automatically redirected to the created file.
+     */
+    public function saveFeed($filename = "", $displayContents = true)
+    {
+        if ($filename == "") {
+            $filename = $this->_generateFilename();
+        }
+        $feedFile = fopen($filename, "w+");
+        if ($feedFile) {
+            fputs($feedFile, $this->createFeed());
+            fclose($feedFile);
+            if ($displayContents) {
+                $this->_redirect($filename);
+            }
+        } else {
+            echo "<br /><b>Error creating feed file, please check write permissions.</b><br />";
+        }
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..e8df3081ee750e7426049e0f78ad691871b090d3
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * GPXCreator is a FeedCreator that implements a GPX output, suitable for a GIS packages
+ *
+ * @since   1.7.6
+ * @author  Barry Hunter <geo@barryhunter.co.uk>
+ * @package de.bitfolge.feedcreator
+ */
+class GPXCreator extends FeedCreator
+{
+
+    /**
+     * GPXCreator constructor.
+     */
+    public function __construct()
+    {
+        $this->contentType = "text/xml";
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<gpx xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"1.0\"
+        creator=\"".FEEDCREATOR_VERSION."\"
+        xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd\" xmlns=\"http://www.topografix.com/GPX/1/0\">\n";
+
+        $now = new FeedDate();
+        $feed .= "<desc>".FeedCreator::iTrunc(htmlspecialchars($this->title), 100)."</desc>
+        <author>{$http_host}</author>
+        <url>".htmlspecialchars($this->link)."</url>
+        <time>".htmlspecialchars($now->iso8601())."</time>
+        \n";
+
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "<wpt lat=\"".$this->items[$i]->lat."\" lon=\"".$this->items[$i]->long."\">
+            <name>".substr(htmlspecialchars(strip_tags($this->items[$i]->title)), 0, 6)."</name>
+                <desc>".htmlspecialchars(strip_tags($this->items[$i]->title))."</desc>
+                    <src>".htmlspecialchars($this->items[$i]->author)."</src>
+                        <url>".htmlspecialchars($this->items[$i]->link)."</url>
+        </wpt>\n";
+        }
+        $feed .= "</gpx>\n";
+
+        return $feed;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..9b6f8b5ca935169e16977eb159cc2a46972cef11
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php
@@ -0,0 +1,162 @@
+<?php
+
+/**
+ * HTMLCreator is a FeedCreator that writes an HTML feed file to a specific
+ * location, overriding the createFeed method of the parent FeedCreator.
+ * The HTML produced can be included over http by scripting languages, or serve
+ * as the source for an IFrame.
+ * All output by this class is embedded in <div></div> tags to enable formatting
+ * using CSS.
+ *
+ * @author  Pascal Van Hecke
+ * @since   1.7
+ * @package de.bitfolge.feedcreator
+ */
+class HTMLCreator extends FeedCreator
+{
+
+    protected $contentType = "text/html";
+
+    /**
+     * Contains HTML to be output at the start of the feed's html representation.
+     */
+    public $header;
+
+    /**
+     * Contains HTML to be output at the end of the feed's html representation.
+     */
+    public $footer;
+
+    /**
+     * Contains HTML to be output between entries. A separator is only used in
+     * case of multiple entries.
+     */
+    public $separator;
+
+    /**
+     * Used to prefix the stylenames to make sure they are unique
+     * and do not clash with stylenames on the user's page.
+     */
+    public $stylePrefix;
+
+    /** @var bool Determines whether the links open in a new window or not. */
+    public $openInNewWindow = true;
+
+    /** @var string image alignments in output */
+    public $imageAlign = "right";
+
+    /**
+     * In case of very simple output you may want to get rid of the style tags,
+     * hence this variable.  There's no equivalent on item level, but of course you can
+     * add strings to it while iterating over the items ($this->stylelessOutput .= ...)
+     * and when it is non-empty, ONLY the styleless output is printed, the rest is ignored
+     * in the function createFeed().
+     */
+    public $stylelessOutput = "";
+
+    /**
+     * Writes the HTML.
+     *
+     * @inheritdoc
+     */
+    public function createFeed()
+    {
+        // if there is styleless output, use the content of this variable and ignore the rest
+        if ($this->stylelessOutput != "") {
+            return $this->stylelessOutput;
+        }
+
+        //if no stylePrefix is set, generate it yourself depending on the script name
+        if ($this->stylePrefix == "") {
+            $this->stylePrefix = str_replace(".", "_", $this->_generateFilename())."_";
+        }
+
+        //set an openInNewWindow_token_to be inserted or not
+        if ($this->openInNewWindow) {
+            $targetInsert = " class='target_blank'";
+        } else {
+            $targetInsert = '';
+        }
+
+        // use this array to put the lines in and implode later with "document.write" javascript
+        $feedArray = array();
+        if ($this->image != null) {
+            $imageStr = "<a href='".$this->image->link."'".$targetInsert.">".
+                "<img src='".$this->image->url."' border='0' alt='".
+                FeedCreator::iTrunc(htmlspecialchars($this->image->title), 100).
+                "' align='".$this->imageAlign."' ";
+            if ($this->image->width) {
+                $imageStr .= " width='".$this->image->width."' ";
+            }
+            if ($this->image->height) {
+                $imageStr .= " height='".$this->image->height."' ";
+            }
+            $imageStr .= "/></a>";
+            $feedArray[] = $imageStr;
+        }
+
+        if ($this->title) {
+            $feedArray[] = "<div class='".$this->stylePrefix."title'><a href='".$this->link."' ".$targetInsert." class='".$this->stylePrefix."title'>".
+                FeedCreator::iTrunc(htmlspecialchars($this->title), 100)."</a></div>";
+        }
+        if ($this->getDescription()) {
+            $feedArray[] = "<div class='".$this->stylePrefix."description'>".
+                str_replace("]]>", "", str_replace("<![CDATA[", "", $this->getDescription())).
+                "</div>";
+        }
+
+        if ($this->header) {
+            $feedArray[] = "<div class='".$this->stylePrefix."header'>".$this->header."</div>";
+        }
+
+        for ($i = 0; $i < count($this->items); $i++) {
+            if ($this->separator and $i > 0) {
+                $feedArray[] = "<div class='".$this->stylePrefix."separator'>".$this->separator."</div>";
+            }
+
+            if ($this->items[$i]->title) {
+                if ($this->items[$i]->link) {
+                    $feedArray[] =
+                        "<div class='".$this->stylePrefix."item_title'><a href='".$this->items[$i]->link."' class='".$this->stylePrefix.
+                        "item_title'".$targetInsert.">".FeedCreator::iTrunc(
+                            htmlspecialchars(strip_tags($this->items[$i]->title)),
+                            100
+                        ).
+                        "</a></div>";
+                } else {
+                    $feedArray[] =
+                        "<div class='".$this->stylePrefix."item_title'>".
+                        FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)), 100).
+                        "</div>";
+                }
+            }
+            if ($this->items[$i]->getDescription()) {
+                $feedArray[] =
+                    "<div class='".$this->stylePrefix."item_description'>".
+                    str_replace("]]>", "", str_replace("<![CDATA[", "", $this->items[$i]->getDescription())).
+                    "</div>";
+            }
+        }
+        if ($this->footer) {
+            $feedArray[] = "<div class='".$this->stylePrefix."footer'>".$this->footer."</div>";
+        }
+
+        $feed = "".join($feedArray, "\r\n");
+
+        return $feed;
+    }
+
+    /**
+     * Overrides parent to produce .html extensions
+     *
+     * @return string the feed cache filename
+     * @since  1.4
+     * @access private
+     */
+    protected function _generateFilename()
+    {
+        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
+
+        return substr($fileInfo["basename"], 0, -(strlen($fileInfo["extension"]) + 1)).".html";
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..5b75ea7b573c26f54ae891a803effd3250ff158e
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * JSCreator is a class that writes a js file to a specific
+ * location, overriding the createFeed method of the parent HTMLCreator.
+ *
+ * @author  Pascal Van Hecke
+ * @package de.bitfolge.feedcreator
+ */
+class JSCreator extends HTMLCreator
+{
+    protected $contentType = "text/javascript";
+
+    /**
+     * writes the javascript
+     *
+     * @inheritdoc
+     */
+    public function createFeed()
+    {
+        $feed = parent::createFeed();
+        $feedArray = explode("\n", $feed);
+
+        $jsFeed = "";
+        foreach ($feedArray as $value) {
+            $jsFeed .= "document.write('".trim(addslashes($value))."');\n";
+        }
+
+        return $jsFeed;
+    }
+
+    /**
+     * Overrides parent to produce .js extensions
+     *
+     * @return string the feed cache filename
+     * @since  1.4
+     * @access private
+     */
+    protected function _generateFilename()
+    {
+        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
+
+        return substr($fileInfo["basename"], 0, -(strlen($fileInfo["extension"]) + 1)).".js";
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..acb0abc0fcf208e1f8847ffc5e2d323a4d52bff8
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * KMLCreator is a FeedCreator that implements a KML output, suitable for Keyhole/Google Earth
+ *
+ * @since   1.7.3
+ * @author  Barry Hunter <geo@barryhunter.co.uk>
+ * @package de.bitfolge.feedcreator
+ */
+class KMLCreator extends FeedCreator
+{
+
+    /**
+     * KMLCreator constructor.
+     */
+    public function __construct()
+    {
+        $this->contentType = "application/vnd.google-earth.kml+xml";
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<kml xmlns=\"http://earth.google.com/kml/2.0\">\n";
+        $feed .= "<Document>\n";
+        if ($_GET['LinkControl']) {
+            $feed .= "<NetworkLinkControl>\n<minRefreshPeriod>3600</minRefreshPeriod>\n</NetworkLinkControl>\n";
+        }
+        if (!empty($_GET['simple']) && count($this->items) > 0) {
+            $feed .= "<Style id=\"defaultIcon\">
+            <LabelStyle>
+            <scale>0</scale>
+            </LabelStyle>
+            </Style>
+            <Style id=\"hoverIcon\">".
+                (($this->items[0]->thumb != "") ? "
+                <IconStyle id=\"hoverIcon\">
+                <scale>2.1</scale>
+                </IconStyle>" : '')."
+                </Style>
+                <StyleMap id=\"defaultStyle\">
+                <Pair>
+                <key>normal</key>
+                <styleUrl>#defaultIcon</styleUrl>
+                </Pair>
+                <Pair>
+                <key>highlight</key>
+                <styleUrl>#hoverIcon</styleUrl>
+                </Pair>
+                </StyleMap>
+                ";
+            $style = "#defaultStyle";
+        } else {
+            $style = "root://styleMaps#default?iconId=0x307";
+        }
+        $feed .= "<Folder>\n";
+        $feed .= "  <name>".FeedCreator::iTrunc(htmlspecialchars($this->title), 100)."</name>
+        <description>".$this->getDescription()."</description>
+        <visibility>1</visibility>\n";
+        $this->truncSize = 500;
+
+        for ($i = 0; $i < count($this->items); $i++) {
+            //added here beucase description gets auto surrounded by cdata
+            $this->items[$i]->description = "<b>".$this->items[$i]->description."</b><br/>
+            ".$this->items[$i]->licence."
+            <br/><br/><a href=\"".htmlspecialchars($this->items[$i]->link)."\">View Online</a>";
+
+            $feed .= "
+            <Placemark>
+            <description>".$this->items[$i]->getDescription(true)."</description>
+            <name>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)), 100)."</name>
+            <visibility>1</visibility>
+            <Point>
+            <coordinates>".$this->items[$i]->long.",".$this->items[$i]->lat.",25</coordinates>
+            </Point>";
+            if ($this->items[$i]->thumb != "") {
+                $feed .= "
+                <styleUrl>$style</styleUrl>
+                <Style>
+                <icon>".htmlspecialchars($this->items[$i]->thumb)."</icon>
+                    </Style>";
+            }
+            $feed .= "
+            </Placemark>\n";
+        }
+        $feed .= "</Folder>\n</Document>\n</kml>\n";
+
+        return $feed;
+    }
+
+    /**
+     * Generate a filename for the feed cache file. Overridden from FeedCreator to prevent XML data types.
+     *
+     * @return string the feed cache filename
+     * @since  1.4
+     * @access private
+     */
+    protected function _generateFilename()
+    {
+        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
+
+        return substr($fileInfo["basename"], 0, -(strlen($fileInfo["extension"]) + 1)).".kml";
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..d7f898dc3d87ae8b9fcfef436c89f195bcd31a8b
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * MBOXCreator is a FeedCreator that implements the mbox format
+ * as described in http://www.qmail.org/man/man5/mbox.html
+ *
+ * @since   1.3
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @package de.bitfolge.feedcreator
+ */
+class MBOXCreator extends FeedCreator
+{
+
+    /**
+     * MBOXCreator constructor.
+     */
+    public function __construct()
+    {
+        $this->contentType = "text/plain";
+        $this->encoding = "ISO-8859-15";
+    }
+
+    /**
+     * Quoted Printable encoding
+     *
+     * @param string $input
+     * @param int $line_max wrap lines after these number of characters
+     * @return string
+     */
+    protected function qp_enc($input = "", $line_max = 76)
+    {
+        $hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
+        $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
+        $eol = "\r\n";
+        $escape = "=";
+        $output = "";
+        foreach ($lines as $line) {
+            $linlen = strlen($line);
+            $newline = "";
+            for ($i = 0; $i < $linlen; $i++) {
+                $c = substr($line, $i, 1);
+                $dec = ord($c);
+                if (($dec == 32) && ($i == ($linlen - 1))) { // convert space at eol only
+                    $c = "=20";
+                } elseif (($dec == 61) || ($dec < 32) || ($dec > 126)) { // always encode "\t", which is *not* required
+                    $h2 = floor($dec / 16);
+                    $h1 = floor($dec % 16);
+                    $c = $escape.$hex["$h2"].$hex["$h1"];
+                }
+                if ((strlen($newline) + strlen($c)) >= $line_max) { // CRLF is not counted
+                    $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay
+                    $newline = "";
+                }
+                $newline .= $c;
+            } // end of for
+            $output .= $newline.$eol;
+        }
+
+        return trim($output);
+    }
+
+    /**
+     * Builds the MBOX contents.
+     *
+     * @inheritdoc
+     */
+    public function createFeed()
+    {
+        $feed = '';
+        for ($i = 0; $i < count($this->items); $i++) {
+            if ($this->items[$i]->author != "") {
+                $from = $this->items[$i]->author;
+            } else {
+                $from = $this->title;
+            }
+            $itemDate = new FeedDate($this->items[$i]->date);
+            $feed .= "From ".strtr(MBOXCreator::qp_enc($from), " ", "_")." ".date(
+                    "D M d H:i:s Y",
+                    $itemDate->unix()
+                )."\n";
+            $feed .= "Content-Type: text/plain;\n";
+            $feed .= "    charset=\"".$this->encoding."\"\n";
+            $feed .= "Content-Transfer-Encoding: quoted-printable\n";
+            $feed .= "Content-Type: text/plain\n";
+            $feed .= "From: \"".MBOXCreator::qp_enc($from)."\"\n";
+            $feed .= "Date: ".$itemDate->rfc822()."\n";
+            $feed .= "Subject: ".MBOXCreator::qp_enc(FeedCreator::iTrunc($this->items[$i]->title, 100))."\n";
+            $feed .= "\n";
+            $body = chunk_split(MBOXCreator::qp_enc($this->items[$i]->description));
+            $feed .= preg_replace("~\nFrom ([^\n]*)(\n?)~", "\n>From $1$2\n", $body);
+            $feed .= "\n";
+            $feed .= "\n";
+        }
+
+        return $feed;
+    }
+
+    /**
+     * Generate a filename for the feed cache file. Overridden from FeedCreator to prevent XML data types.
+     *
+     * @return string the feed cache filename
+     * @since  1.4
+     * @access private
+     */
+    protected function _generateFilename()
+    {
+        $fileInfo = pathinfo($_SERVER["PHP_SELF"]);
+
+        return substr($fileInfo["basename"], 0, -(strlen($fileInfo["extension"]) + 1)).".mbox";
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..6dcdc82b97d0e9000c47815a71ee358d0913b924
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * OPMLCreator is a FeedCreator that implements OPML 1.0.
+ *
+ * @see     http://opml.scripting.com/spec
+ * @author  Dirk Clemens, Kai Blankenhorn
+ * @since   1.5
+ * @package de.bitfolge.feedcreator
+ */
+class OPMLCreator extends FeedCreator
+{
+
+    /**
+     * OPMLCreator constructor.
+     */
+    public function __construct()
+    {
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createGeneratorComment();
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<opml xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n";
+        $feed .= "    <head>\n";
+        $feed .= "        <title>".htmlspecialchars($this->title)."</title>\n";
+        if ($this->pubDate != "") {
+            $date = new FeedDate($this->pubDate);
+            $feed .= "         <dateCreated>".$date->rfc822()."</dateCreated>\n";
+        }
+        if ($this->lastBuildDate != "") {
+            $date = new FeedDate($this->lastBuildDate);
+            $feed .= "         <dateModified>".$date->rfc822()."</dateModified>\n";
+        }
+        if ($this->editor != "") {
+            $feed .= "         <ownerName>".$this->editor."</ownerName>\n";
+        }
+        if ($this->editorEmail != "") {
+            $feed .= "         <ownerEmail>".$this->editorEmail."</ownerEmail>\n";
+        }
+        $feed .= "    </head>\n";
+        $feed .= "    <body>\n";
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "    <outline type=\"rss\" ";
+            $title = htmlspecialchars(strip_tags(strtr($this->items[$i]->title, "\n\r", "  ")));
+            $feed .= " title=\"".$title."\"";
+            $feed .= " text=\"".$title."\"";
+
+            if (isset($this->items[$i]->xmlUrl)) {
+                $feed .= " xmlUrl=\"".htmlspecialchars($this->items[$i]->xmlUrl)."\"";
+            }
+
+            if (isset($this->items[$i]->link)) {
+                $feed .= " url=\"".htmlspecialchars($this->items[$i]->link)."\"";
+            }
+
+            $feed .= "/>\n";
+        }
+        $feed .= "    </body>\n";
+        $feed .= "</opml>\n";
+
+        return $feed;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php b/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..23b83529ab37edf4e93a577f07295500245fc4f7
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * PHPCreator is a FeedCreator that implements a PHP output, suitable for an include
+ *
+ * @since   1.7.3
+ * @author  Barry Hunter <geo@barryhunter.co.uk>
+ * @package de.bitfolge.feedcreator
+ */
+class PHPCreator extends FeedCreator
+{
+
+    /**
+     * PHPCreator constructor.
+     */
+    public function __construct()
+    {
+        $this->contentType = "text/plain";
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?php\n";
+        $feed .= "class FeedItem {}\n";
+        $feed .= "  \$feedTitle='".addslashes(FeedCreator::iTrunc(htmlspecialchars($this->title), 100))."';\n";
+        $this->truncSize = 500;
+        $feed .= "  \$feedDescription='".addslashes($this->getDescription())."';\n";
+        $feed .= "  \$feedLink='".$this->link."';\n";
+        $feed .= "  \$feedItem = array();\n";
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "   \$feedItem[$i] = new FeedItem();\n";
+            if ($this->items[$i]->guid != "") {
+                $feed .= "    \$feedItem[$i]->id='".htmlspecialchars($this->items[$i]->guid)."';\n";
+            }
+            $feed .= "    \$feedItem[$i]->title='".addslashes(
+                    FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)), 100)
+                )."';\n";
+            $feed .= "    \$feedItem[$i]->link='".htmlspecialchars($this->items[$i]->link)."';\n";
+            $feed .= "    \$feedItem[$i]->date=".htmlspecialchars($this->items[$i]->date).";\n";
+            if ($this->items[$i]->author != "") {
+                $feed .= "    \$feedItem[$i]->author='".htmlspecialchars($this->items[$i]->author)."';\n";
+                if ($this->items[$i]->authorEmail != "") {
+                    $feed .= "    \$feedItem[$i]->authorEmail='".$this->items[$i]->authorEmail."';\n";
+                }
+            }
+            $feed .= "    \$feedItem[$i]->description='".addslashes($this->items[$i]->getDescription())."';\n";
+            if ($this->items[$i]->thumb != "") {
+                $feed .= "    \$feedItem[$i]->thumbURL='".htmlspecialchars($this->items[$i]->thumb)."';\n";
+            }
+        }
+        $feed .= "?>\n";
+
+        return $feed;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php b/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php
new file mode 100644
index 0000000000000000000000000000000000000000..5700123c2536ad83b20344691d52fa199d3b6c8b
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * PIECreator01 is a FeedCreator that implements the emerging PIE specification,
+ * as in http://intertwingly.net/wiki/pie/Syntax.
+ *
+ * @deprecated
+ * @since   1.3
+ * @author  Scott Reynen <scott@randomchaos.com> and Kai Blankenhorn <kaib@bitfolge.de>
+ * @package de.bitfolge.feedcreator
+ */
+class PIECreator01 extends FeedCreator
+{
+
+    /**
+     * PIECreator01 constructor.
+     */
+    public function __construct()
+    {
+        $this->encoding = "utf-8";
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<feed version=\"0.1\" xmlns=\"http://example.com/newformat#\">\n";
+        $feed .= "    <title>".FeedCreator::iTrunc(htmlspecialchars($this->title), 100)."</title>\n";
+        $this->truncSize = 500;
+        $feed .= "    <subtitle>".$this->getDescription()."</subtitle>\n";
+        $feed .= "    <link>".$this->link."</link>\n";
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "    <entry>\n";
+            $feed .= "        <title>".FeedCreator::iTrunc(
+                    htmlspecialchars(strip_tags($this->items[$i]->title)),
+                    100
+                )."</title>\n";
+            $feed .= "        <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
+            $itemDate = new FeedDate($this->items[$i]->date);
+            $feed .= "        <created>".htmlspecialchars($itemDate->iso8601())."</created>\n";
+            $feed .= "        <issued>".htmlspecialchars($itemDate->iso8601())."</issued>\n";
+            $feed .= "        <modified>".htmlspecialchars($itemDate->iso8601())."</modified>\n";
+            $feed .= "        <id>".htmlspecialchars($this->items[$i]->guid)."</id>\n";
+            if ($this->items[$i]->author != "") {
+                $feed .= "        <author>\n";
+                $feed .= "            <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
+                if ($this->items[$i]->authorEmail != "") {
+                    $feed .= "            <email>".$this->items[$i]->authorEmail."</email>\n";
+                }
+                $feed .= "        </author>\n";
+            }
+            $feed .= "        <content type=\"text/html\" xml:lang=\"en-us\">\n";
+            $feed .= "            <div xmlns=\"http://www.w3.org/1999/xhtml\">".$this->items[$i]->getDescription(
+                )."</div>\n";
+            $feed .= "        </content>\n";
+            $feed .= "    </entry>\n";
+        }
+        $feed .= "</feed>\n";
+
+        return $feed;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php b/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php
new file mode 100644
index 0000000000000000000000000000000000000000..cd229e954fe9854aa3d1726c5bc128589ce573c9
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php
@@ -0,0 +1,198 @@
+<?php
+
+/**
+ * RSSCreator091 is a FeedCreator that implements RSS 0.91 Spec, revision 3.
+ *
+ * @see     http://my.netscape.com/publish/formats/rss-spec-0.91.html
+ * @since   1.3
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @package de.bitfolge.feedcreator
+ */
+class RSSCreator091 extends FeedCreator
+{
+
+    /** @var string Stores this RSS feed's version number. */
+    protected $RSSVersion;
+
+    /**
+     * RSSCreator091 constructor.
+     */
+    function __construct()
+    {
+        $this->_setRSSVersion("0.91");
+        $this->contentType = "application/rss+xml";
+    }
+
+    /**
+     * Sets this RSS feed's version number.
+     *
+     * @param string $version
+     */
+    protected function _setRSSVersion($version)
+    {
+        $this->RSSVersion = $version;
+    }
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createGeneratorComment();
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<rss version=\"".$this->RSSVersion."\"";
+
+        if (count($this->items) > 0
+            && !empty($this->items[0]->lat)
+        ) {
+            $feed .= "    xmlns:georss=\"http://www.georss.org/georss/\"\n";
+        }
+        if (count($this->items) > 0
+            && isset($this->items[0]->additionalElements['xcal:dtstart'])
+        ) {
+            $feed .= "    xmlns:xcal=\"urn:ietf:params:xml:ns:xcal\"\n";
+        }
+        $feed .= ">\n";
+        if ($this->format == 'BASE') {
+            $feed .= "    <channel xmlns:g=\"http://base.google.com/ns/1.0\">\n";
+        } else {
+            $feed .= "    <channel>\n";
+        }
+        $feed .= "        <title>".FeedCreator::iTrunc(htmlspecialchars($this->title), 100)."</title>\n";
+        $this->descriptionTruncSize = 500;
+        $feed .= "        <description>".$this->getDescription()."</description>\n";
+        $feed .= "        <link>".$this->link."</link>\n";
+        $now = new FeedDate();
+        $feed .= "        <lastBuildDate>".htmlspecialchars(
+                $this->lastBuildDate ?: $now->rfc822()
+            )."</lastBuildDate>\n";
+        $feed .= "        <generator>".FEEDCREATOR_VERSION."</generator>\n";
+
+        if ($this->image != null) {
+            $feed .= "        <image>\n";
+            $feed .= "            <url>".$this->image->url."</url>\n";
+            $feed .= "            <title>".FeedCreator::iTrunc(htmlspecialchars($this->image->title), 100)."</title>\n";
+            $feed .= "            <link>".$this->image->link."</link>\n";
+            if ($this->image->width != "") {
+                $feed .= "            <width>".$this->image->width."</width>\n";
+            }
+            if ($this->image->height != "") {
+                $feed .= "            <height>".$this->image->height."</height>\n";
+            }
+            if ($this->image->description != "") {
+                $feed .= "            <description>".htmlspecialchars($this->image->description)."</description>\n";
+            }
+            $feed .= "        </image>\n";
+        }
+        if ($this->language != "") {
+            $feed .= "        <language>".$this->language."</language>\n";
+        }
+        if ($this->copyright != "") {
+            $feed .= "        <copyright>".FeedCreator::iTrunc(
+                    htmlspecialchars($this->copyright),
+                    100
+                )."</copyright>\n";
+        }
+        if ($this->editor != "") {
+            $feed .= "        <managingEditor>".FeedCreator::iTrunc(
+                    htmlspecialchars($this->editor),
+                    100
+                )."</managingEditor>\n";
+        }
+        if ($this->webmaster != "") {
+            $feed .= "        <webMaster>".FeedCreator::iTrunc(
+                    htmlspecialchars($this->webmaster),
+                    100
+                )."</webMaster>\n";
+        }
+        if ($this->pubDate != "") {
+            $pubDate = new FeedDate($this->pubDate);
+            $feed .= "        <pubDate>".htmlspecialchars($pubDate->rfc822())."</pubDate>\n";
+        }
+        if ($this->category != "") {
+            $feed .= "        <category>".htmlspecialchars($this->category)."</category>\n";
+        }
+        if ($this->docs != "") {
+            $feed .= "        <docs>".FeedCreator::iTrunc(htmlspecialchars($this->docs), 500)."</docs>\n";
+        }
+        if ($this->ttl != "") {
+            $feed .= "        <ttl>".htmlspecialchars($this->ttl)."</ttl>\n";
+        }
+        if ($this->rating != "") {
+            $feed .= "        <rating>".FeedCreator::iTrunc(htmlspecialchars($this->rating), 500)."</rating>\n";
+        }
+        if ($this->skipHours != "") {
+            $feed .= "        <skipHours>".htmlspecialchars($this->skipHours)."</skipHours>\n";
+        }
+        if ($this->skipDays != "") {
+            $feed .= "        <skipDays>".htmlspecialchars($this->skipDays)."</skipDays>\n";
+        }
+        $feed .= $this->_createAdditionalElements($this->additionalElements, "    ");
+
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "        <item>\n";
+            $feed .= "            <title>".FeedCreator::iTrunc(
+                    htmlspecialchars(strip_tags($this->items[$i]->title)),
+                    100
+                )."</title>\n";
+            $feed .= "            <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
+            $feed .= "            <description>".$this->items[$i]->getDescription()."</description>\n";
+
+            $creator = $this->getAuthor($this->items[$i]->author, $this->items[$i]->authorEmail);
+            if ($creator) {
+                $feed .= "            <author>".htmlspecialchars($creator)."</author>\n";
+            }
+
+            /*
+             // on hold
+            if ($this->items[$i]->source!="") {
+            $feed.= "            <source>".htmlspecialchars($this->items[$i]->source)."</source>\n";
+            }
+            */
+            if ($this->items[$i]->lat != "") {
+                $feed .= "            <georss:point>".$this->items[$i]->lat." ".$this->items[$i]->long."</georss:point>\n";
+            }
+            if (is_array($this->items[$i]->category)) {
+                foreach ($this->items[$i]->category as $cat) {
+                    $feed .= "        <category>".htmlspecialchars($cat)."</category>\n";
+                }
+            } else {
+                if ($this->items[$i]->category != "") {
+                    $feed .= "        <category>".htmlspecialchars($this->items[$i]->category)."</category>\n";
+                }
+            }
+            if ($this->items[$i]->comments != "") {
+                $feed .= "            <comments>".htmlspecialchars($this->items[$i]->comments)."</comments>\n";
+            }
+            if ($this->items[$i]->date != "") {
+                $itemDate = new FeedDate($this->items[$i]->date);
+                $feed .= "            <pubDate>".htmlspecialchars($itemDate->rfc822())."</pubDate>\n";
+            }
+            if ($this->items[$i]->guid != "") {
+                $feed .= "            <guid>".htmlspecialchars($this->items[$i]->guid)."</guid>\n";
+            }
+            if ($this->items[$i]->thumb != "") {
+                $feed .= "            <g:image_link>".htmlspecialchars($this->items[$i]->thumb)."</g:image_link>\n";
+            }
+            $feed .= $this->_createAdditionalElements($this->items[$i]->additionalElements, "            ");
+            $feed .= "        </item>\n";
+        }
+        $feed .= "    </channel>\n";
+        $feed .= "</rss>\n";
+
+        return $feed;
+    }
+
+    /**
+     * Compose the RSS-0.91 and RSS-2.0 author field.
+     *
+     * @author Joe Lapp <joe.lapp@pobox.com>
+     */
+    function getAuthor($author, $email)
+    {
+        if ($author && $email) {
+            return $email.' ('.$author.')';
+        }
+
+        return $email;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php b/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
new file mode 100644
index 0000000000000000000000000000000000000000..d9ed1d01dedf2e8d562dc963f4ac645d76596f39
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * RSSCreator10 is a FeedCreator that implements RDF Site Summary (RSS) 1.0.
+ *
+ * @see     http://www.purl.org/rss/1.0/
+ * @since   1.3
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @package de.bitfolge.feedcreator
+ */
+class RSSCreator10 extends FeedCreator
+{
+
+    /** @inheritdoc */
+    public function createFeed()
+    {
+        $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+        $feed .= $this->_createGeneratorComment();
+        if (empty($this->cssStyleSheet)) {
+            $this->cssStyleSheet = "http://www.w3.org/2000/08/w3c-synd/style.css";
+        }
+        $feed .= $this->_createStylesheetReferences();
+        $feed .= "<rdf:RDF\n";
+        $feed .= "    xmlns=\"http://purl.org/rss/1.0/\"\n";
+        $feed .= "    xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n";
+        $feed .= "    xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\"\n";
+        if (!empty($this->items[0]->thumb)) {
+            $feed .= "    xmlns:photo=\"http://www.pheed.com/pheed/\"\n";
+        }
+        if (!empty($this->items[0]->lat)) {
+            $feed .= "    xmlns:georss=\"http://www.georss.org/georss\"\n";
+        }
+        $feed .= "    xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n";
+        $feed .= "    <channel rdf:about=\"".$this->syndicationURL."\">\n";
+        $feed .= "        <title>".htmlspecialchars($this->title)."</title>\n";
+        $feed .= "        <description>".htmlspecialchars($this->description)."</description>\n";
+        $feed .= "        <link>".$this->link."</link>\n";
+        if ($this->image != null) {
+            $feed .= "        <image rdf:resource=\"".$this->image->url."\" />\n";
+        }
+        $now = new FeedDate();
+        $feed .= "       <dc:date>".htmlspecialchars($now->iso8601())."</dc:date>\n";
+        $feed .= "        <items>\n";
+        $feed .= "            <rdf:Seq>\n";
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "                <rdf:li rdf:resource=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n";
+        }
+        $feed .= "            </rdf:Seq>\n";
+        $feed .= "        </items>\n";
+        $feed .= "    </channel>\n";
+        if ($this->image != null) {
+            $feed .= "    <image rdf:about=\"".$this->image->url."\">\n";
+            $feed .= "        <title>".$this->image->title."</title>\n";
+            $feed .= "        <link>".$this->image->link."</link>\n";
+            $feed .= "        <url>".$this->image->url."</url>\n";
+            $feed .= "    </image>\n";
+        }
+        $feed .= $this->_createAdditionalElements($this->additionalElements, "    ");
+
+        for ($i = 0; $i < count($this->items); $i++) {
+            $feed .= "    <item rdf:about=\"".htmlspecialchars($this->items[$i]->link)."\">\n";
+            $feed .= "        <dc:format>text/html</dc:format>\n";
+            if ($this->items[$i]->date != null) {
+                $itemDate = new FeedDate($this->items[$i]->date);
+                $feed .= "        <dc:date>".htmlspecialchars($itemDate->iso8601())."</dc:date>\n";
+            }
+            if ($this->items[$i]->source != "") {
+                $feed .= "        <dc:source>".htmlspecialchars($this->items[$i]->source)."</dc:source>\n";
+            }
+            $creator = $this->getAuthor($this->items[$i]->author, $this->items[$i]->authorEmail);
+            if ($creator) {
+                $feed .= "        <dc:creator>".htmlspecialchars($creator)."</dc:creator>\n";
+            }
+            if ($this->items[$i]->lat != "") {
+                $feed .= "        <georss:point>".$this->items[$i]->lat." ".$this->items[$i]->long."</georss:point>\n";
+            }
+            if ($this->items[$i]->thumb != "") {
+                $feed .= "        <photo:thumbnail>".htmlspecialchars($this->items[$i]->thumb)."</photo:thumbnail>\n";
+            }
+            $feed .= "        <title>".htmlspecialchars(
+                    strip_tags(strtr($this->items[$i]->title, "\n\r", "  "))
+                )."</title>\n";
+            $feed .= "        <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
+            $feed .= "        <description>".htmlspecialchars($this->items[$i]->description)."</description>\n";
+            $feed .= $this->_createAdditionalElements($this->items[$i]->additionalElements, "        ");
+            $feed .= "    </item>\n";
+        }
+        $feed .= "</rdf:RDF>\n";
+
+        return $feed;
+    }
+
+    /**
+     * Compose the RSS-1.0 author field.
+     *
+     * @author Joe Lapp <joe.lapp@pobox.com>
+     * @param string $author
+     * @param string $email
+     * @return string
+     */
+    protected function getAuthor($author, $email)
+    {
+        if ($author) {
+            if ($email) {
+                return $author.' ('.$email.')';
+            }
+
+            return $author;
+        }
+
+        return $email;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php b/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php
new file mode 100644
index 0000000000000000000000000000000000000000..dbc25ab76a92595d619cc3c27afc35d4e12a823a
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * RSSCreator20 is a FeedCreator that implements RDF Site Summary (RSS) 2.0.
+ *
+ * @see     http://backend.userland.com/rss
+ * @since   1.3
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @package de.bitfolge.feedcreator
+ */
+class RSSCreator20 extends RSSCreator091
+{
+
+    /**
+     * RSSCreator20 constructor.
+     */
+    public function __construct()
+    {
+        parent::__construct();
+        parent::_setRSSVersion("2.0");
+    }
+
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php b/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php
new file mode 100644
index 0000000000000000000000000000000000000000..690c65ad6957406006cad1319b42340bcade95c8
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * FeedDate is an internal class that stores a date for a feed or feed item.
+ * Usually, you won't need to use this.
+ *
+ * @package de.bitfolge.feedcreator
+ */
+class FeedDate
+{
+    protected $unix;
+
+    /**
+     * Creates a new instance of FeedDate representing a given date.
+     * Accepts RFC 822, ISO 8601 date formats as well as unix time stamps.
+     *
+     * @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and
+     *                          time is used.
+     */
+    public function __construct($dateString = "")
+    {
+        if ($dateString == "") {
+            $dateString = date("r");
+        }
+
+        if (is_integer($dateString)) {
+            $this->unix = $dateString;
+
+            return;
+        }
+        $tzOffset = 0;
+        if (preg_match(
+            "~(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s+)?(\\d{1,2})\\s+([a-zA-Z]{3})\\s+(\\d{4})\\s+(\\d{2}):(\\d{2}):(\\d{2})\\s+(.*)~",
+            $dateString,
+            $matches
+        )) {
+            $months = Array(
+                "Jan" => 1,
+                "Feb" => 2,
+                "Mar" => 3,
+                "Apr" => 4,
+                "May" => 5,
+                "Jun" => 6,
+                "Jul" => 7,
+                "Aug" => 8,
+                "Sep" => 9,
+                "Oct" => 10,
+                "Nov" => 11,
+                "Dec" => 12,
+            );
+            $this->unix = mktime($matches[4], $matches[5], $matches[6], $months[$matches[2]], $matches[1], $matches[3]);
+            if (substr($matches[7], 0, 1) == '+' OR substr($matches[7], 0, 1) == '-') {
+                $tzOffset = (((int)substr($matches[7], 0, 3) * 60) + (int)substr($matches[7], -2)) * 60;
+            } else {
+                if (strlen($matches[7]) == 1) {
+                    $oneHour = 3600;
+                    $ord = ord($matches[7]);
+                    if ($ord < ord("M")) {
+                        $tzOffset = (ord("A") - $ord - 1) * $oneHour;
+                    } elseif ($ord >= ord("M") AND $matches[7] != "Z") {
+                        $tzOffset = ($ord - ord("M")) * $oneHour;
+                    } elseif ($matches[7] == "Z") {
+                        $tzOffset = 0;
+                    }
+                }
+                switch ($matches[7]) {
+                    case "UT":
+                    case "GMT":
+                        $tzOffset = 0;
+                }
+            }
+            $this->unix += $tzOffset;
+
+            return;
+        }
+        if (preg_match("~(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(.*)~", $dateString, $matches)) {
+            $this->unix = mktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
+            if (substr($matches[7], 0, 1) == '+' OR substr($matches[7], 0, 1) == '-') {
+                $tzOffset = (((int)substr($matches[7], 0, 3) * 60) + (int)substr($matches[7], -2)) * 60;
+            } else {
+                if ($matches[7] == "Z") {
+                    $tzOffset = 0;
+                }
+            }
+            $this->unix += $tzOffset;
+
+            return;
+        }
+        $this->unix = 0;
+    }
+
+    /**
+     * Gets the date stored in this FeedDate as an RFC 822 date.
+     *
+     * @return string a date in RFC 822 format
+     */
+    public function rfc822()
+    {
+        //return gmdate("r",$this->unix);
+        $date = gmdate("D, d M Y H:i:s O", $this->unix);
+
+        return $date;
+    }
+
+    /**
+     * Gets the date stored in this FeedDate as an ISO 8601 date.
+     *
+     * @return string a date in ISO 8601 format
+     */
+    public function iso8601()
+    {
+        $date = gmdate("Y-m-d\TH:i:sO", $this->unix);
+        $date = substr($date, 0, 22).':'.substr($date, -2);
+        if (TIME_ZONE != "") {
+            $date = str_replace("+00:00", TIME_ZONE, $date);
+        }
+
+        return $date;
+    }
+
+    /**
+     * Gets the date stored in this FeedDate as unix time stamp.
+     *
+     * @return int a date as a unix time stamp
+     */
+    public function unix()
+    {
+        return $this->unix;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php b/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
new file mode 100644
index 0000000000000000000000000000000000000000..8979e958fa4658acc8ce86e31b36d79aae5baa58
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * A FeedHtmlField describes and generates
+ * a feed, item or image html field (probably a description). Output is
+ * generated based on $truncSize, $syndicateHtml properties.
+ *
+ * @author  Pascal Van Hecke <feedcreator.class.php@vanhecke.info>
+ * @version 1.6
+ * @package de.bitfolge.feedcreator
+ */
+class FeedHtmlField
+{
+    /**
+     * Mandatory attributes of a FeedHtmlField.
+     */
+    protected $rawFieldContent;
+
+    /**
+     * Optional attributes of a FeedHtmlField.
+     */
+    public $truncSize, $syndicateHtml;
+
+    /**
+     * Creates a new instance of FeedHtmlField.
+     *
+     * @param string $parFieldContent if given, sets the rawFieldContent property
+     */
+    public function __construct($parFieldContent)
+    {
+        if ($parFieldContent) {
+            $this->rawFieldContent = $parFieldContent;
+        }
+    }
+
+    /**
+     * Creates the right output, depending on $truncSize, $syndicateHtml properties.
+     *
+     * @return string the formatted field
+     */
+    public function output()
+    {
+        // when field available and syndicated in html we assume
+        // - valid html in $rawFieldContent and we enclose in CDATA tags
+        // - no truncation (truncating risks producing invalid html)
+        if (!$this->rawFieldContent) {
+            $result = "";
+        } elseif ($this->syndicateHtml) {
+            $result = "<![CDATA[".$this->rawFieldContent."]]>";
+        } else {
+            if ($this->truncSize and is_int($this->truncSize)) {
+                $result = FeedCreator::iTrunc(htmlspecialchars($this->rawFieldContent), $this->truncSize);
+            } else {
+                $result = htmlspecialchars($this->rawFieldContent);
+            }
+        }
+
+        return $result;
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php b/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php
new file mode 100644
index 0000000000000000000000000000000000000000..d525379fa638f39fa701b97c15a62fc1180a612e
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * A FeedImage may be added to a FeedCreator feed.
+ *
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @since   1.3
+ * @package de.bitfolge.feedcreator
+ */
+class FeedImage extends HtmlDescribable
+{
+    /**
+     * Mandatory attributes of an image.
+     */
+    public $title, $url, $link;
+
+    /**
+     * Optional attributes of an image.
+     */
+    public $width, $height, $description;
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php b/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..827768515554dcbe9d8511c7503bf4061fc5a8c4
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * A FeedItem is a part of a FeedCreator feed.
+ *
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @since   1.3
+ * @package de.bitfolge.feedcreator
+ */
+class FeedItem extends HtmlDescribable
+{
+    /**
+     * Mandatory attributes of an item.
+     */
+    public $title, $description, $link;
+
+    /**
+     * Optional attributes of an item.
+     */
+    public $author, $authorEmail, $authorURL, $image, $category, $categoryScheme, $comments, $guid, $source, $creator, $contributor, $lat, $long, $thumb;
+
+    /**
+     * Publishing date of an item. May be in one of the following formats:
+     *    RFC 822:
+     *    "Mon, 20 Jan 03 18:05:41 +0400"
+     *    "20 Jan 03 18:05:41 +0000"
+     *    ISO 8601:
+     *    "2003-01-20T18:05:41+04:00"
+     *    Unix:
+     *    1043082341
+     */
+    public $date;
+
+    /**
+     * Add <enclosure> element tag RSS 2.0, supported by ATOM 1.0 too
+     * modified by : Mohammad Hafiz bin Ismail (mypapit@gmail.com)
+     * display :
+     * <enclosure length="17691" url="http://something.com/picture.jpg" type="image/jpeg" />
+     */
+    public $enclosure;
+
+    /**
+     * Any additional elements to include as an associated array. All $key => $value pairs
+     * will be included unencoded in the feed item in the form
+     *     <$key>$value</$key>
+     * Again: No encoding will be used! This means you can invalidate or enhance the feed
+     * if $value contains markup. This may be abused to embed tags not implemented by
+     * the FeedCreator class used.
+     */
+    public $additionalElements = Array();
+
+    // on hold
+    // var $source;
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php b/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php
new file mode 100644
index 0000000000000000000000000000000000000000..0fce11f76c02af578c2c9659b580d60124c3565b
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * An HtmlDescribable is an item within a feed that can have a description that may
+ * include HTML markup.
+ *
+ * @package de.bitfolge.feedcreator
+ */
+class HtmlDescribable
+{
+    /**
+     * Indicates whether the description field should be rendered in HTML.
+     */
+    public $descriptionHtmlSyndicated;
+
+    /**
+     * Indicates whether and to how many characters a description should be truncated.
+     */
+    public $descriptionTruncSize;
+
+    /** @var string the Description */
+    public $description;
+
+    /**
+     * Returns a formatted description field, depending on descriptionHtmlSyndicated and
+     * $descriptionTruncSize properties
+     *
+     * @param bool $overrideSyndicateHtml
+     * @return string the formatted description
+     */
+    public function getDescription($overrideSyndicateHtml = false)
+    {
+        $descriptionField = new FeedHtmlField($this->description);
+        $descriptionField->syndicateHtml = $overrideSyndicateHtml || $this->descriptionHtmlSyndicated;
+        $descriptionField->truncSize = $this->descriptionTruncSize;
+
+        return $descriptionField->output();
+    }
+}
diff --git a/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php b/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php
new file mode 100644
index 0000000000000000000000000000000000000000..7804e73eed63b2ca6b314675e1b7d3cdec1a93fb
--- /dev/null
+++ b/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php
@@ -0,0 +1,171 @@
+<?php
+// your local timezone, set to "" to disable or for GMT
+if (!defined('TIME_ZONE')) {
+    define("TIME_ZONE", date("O", time()));
+}
+
+/**
+ * Version string.
+ */
+define("FEEDCREATOR_VERSION", "FeedCreator 1.8");
+
+/**
+ * UniversalFeedCreator lets you choose during runtime which
+ * format to build.
+ * For general usage of a feed class, see the FeedCreator class
+ * below or the example above.
+ *
+ * @since   1.3
+ * @author  Kai Blankenhorn <kaib@bitfolge.de>
+ * @package de.bitfolge.feedcreator
+ */
+class UniversalFeedCreator extends FeedCreator
+{
+    /** @var FeedCreator */
+    protected $_feed;
+
+    /**
+     * @param string $format
+     */
+    protected function _setFormat($format)
+    {
+        switch (strtoupper($format)) {
+
+            case "BASE":
+                $this->format = $format;
+            case "2.0":
+                // fall through
+            case "RSS2.0":
+                $this->_feed = new RSSCreator20();
+                break;
+
+            case "GEOPHOTORSS":
+            case "PHOTORSS":
+            case "GEORSS":
+                $this->format = $format;
+            case "1.0":
+                // fall through
+            case "RSS1.0":
+                $this->_feed = new RSSCreator10();
+                break;
+
+            case "0.91":
+                // fall through
+            case "RSS0.91":
+                $this->_feed = new RSSCreator091();
+                break;
+
+            case "PIE0.1":
+                $this->_feed = new PIECreator01();
+                break;
+
+            case "MBOX":
+                $this->_feed = new MBOXCreator();
+                break;
+
+            case "OPML":
+                $this->_feed = new OPMLCreator();
+                break;
+
+            case "TOOLBAR":
+                $this->format = $format;
+
+            case "ATOM":
+                // fall through: always the latest ATOM version
+            case "ATOM1.0":
+                $this->_feed = new AtomCreator10();
+                break;
+
+            case "ATOM0.3":
+                $this->_feed = new AtomCreator03();
+                break;
+
+            case "HTML":
+                $this->_feed = new HTMLCreator();
+                break;
+
+            case "PHP":
+                $this->_feed = new PHPCreator();
+                break;
+            case "GPX":
+                $this->_feed = new GPXCreator();
+                break;
+            case "KML":
+                $this->_feed = new KMLCreator();
+                break;
+            case "JS":
+                // fall through
+            case "JAVASCRIPT":
+                $this->_feed = new JSCreator();
+                break;
+
+            default:
+                $this->_feed = new RSSCreator091();
+                break;
+        }
+
+        $vars = get_object_vars($this);
+        foreach ($vars as $key => $value) {
+            // prevent overwriting of properties "contentType", "encoding"; do not copy "_feed" itself
+            if (!in_array($key, array("_feed", "contentType", "encoding"))) {
+                $this->_feed->{$key} = $this->{$key};
+            }
+        }
+    }
+
+    /**
+     * Creates a syndication feed based on the items previously added.
+     *
+     * @see FeedCreator::addItem()
+     * @param string $format format the feed should comply to. Valid values are:
+     *                       "PIE0.1", "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3", "HTML", "JS"
+     * @return string the contents of the feed.
+     */
+    public function createFeed($format = "RSS0.91")
+    {
+        $this->_setFormat($format);
+
+        return $this->_feed->createFeed();
+    }
+
+    /**
+     * Saves this feed as a file on the local disk. After the file is saved, an HTTP redirect
+     * header may be sent to redirect the use to the newly created file.
+     *
+     * @since 1.4
+     * @param string $format           format the feed should comply to. Valid values are:
+     *                                 "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM",
+     *                                 "ATOM0.3", "HTML", "JS"
+     * @param string $filename         optional    the filename where a recent version of the feed is saved. If not
+     *                                 specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to
+     *                                 .xml (see _generateFilename()).
+     * @param boolean $displayContents optional    send the content of the file or not. If true, the file will be sent
+     *                                 in the body of the response.
+     */
+    public function saveFeed($format = "RSS0.91", $filename = "", $displayContents = true)
+    {
+        $this->_setFormat($format);
+        $this->_feed->saveFeed($filename, $displayContents);
+    }
+
+    /**
+     * Turns on caching and checks if there is a recent version of this feed in the cache.
+     * If there is, an HTTP redirect header is sent.
+     * To effectively use caching, you should create the FeedCreator object and call this method
+     * before anything else, especially before you do the time consuming task to build the feed
+     * (web fetching, for example).
+     *
+     * @param string $format   format the feed should comply to. Valid values are:
+     *                         "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3".
+     * @param string $filename optional the filename where a recent version of the feed is saved. If not specified, the
+     *                         filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see
+     *                         _generateFilename()).
+     * @param int $timeout     optional the timeout in seconds before a cached version is refreshed (defaults to 3600 =
+     *                         1 hour)
+     */
+    public function useCached($format = "RSS0.91", $filename = "", $timeout = 3600)
+    {
+        $this->_setFormat($format);
+        $this->_feed->useCached($filename, $timeout);
+    }
+}
diff --git a/vendor/paragonie/random_compat/composer.json b/vendor/paragonie/random_compat/composer.json
index d363f4c8cb6db506a2f1dcd22e052b48fe964f5b..1c5978c6fbce9c3466a223748b85bc05a9682221 100644
--- a/vendor/paragonie/random_compat/composer.json
+++ b/vendor/paragonie/random_compat/composer.json
@@ -1,35 +1,37 @@
 {
-    "name":         "paragonie/random_compat",
-    "description":  "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
-    "keywords": [
-            "csprng",
-            "random",
-            "pseudorandom"
-        ],
-    "license":      "MIT",
-    "type":         "library",
-    "authors": [
-            {
-                "name":     "Paragon Initiative Enterprises",
-                "email":    "security@paragonie.com",
-                "homepage": "https://paragonie.com"
-            }
-        ],
-    "support": {
-        "issues":   "https://github.com/paragonie/random_compat/issues",
-        "email":    "info@paragonie.com",
-        "source":   "https://github.com/paragonie/random_compat"
-    },
-    "require": {
-        "php": ">=5.2.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "4.*|5.*"
-    },
-    "suggest": {
-        "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
-    },
-    "autoload": {
-        "files": ["lib/random.php"]
+  "name":         "paragonie/random_compat",
+  "description":  "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+  "keywords": [
+    "csprng",
+    "random",
+    "pseudorandom"
+  ],
+  "license":      "MIT",
+  "type":         "library",
+  "authors": [
+    {
+      "name":     "Paragon Initiative Enterprises",
+      "email":    "security@paragonie.com",
+      "homepage": "https://paragonie.com"
     }
+  ],
+  "support": {
+    "issues":     "https://github.com/paragonie/random_compat/issues",
+    "email":      "info@paragonie.com",
+    "source":     "https://github.com/paragonie/random_compat"
+  },
+  "require": {
+    "php": ">=5.2.0"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "4.*|5.*"
+  },
+  "suggest": {
+    "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+  },
+  "autoload": {
+    "files": [
+      "lib/random.php"
+    ]
+  }
 }
diff --git a/vendor/paragonie/random_compat/lib/byte_safe_strings.php b/vendor/paragonie/random_compat/lib/byte_safe_strings.php
index dd03690c5469c53d0376b48c27a6dbeecadf87a9..3de86b223c5b130016dee7b84055d8a0f890ca7a 100644
--- a/vendor/paragonie/random_compat/lib/byte_safe_strings.php
+++ b/vendor/paragonie/random_compat/lib/byte_safe_strings.php
@@ -5,7 +5,7 @@
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -51,7 +51,7 @@ if (!is_callable('RandomCompat_strlen')) {
                 );
             }
 
-            return mb_strlen($binary_string, '8bit');
+            return (int) mb_strlen($binary_string, '8bit');
         }
 
     } else {
@@ -73,7 +73,7 @@ if (!is_callable('RandomCompat_strlen')) {
                     'RandomCompat_strlen() expects a string'
                 );
             }
-            return strlen($binary_string);
+            return (int) strlen($binary_string);
         }
     }
 }
@@ -118,7 +118,7 @@ if (!is_callable('RandomCompat_substr')) {
                  * mb_substr($str, 0, NULL, '8bit') returns an empty string on
                  * PHP 5.3, so we have to find the length ourselves.
                  */
-                $length = RandomCompat_strlen($length) - $start;
+                $length = RandomCompat_strlen($binary_string) - $start;
             } elseif (!is_int($length)) {
                 throw new TypeError(
                     'RandomCompat_substr(): Third argument should be an integer, or omitted'
@@ -130,10 +130,10 @@ if (!is_callable('RandomCompat_substr')) {
                 return '';
             }
             if ($start > RandomCompat_strlen($binary_string)) {
-                return false;
+                return '';
             }
 
-            return mb_substr($binary_string, $start, $length, '8bit');
+            return (string) mb_substr($binary_string, $start, $length, '8bit');
         }
 
     } else {
@@ -172,10 +172,10 @@ if (!is_callable('RandomCompat_substr')) {
                     );
                 }
 
-                return substr($binary_string, $start, $length);
+                return (string) substr($binary_string, $start, $length);
             }
 
-            return substr($binary_string, $start);
+            return (string) substr($binary_string, $start);
         }
     }
 }
diff --git a/vendor/paragonie/random_compat/lib/cast_to_int.php b/vendor/paragonie/random_compat/lib/cast_to_int.php
index 65e9d2184b8c8806e95077df54fffffb1eb1a46d..be7388dfd3b801d8e2ac16c5c495e43cd37fabf9 100644
--- a/vendor/paragonie/random_compat/lib/cast_to_int.php
+++ b/vendor/paragonie/random_compat/lib/cast_to_int.php
@@ -5,7 +5,7 @@
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -40,13 +40,15 @@ if (!is_callable('RandomCompat_intval')) {
      * @param int|float $number    The number we want to convert to an int
      * @param boolean   $fail_open Set to true to not throw an exception
      * 
-     * @return int (or float if $fail_open)
+     * @return float|int
      *
      * @throws TypeError
      */
     function RandomCompat_intval($number, $fail_open = false)
     {
-        if (is_numeric($number)) {
+        if (is_int($number) || is_float($number)) {
+            $number += 0;
+        } elseif (is_numeric($number)) {
             $number += 0;
         }
 
@@ -60,12 +62,13 @@ if (!is_callable('RandomCompat_intval')) {
             $number = (int) $number;
         }
 
-        if (is_int($number) || $fail_open) {
-            return $number;
+        if (is_int($number)) {
+            return (int) $number;
+        } elseif (!$fail_open) {
+            throw new TypeError(
+                'Expected an integer.'
+            );
         }
-
-        throw new TypeError(
-            'Expected an integer.'
-        );
+        return $number;
     }
 }
diff --git a/vendor/paragonie/random_compat/lib/error_polyfill.php b/vendor/paragonie/random_compat/lib/error_polyfill.php
index 69ee3794d9e6d5e767604a8dc674048344b98179..6a91990ce6b7c13e98826257a31eb113ce7c5afc 100644
--- a/vendor/paragonie/random_compat/lib/error_polyfill.php
+++ b/vendor/paragonie/random_compat/lib/error_polyfill.php
@@ -5,7 +5,7 @@
  * 
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/paragonie/random_compat/lib/random.php b/vendor/paragonie/random_compat/lib/random.php
index 5a451da732d17d99bb58f9fa33277e372006dea9..df74c8a4b624fa410ec45c5e8f1678cdc73f33a0 100644
--- a/vendor/paragonie/random_compat/lib/random.php
+++ b/vendor/paragonie/random_compat/lib/random.php
@@ -3,12 +3,12 @@
  * Random_* Compatibility Library
  * for using the new PHP 7 random_* API in PHP 5 projects
  *
- * @version 2.0.4
- * @released 2016-11-07
+ * @version 2.0.10
+ * @released 2017-03-13
  *
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -44,172 +44,180 @@ if (!defined('PHP_VERSION_ID')) {
 /**
  * PHP 7.0.0 and newer have these functions natively.
  */
-if (PHP_VERSION_ID < 70000) {
-    if (!defined('RANDOM_COMPAT_READ_BUFFER')) {
-        define('RANDOM_COMPAT_READ_BUFFER', 8);
-    }
+if (PHP_VERSION_ID >= 70000) {
+    return;
+}
 
-    $RandomCompatDIR = dirname(__FILE__);
+if (!defined('RANDOM_COMPAT_READ_BUFFER')) {
+    define('RANDOM_COMPAT_READ_BUFFER', 8);
+}
 
-    require_once $RandomCompatDIR.'/byte_safe_strings.php';
-    require_once $RandomCompatDIR.'/cast_to_int.php';
-    require_once $RandomCompatDIR.'/error_polyfill.php';
+$RandomCompatDIR = dirname(__FILE__);
 
-    if (!is_callable('random_bytes')) {
-        /**
-         * PHP 5.2.0 - 5.6.x way to implement random_bytes()
-         *
-         * We use conditional statements here to define the function in accordance
-         * to the operating environment. It's a micro-optimization.
-         *
-         * In order of preference:
-         *   1. Use libsodium if available.
-         *   2. fread() /dev/urandom if available (never on Windows)
-         *   3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)
-         *   4. COM('CAPICOM.Utilities.1')->GetRandom()
-         *   5. openssl_random_pseudo_bytes() (absolute last resort)
-         *
-         * See RATIONALE.md for our reasoning behind this particular order
-         */
-        if (extension_loaded('libsodium')) {
-            // See random_bytes_libsodium.php
-            if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) {
-                require_once $RandomCompatDIR.'/random_bytes_libsodium.php';
-            } elseif (method_exists('Sodium', 'randombytes_buf')) {
-                require_once $RandomCompatDIR.'/random_bytes_libsodium_legacy.php';
-            }
+require_once $RandomCompatDIR . '/byte_safe_strings.php';
+require_once $RandomCompatDIR . '/cast_to_int.php';
+require_once $RandomCompatDIR . '/error_polyfill.php';
+
+if (!is_callable('random_bytes')) {
+    /**
+     * PHP 5.2.0 - 5.6.x way to implement random_bytes()
+     *
+     * We use conditional statements here to define the function in accordance
+     * to the operating environment. It's a micro-optimization.
+     *
+     * In order of preference:
+     *   1. Use libsodium if available.
+     *   2. fread() /dev/urandom if available (never on Windows)
+     *   3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)
+     *   4. COM('CAPICOM.Utilities.1')->GetRandom()
+     *
+     * See RATIONALE.md for our reasoning behind this particular order
+     */
+    if (extension_loaded('libsodium')) {
+        // See random_bytes_libsodium.php
+        if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) {
+            require_once $RandomCompatDIR . '/random_bytes_libsodium.php';
+        } elseif (method_exists('Sodium', 'randombytes_buf')) {
+            require_once $RandomCompatDIR . '/random_bytes_libsodium_legacy.php';
         }
+    }
 
-        /**
-         * Reading directly from /dev/urandom:
-         */
-        if (DIRECTORY_SEPARATOR === '/') {
-            // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast
-            // way to exclude Windows.
-            $RandomCompatUrandom = true;
-            $RandomCompat_basedir = ini_get('open_basedir');
-
-            if (!empty($RandomCompat_basedir)) {
-                $RandomCompat_open_basedir = explode(
-                    PATH_SEPARATOR,
-                    strtolower($RandomCompat_basedir)
-                );
-                $RandomCompatUrandom = (array() !== array_intersect(
-                    array('/dev', '/dev/', '/dev/urandom'),
-                    $RandomCompat_open_basedir
-                ));
-                $RandomCompat_open_basedir = null;
-            }
+    /**
+     * Reading directly from /dev/urandom:
+     */
+    if (DIRECTORY_SEPARATOR === '/') {
+        // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast
+        // way to exclude Windows.
+        $RandomCompatUrandom = true;
+        $RandomCompat_basedir = ini_get('open_basedir');
 
-            if (
-                !is_callable('random_bytes')
-                &&
-                $RandomCompatUrandom
-                &&
-                @is_readable('/dev/urandom')
-            ) {
-                // Error suppression on is_readable() in case of an open_basedir
-                // or safe_mode failure. All we care about is whether or not we
-                // can read it at this point. If the PHP environment is going to
-                // panic over trying to see if the file can be read in the first
-                // place, that is not helpful to us here.
-
-                // See random_bytes_dev_urandom.php
-                require_once $RandomCompatDIR.'/random_bytes_dev_urandom.php';
-            }
-            // Unset variables after use
-            $RandomCompat_basedir = null;
-        } else {
-            $RandomCompatUrandom = false;
+        if (!empty($RandomCompat_basedir)) {
+            $RandomCompat_open_basedir = explode(
+                PATH_SEPARATOR,
+                strtolower($RandomCompat_basedir)
+            );
+            $RandomCompatUrandom = (array() !== array_intersect(
+                array('/dev', '/dev/', '/dev/urandom'),
+                $RandomCompat_open_basedir
+            ));
+            $RandomCompat_open_basedir = null;
         }
 
-        /**
-         * mcrypt_create_iv()
-         *
-         * We only want to use mcypt_create_iv() if:
-         *
-         * - random_bytes() hasn't already been defined
-         * - PHP >= 5.3.7
-         * - the mcrypt extensions is loaded
-         * - One of these two conditions is true:
-         *   - We're on Windows (DIRECTORY_SEPARATOR !== '/')
-         *   - We're not on Windows and /dev/urandom is readabale
-         *     (i.e. we're not in a chroot jail)
-         * - Special case:
-         *   - If we're not on Windows, but the PHP version is between
-         *     5.6.10 and 5.6.12, we don't want to use mcrypt. It will
-         *     hang indefinitely. This is bad.
-         */
         if (
             !is_callable('random_bytes')
             &&
-            PHP_VERSION_ID >= 50307
+            $RandomCompatUrandom
             &&
-            extension_loaded('mcrypt')
+            @is_readable('/dev/urandom')
         ) {
-            // Prevent this code from hanging indefinitely on non-Windows;
-            // see https://bugs.php.net/bug.php?id=69833
-            if (
-                DIRECTORY_SEPARATOR !== '/' || 
-                (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613)
-            ) {
-                // See random_bytes_mcrypt.php
-                require_once $RandomCompatDIR.'/random_bytes_mcrypt.php';
-            }
+            // Error suppression on is_readable() in case of an open_basedir
+            // or safe_mode failure. All we care about is whether or not we
+            // can read it at this point. If the PHP environment is going to
+            // panic over trying to see if the file can be read in the first
+            // place, that is not helpful to us here.
+
+            // See random_bytes_dev_urandom.php
+            require_once $RandomCompatDIR . '/random_bytes_dev_urandom.php';
         }
-        $RandomCompatUrandom = null;
+        // Unset variables after use
+        $RandomCompat_basedir = null;
+    } else {
+        $RandomCompatUrandom = false;
+    }
 
-        /**
-         * This is a Windows-specific fallback, for when the mcrypt extension
-         * isn't loaded.
-         */
-        if (
-            !is_callable('random_bytes')
-            &&
-            extension_loaded('com_dotnet')
-            &&
-            class_exists('COM')
-        ) {
-            $RandomCompat_disabled_classes = preg_split(
-                '#\s*,\s*#',
-                strtolower(ini_get('disable_classes'))
-            );
+    /**
+     * mcrypt_create_iv()
+     *
+     * We only want to use mcypt_create_iv() if:
+     *
+     * - random_bytes() hasn't already been defined
+     * - the mcrypt extensions is loaded
+     * - One of these two conditions is true:
+     *   - We're on Windows (DIRECTORY_SEPARATOR !== '/')
+     *   - We're not on Windows and /dev/urandom is readabale
+     *     (i.e. we're not in a chroot jail)
+     * - Special case:
+     *   - If we're not on Windows, but the PHP version is between
+     *     5.6.10 and 5.6.12, we don't want to use mcrypt. It will
+     *     hang indefinitely. This is bad.
+     *   - If we're on Windows, we want to use PHP >= 5.3.7 or else
+     *     we get insufficient entropy errors.
+     */
+    if (
+        !is_callable('random_bytes')
+        &&
+        // Windows on PHP < 5.3.7 is broken, but non-Windows is not known to be.
+        (DIRECTORY_SEPARATOR === '/' || PHP_VERSION_ID >= 50307)
+        &&
+        // Prevent this code from hanging indefinitely on non-Windows;
+        // see https://bugs.php.net/bug.php?id=69833
+        (
+            DIRECTORY_SEPARATOR !== '/' ||
+            (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613)
+        )
+        &&
+        extension_loaded('mcrypt')
+    ) {
+        // See random_bytes_mcrypt.php
+        require_once $RandomCompatDIR . '/random_bytes_mcrypt.php';
+    }
+    $RandomCompatUrandom = null;
 
-            if (!in_array('com', $RandomCompat_disabled_classes)) {
-                try {
-                    $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1');
-                    if (method_exists($RandomCompatCOMtest, 'GetRandom')) {
-                        // See random_bytes_com_dotnet.php
-                        require_once $RandomCompatDIR.'/random_bytes_com_dotnet.php';
-                    }
-                } catch (com_exception $e) {
-                    // Don't try to use it.
+    /**
+     * This is a Windows-specific fallback, for when the mcrypt extension
+     * isn't loaded.
+     */
+    if (
+        !is_callable('random_bytes')
+        &&
+        extension_loaded('com_dotnet')
+        &&
+        class_exists('COM')
+    ) {
+        $RandomCompat_disabled_classes = preg_split(
+            '#\s*,\s*#',
+            strtolower(ini_get('disable_classes'))
+        );
+
+        if (!in_array('com', $RandomCompat_disabled_classes)) {
+            try {
+                $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1');
+                if (method_exists($RandomCompatCOMtest, 'GetRandom')) {
+                    // See random_bytes_com_dotnet.php
+                    require_once $RandomCompatDIR . '/random_bytes_com_dotnet.php';
                 }
+            } catch (com_exception $e) {
+                // Don't try to use it.
             }
-            $RandomCompat_disabled_classes = null;
-            $RandomCompatCOMtest = null;
         }
+        $RandomCompat_disabled_classes = null;
+        $RandomCompatCOMtest = null;
+    }
 
+    /**
+     * throw new Exception
+     */
+    if (!is_callable('random_bytes')) {
         /**
-         * throw new Exception
+         * We don't have any more options, so let's throw an exception right now
+         * and hope the developer won't let it fail silently.
+         *
+         * @param mixed $length
+         * @return void
+         * @throws Exception
          */
-        if (!is_callable('random_bytes')) {
-            /**
-             * We don't have any more options, so let's throw an exception right now
-             * and hope the developer won't let it fail silently.
-             */
-            function random_bytes($length)
-            {
-                throw new Exception(
-                    'There is no suitable CSPRNG installed on your system'
-                );
-            }
+        function random_bytes($length)
+        {
+            unset($length); // Suppress "variable not used" warnings.
+            throw new Exception(
+                'There is no suitable CSPRNG installed on your system'
+            );
         }
     }
+}
 
-    if (!is_callable('random_int')) {
-        require_once $RandomCompatDIR.'/random_int.php';
-    }
-
-    $RandomCompatDIR = null;
+if (!is_callable('random_int')) {
+    require_once $RandomCompatDIR . '/random_int.php';
 }
+
+$RandomCompatDIR = null;
diff --git a/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php b/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
index f068b6c0a0f19bac50a7e9c471de19f9f6b1d809..fc1926e5cac064e4f8d6190338ea3857cffa0cdf 100644
--- a/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
@@ -5,7 +5,7 @@
  * 
  * The MIT License (MIT)
  * 
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -55,6 +55,11 @@ if (!is_callable('random_bytes')) {
         }
 
         $buf = '';
+        if (!class_exists('COM')) {
+            throw new Error(
+                'COM does not exist'
+            );
+        }
         $util = new COM('CAPICOM.Utilities.1');
         $execCount = 0;
 
diff --git a/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php b/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
index aaccd5adfa2c82828f475c2a135e98976d6cc3fa..df5b91524e893831af5598318e89cd8ee0c5876f 100644
--- a/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
@@ -5,7 +5,7 @@
  * 
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -104,33 +104,50 @@ if (!is_callable('random_bytes')) {
          * page load.
          */
         if (!empty($fp)) {
+            /**
+             * @var int
+             */
             $remaining = $bytes;
+
+            /**
+             * @var string|bool
+             */
             $buf = '';
 
             /**
              * We use fread() in a loop to protect against partial reads
              */
             do {
+                /**
+                 * @var string|bool
+                 */
                 $read = fread($fp, $remaining);
-                if ($read === false) {
-                    /**
-                     * We cannot safely read from the file. Exit the
-                     * do-while loop and trigger the exception condition
-                     */
-                    $buf = false;
-                    break;
+                if (!is_string($read)) {
+                    if ($read === false) {
+                        /**
+                         * We cannot safely read from the file. Exit the
+                         * do-while loop and trigger the exception condition
+                         *
+                         * @var string|bool
+                         */
+                        $buf = false;
+                        break;
+                    }
                 }
                 /**
                  * Decrease the number of bytes returned from remaining
                  */
                 $remaining -= RandomCompat_strlen($read);
-                $buf .= $read;
+                /**
+                 * @var string|bool
+                 */
+                $buf = $buf . $read;
             } while ($remaining > 0);
 
             /**
              * Is our result valid?
              */
-            if ($buf !== false) {
+            if (is_string($buf)) {
                 if (RandomCompat_strlen($buf) === $bytes) {
                     /**
                      * Return our random entropy buffer here:
diff --git a/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php b/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
index 025b90076289b4e0d3cba2a243ddb15c456c5ea3..4af1a242279f7e2f759f13e4d45336d1e2889b9c 100644
--- a/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
@@ -5,7 +5,7 @@
  * 
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php b/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
index f8d6a7fc0abe11593c121efc2e6401ce3c2fd23e..02160b91924efb19868fa2f7fc6af64b91ee7565 100644
--- a/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
@@ -5,7 +5,7 @@
  * 
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -56,12 +56,16 @@ if (!is_callable('random_bytes')) {
             );
         }
 
+        /**
+         * @var string
+         */
+        $buf = '';
+
         /**
          * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
          * generated in one invocation.
          */
         if ($bytes > 2147483647) {
-            $buf = '';
             for ($i = 0; $i < $bytes; $i += 1073741824) {
                 $n = ($bytes - $i) > 1073741824
                     ? 1073741824
@@ -69,10 +73,10 @@ if (!is_callable('random_bytes')) {
                 $buf .= Sodium::randombytes_buf($n);
             }
         } else {
-            $buf = Sodium::randombytes_buf($bytes);
+            $buf .= Sodium::randombytes_buf($bytes);
         }
 
-        if ($buf !== false) {
+        if (is_string($buf)) {
             if (RandomCompat_strlen($buf) === $bytes) {
                 return $buf;
             }
diff --git a/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php b/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
index f18736dc9206a23115a3d6080763ccacf0e5e622..aac9c013d4d71037eca77fce585efad4e14d84dc 100644
--- a/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
+++ b/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
@@ -5,7 +5,7 @@
  * 
  * The MIT License (MIT)
  *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
+ * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
diff --git a/vendor/paragonie/random_compat/lib/random_int.php b/vendor/paragonie/random_compat/lib/random_int.php
index ce0ccbd3ebba9df61e024083c2ef0c0aa656516f..b2ea02d17c5f820ecde415875a16904d5c8007c2 100644
--- a/vendor/paragonie/random_compat/lib/random_int.php
+++ b/vendor/paragonie/random_compat/lib/random_int.php
@@ -1,191 +1,190 @@
 <?php
-/**
- * Random_* Compatibility Library 
- * for using the new PHP 7 random_* API in PHP 5 projects
- * 
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 - 2016 Paragon Initiative Enterprises
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/**
- * Fetch a random integer between $min and $max inclusive
- * 
- * @param int $min
- * @param int $max
- * 
- * @throws Exception
- * 
- * @return int
- */
-function random_int($min, $max)
-{
-    /**
-     * Type and input logic checks
-     * 
-     * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
-     * (non-inclusive), it will sanely cast it to an int. If you it's equal to
-     * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats 
-     * lose precision, so the <= and => operators might accidentally let a float
-     * through.
-     */
-    
-    try {
-        $min = RandomCompat_intval($min);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_int(): $min must be an integer'
-        );
-    }
 
-    try {
-        $max = RandomCompat_intval($max);
-    } catch (TypeError $ex) {
-        throw new TypeError(
-            'random_int(): $max must be an integer'
-        );
-    }
-    
+if (!is_callable('random_int')) {
     /**
-     * Now that we've verified our weak typing system has given us an integer,
-     * let's validate the logic then we can move forward with generating random
-     * integers along a given range.
+     * Random_* Compatibility Library
+     * for using the new PHP 7 random_* API in PHP 5 projects
+     *
+     * The MIT License (MIT)
+     *
+     * Copyright (c) 2015 - 2017 Paragon Initiative Enterprises
+     *
+     * Permission is hereby granted, free of charge, to any person obtaining a copy
+     * of this software and associated documentation files (the "Software"), to deal
+     * in the Software without restriction, including without limitation the rights
+     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+     * copies of the Software, and to permit persons to whom the Software is
+     * furnished to do so, subject to the following conditions:
+     *
+     * The above copyright notice and this permission notice shall be included in
+     * all copies or substantial portions of the Software.
+     *
+     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+     * SOFTWARE.
      */
-    if ($min > $max) {
-        throw new Error(
-            'Minimum value must be less than or equal to the maximum value'
-        );
-    }
-
-    if ($max === $min) {
-        return $min;
-    }
 
     /**
-     * Initialize variables to 0
-     * 
-     * We want to store:
-     * $bytes => the number of random bytes we need
-     * $mask => an integer bitmask (for use with the &) operator
-     *          so we can minimize the number of discards
+     * Fetch a random integer between $min and $max inclusive
+     *
+     * @param int $min
+     * @param int $max
+     *
+     * @throws Exception
+     *
+     * @return int
      */
-    $attempts = $bits = $bytes = $mask = $valueShift = 0;
-
-    /**
-     * At this point, $range is a positive number greater than 0. It might
-     * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to
-     * a float and we will lose some precision.
-     */
-    $range = $max - $min;
-
-    /**
-     * Test for integer overflow:
-     */
-    if (!is_int($range)) {
-
+    function random_int($min, $max)
+    {
         /**
-         * Still safely calculate wider ranges.
-         * Provided by @CodesInChaos, @oittaa
-         * 
-         * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435
-         * 
-         * We use ~0 as a mask in this case because it generates all 1s
-         * 
-         * @ref https://eval.in/400356 (32-bit)
-         * @ref http://3v4l.org/XX9r5  (64-bit)
+         * Type and input logic checks
+         *
+         * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
+         * (non-inclusive), it will sanely cast it to an int. If you it's equal to
+         * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
+         * lose precision, so the <= and => operators might accidentally let a float
+         * through.
          */
-        $bytes = PHP_INT_SIZE;
-        $mask = ~0;
 
-    } else {
+        try {
+            $min = RandomCompat_intval($min);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_int(): $min must be an integer'
+            );
+        }
 
-        /**
-         * $bits is effectively ceil(log($range, 2)) without dealing with 
-         * type juggling
-         */
-        while ($range > 0) {
-            if ($bits % 8 === 0) {
-               ++$bytes;
-            }
-            ++$bits;
-            $range >>= 1;
-            $mask = $mask << 1 | 1;
+        try {
+            $max = RandomCompat_intval($max);
+        } catch (TypeError $ex) {
+            throw new TypeError(
+                'random_int(): $max must be an integer'
+            );
         }
-        $valueShift = $min;
-    }
 
-    /**
-     * Now that we have our parameters set up, let's begin generating
-     * random integers until one falls between $min and $max
-     */
-    do {
         /**
-         * The rejection probability is at most 0.5, so this corresponds
-         * to a failure probability of 2^-128 for a working RNG
+         * Now that we've verified our weak typing system has given us an integer,
+         * let's validate the logic then we can move forward with generating random
+         * integers along a given range.
          */
-        if ($attempts > 128) {
-            throw new Exception(
-                'random_int: RNG is broken - too many rejections'
+        if ($min > $max) {
+            throw new Error(
+                'Minimum value must be less than or equal to the maximum value'
             );
         }
 
+        if ($max === $min) {
+            return $min;
+        }
+
         /**
-         * Let's grab the necessary number of random bytes
+         * Initialize variables to 0
+         *
+         * We want to store:
+         * $bytes => the number of random bytes we need
+         * $mask => an integer bitmask (for use with the &) operator
+         *          so we can minimize the number of discards
          */
-        $randomByteString = random_bytes($bytes);
-        if ($randomByteString === false) {
-            throw new Exception(
-                'Random number generator failure'
-            );
-        }
+        $attempts = $bits = $bytes = $mask = $valueShift = 0;
 
         /**
-         * Let's turn $randomByteString into an integer
-         * 
-         * This uses bitwise operators (<< and |) to build an integer
-         * out of the values extracted from ord()
-         * 
-         * Example: [9F] | [6D] | [32] | [0C] =>
-         *   159 + 27904 + 3276800 + 201326592 =>
-         *   204631455
+         * At this point, $range is a positive number greater than 0. It might
+         * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to
+         * a float and we will lose some precision.
          */
-        $val = 0;
-        for ($i = 0; $i < $bytes; ++$i) {
-            $val |= ord($randomByteString[$i]) << ($i * 8);
-        }
+        $range = $max - $min;
 
         /**
-         * Apply mask
+         * Test for integer overflow:
          */
-        $val &= $mask;
-        $val += $valueShift;
+        if (!is_int($range)) {
+
+            /**
+             * Still safely calculate wider ranges.
+             * Provided by @CodesInChaos, @oittaa
+             *
+             * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435
+             *
+             * We use ~0 as a mask in this case because it generates all 1s
+             *
+             * @ref https://eval.in/400356 (32-bit)
+             * @ref http://3v4l.org/XX9r5  (64-bit)
+             */
+            $bytes = PHP_INT_SIZE;
+            $mask = ~0;
 
-        ++$attempts;
+        } else {
+
+            /**
+             * $bits is effectively ceil(log($range, 2)) without dealing with
+             * type juggling
+             */
+            while ($range > 0) {
+                if ($bits % 8 === 0) {
+                    ++$bytes;
+                }
+                ++$bits;
+                $range >>= 1;
+                $mask = $mask << 1 | 1;
+            }
+            $valueShift = $min;
+        }
+
+        $val = 0;
         /**
-         * If $val overflows to a floating point number,
-         * ... or is larger than $max,
-         * ... or smaller than $min,
-         * then try again.
+         * Now that we have our parameters set up, let's begin generating
+         * random integers until one falls between $min and $max
          */
-    } while (!is_int($val) || $val > $max || $val < $min);
+        do {
+            /**
+             * The rejection probability is at most 0.5, so this corresponds
+             * to a failure probability of 2^-128 for a working RNG
+             */
+            if ($attempts > 128) {
+                throw new Exception(
+                    'random_int: RNG is broken - too many rejections'
+                );
+            }
+
+            /**
+             * Let's grab the necessary number of random bytes
+             */
+            $randomByteString = random_bytes($bytes);
 
-    return (int) $val;
+            /**
+             * Let's turn $randomByteString into an integer
+             *
+             * This uses bitwise operators (<< and |) to build an integer
+             * out of the values extracted from ord()
+             *
+             * Example: [9F] | [6D] | [32] | [0C] =>
+             *   159 + 27904 + 3276800 + 201326592 =>
+             *   204631455
+             */
+            $val &= 0;
+            for ($i = 0; $i < $bytes; ++$i) {
+                $val |= ord($randomByteString[$i]) << ($i * 8);
+            }
+
+            /**
+             * Apply mask
+             */
+            $val &= $mask;
+            $val += $valueShift;
+
+            ++$attempts;
+            /**
+             * If $val overflows to a floating point number,
+             * ... or is larger than $max,
+             * ... or smaller than $min,
+             * then try again.
+             */
+        } while (!is_int($val) || $val > $max || $val < $min);
+
+        return (int)$val;
+    }
 }
diff --git a/vendor/paragonie/random_compat/psalm-autoload.php b/vendor/paragonie/random_compat/psalm-autoload.php
new file mode 100644
index 0000000000000000000000000000000000000000..d71d1b818c311072207e3ee4abff9f82a10d2fa9
--- /dev/null
+++ b/vendor/paragonie/random_compat/psalm-autoload.php
@@ -0,0 +1,9 @@
+<?php
+
+require_once 'lib/byte_safe_strings.php';
+require_once 'lib/cast_to_int.php';
+require_once 'lib/error_polyfill.php';
+require_once 'other/ide_stubs/libsodium.php';
+require_once 'lib/random.php';
+
+$int = random_int(0, 65536);
diff --git a/vendor/paragonie/random_compat/psalm.xml b/vendor/paragonie/random_compat/psalm.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f501315602d6bb52f047c217eed74efb8e3bd113
--- /dev/null
+++ b/vendor/paragonie/random_compat/psalm.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<psalm
+    autoloader="psalm-autoload.php"
+    stopOnFirstError="false"
+    useDocblockTypes="true"
+>
+    <projectFiles>
+        <directory name="lib" />
+    </projectFiles>
+    <issueHandlers>
+        <InvalidOperand errorLevel="info" />
+        <UndefinedConstant errorLevel="info" />
+        <MissingReturnType errorLevel="info" />
+    </issueHandlers>
+</psalm>
diff --git a/vendor/splitbrain/php-archive/composer.json b/vendor/splitbrain/php-archive/composer.json
index 5ad41a8c4544df3dbb7e8bd12ec0c9c8ae56ec01..36c649769129fcdf4930f1c25f4da9e0c98712ac 100644
--- a/vendor/splitbrain/php-archive/composer.json
+++ b/vendor/splitbrain/php-archive/composer.json
@@ -14,6 +14,11 @@
         "php": ">=5.3.0"
     },
 
+    "suggest": {
+        "ext-iconv": "Used for proper filename encode handling",
+        "ext-mbstring": "Can be used alternatively for handling filename encoding"
+    },
+
     "require-dev": {
         "phpunit/phpunit": "4.5.*"
     },
diff --git a/vendor/splitbrain/php-archive/src/FileInfo.php b/vendor/splitbrain/php-archive/src/FileInfo.php
index 612f924c34668e02c0d0d3aa6bd9c09804a66909..99f60c0fe1df7ddd5445a44da0bf88bf61937e7c 100644
--- a/vendor/splitbrain/php-archive/src/FileInfo.php
+++ b/vendor/splitbrain/php-archive/src/FileInfo.php
@@ -74,10 +74,11 @@ class FileInfo
     }
 
     /**
-     * @return int
+     * @return int the filesize. always 0 for directories
      */
     public function getSize()
     {
+        if($this->isdir) return 0;
         return $this->size;
     }
 
diff --git a/vendor/splitbrain/php-archive/src/Tar.php b/vendor/splitbrain/php-archive/src/Tar.php
index e29c7d5a63ba4ba4f960fc749877a0494bf078bd..f9d7bfbc094a4c5e78ab15028f40bde918107a08 100644
--- a/vendor/splitbrain/php-archive/src/Tar.php
+++ b/vendor/splitbrain/php-archive/src/Tar.php
@@ -230,9 +230,10 @@ class Tar extends Archive
     /**
      * Add a file to the current TAR archive using an existing file in the filesystem
      *
-     * @param string          $file     path to the original file
+     * @param string $file path to the original file
      * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original
-     * @throws ArchiveIOException
+     * @throws ArchiveCorruptedException when the file changes while reading it, the archive will be corrupt and should be deleted
+     * @throws ArchiveIOException there was trouble reading the given file, it was not added
      */
     public function addFile($file, $fileinfo = '')
     {
@@ -253,8 +254,10 @@ class Tar extends Archive
         $this->writeFileHeader($fileinfo);
 
         // write data
+        $read = 0;
         while (!feof($fp)) {
             $data = fread($fp, 512);
+            $read += strlen($data);
             if ($data === false) {
                 break;
             }
@@ -265,6 +268,11 @@ class Tar extends Archive
             $this->writebytes($packed);
         }
         fclose($fp);
+
+        if($read != $fileinfo->getSize()) {
+            $this->close();
+            throw new ArchiveCorruptedException("The size of $file changed while reading, archive corrupted. read $read expected ".$fileinfo->getSize());
+        }
     }
 
     /**
@@ -573,7 +581,7 @@ class Tar extends Archive
         // Handle Long-Link entries from GNU Tar
         if ($return['typeflag'] == 'L') {
             // following data block(s) is the filename
-            $filename = trim($this->readbytes(ceil($header['size'] / 512) * 512));
+            $filename = trim($this->readbytes(ceil($return['size'] / 512) * 512));
             // next block is the real header
             $block  = $this->readbytes(512);
             $return = $this->parseHeader($block);
diff --git a/vendor/splitbrain/php-archive/src/Zip.php b/vendor/splitbrain/php-archive/src/Zip.php
index 1bc1ac1b7b24415b879608e70e4d6a03a17b4f72..272a9027b0d0731b880f75cf12f77525db0189d1 100644
--- a/vendor/splitbrain/php-archive/src/Zip.php
+++ b/vendor/splitbrain/php-archive/src/Zip.php
@@ -272,7 +272,7 @@ class Zip extends Archive
      * Add a file to the current archive using an existing file in the filesystem
      *
      * @param string          $file     path to the original file
-     * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original
+     * @param string|FileInfo $fileinfo either the name to use in archive (string) or a FileInfo oject with all meta data, empty to take from original
      * @throws ArchiveIOException
      */
     public function addFile($file, $fileinfo = '')
@@ -295,7 +295,7 @@ class Zip extends Archive
     }
 
     /**
-     * Add a file to the current TAR archive using the given $data as content
+     * Add a file to the current Zip archive using the given $data as content
      *
      * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data
      * @param string          $data     binary content of the file to add
@@ -495,8 +495,10 @@ class Zip extends Archive
 
         if ($header['extra_len'] != 0) {
             $header['extra'] = fread($this->fh, $header['extra_len']);
+            $header['extradata'] = $this->parseExtra($header['extra']);
         } else {
             $header['extra'] = '';
+            $header['extradata'] = array();
         }
 
         if ($header['comment_len'] != 0) {
@@ -536,8 +538,10 @@ class Zip extends Archive
         $header['filename'] = fread($this->fh, $data['filename_len']);
         if ($data['extra_len'] != 0) {
             $header['extra'] = fread($this->fh, $data['extra_len']);
+            $header['extradata'] = array_merge($header['extradata'],  $this->parseExtra($header['extra']));
         } else {
             $header['extra'] = '';
+            $header['extradata'] = array();
         }
 
         $header['compression'] = $data['compression'];
@@ -559,6 +563,35 @@ class Zip extends Archive
         return $header;
     }
 
+    /**
+     * Parse the extra headers into fields
+     *
+     * @param string $header
+     * @return array
+     */
+    protected function parseExtra($header)
+    {
+        $extra = array();
+        // parse all extra fields as raw values
+        while (strlen($header) !== 0) {
+            $set = unpack('vid/vlen', $header);
+            $header = substr($header, 4);
+            $value = substr($header, 0, $set['len']);
+            $header = substr($header, $set['len']);
+            $extra[$set['id']] = $value;
+        }
+
+        // handle known ones
+        if(isset($extra[0x6375])) {
+            $extra['utf8comment'] = substr($extra[0x7075], 5); // strip version and crc
+        }
+        if(isset($extra[0x7075])) {
+            $extra['utf8path'] = substr($extra[0x7075], 5); // strip version and crc
+        }
+
+        return $extra;
+    }
+
     /**
      * Create fileinfo object from header data
      *
@@ -568,15 +601,75 @@ class Zip extends Archive
     protected function header2fileinfo($header)
     {
         $fileinfo = new FileInfo();
-        $fileinfo->setPath($header['filename']);
         $fileinfo->setSize($header['size']);
         $fileinfo->setCompressedSize($header['compressed_size']);
         $fileinfo->setMtime($header['mtime']);
         $fileinfo->setComment($header['comment']);
         $fileinfo->setIsdir($header['external'] == 0x41FF0010 || $header['external'] == 16);
+
+        if(isset($header['extradata']['utf8path'])) {
+            $fileinfo->setPath($header['extradata']['utf8path']);
+        } else {
+            $fileinfo->setPath($this->cpToUtf8($header['filename']));
+        }
+
+        if(isset($header['extradata']['utf8comment'])) {
+            $fileinfo->setComment($header['extradata']['utf8comment']);
+        } else {
+            $fileinfo->setComment($this->cpToUtf8($header['comment']));
+        }
+
         return $fileinfo;
     }
 
+    /**
+     * Convert the given CP437 encoded string to UTF-8
+     *
+     * Tries iconv with the correct encoding first, falls back to mbstring with CP850 which is
+     * similar enough. CP437 seems not to be available in mbstring. Lastly falls back to keeping the
+     * string as is, which is still better than nothing.
+     *
+     * @param $string
+     * @return string
+     */
+    protected function cpToUtf8($string)
+    {
+        if (function_exists('iconv')) {
+            return iconv('CP437', 'UTF-8', $string);
+        } elseif (function_exists('mb_convert_encoding')) {
+            return mb_convert_encoding($string, 'UTF-8', 'CP850');
+        } else {
+            return $string;
+        }
+    }
+
+    /**
+     * Convert the given UTF-8 encoded string to CP437
+     *
+     * Same caveats as for cpToUtf8() apply
+     *
+     * @param $string
+     * @return string
+     */
+    protected function utf8ToCp($string)
+    {
+        // try iconv first
+        if (function_exists('iconv')) {
+            $conv = @iconv('UTF-8', 'CP437//IGNORE', $string);
+            if($conv) return $conv; // it worked
+        }
+
+        // still here? iconv failed to convert the string. Try another method
+        // see http://php.net/manual/en/function.iconv.php#108643
+
+        if (function_exists('mb_convert_encoding')) {
+            return mb_convert_encoding($string, 'CP850', 'UTF-8');
+        } else {
+            return $string;
+        }
+    }
+
+
     /**
      * Write to the open filepointer or memory
      *
@@ -684,6 +777,8 @@ class Zip extends Archive
         $comp = $comp ? 8 : 0;
         $dtime = dechex($this->makeDosTime($ts));
 
+        list($name, $extra) = $this->encodeFilename($name);
+
         $header = "\x50\x4b\x01\x02"; // central file header signature
         $header .= pack('v', 14); // version made by - VFAT
         $header .= pack('v', 20); // version needed to extract - 2.0
@@ -700,13 +795,14 @@ class Zip extends Archive
         $header .= pack('V', $clen); // compressed size
         $header .= pack('V', $len); // uncompressed size
         $header .= pack('v', strlen($name)); // file name length
-        $header .= pack('v', 0); // extra field length
+        $header .= pack('v', strlen($extra)); // extra field length
         $header .= pack('v', 0); // file comment length
         $header .= pack('v', 0); // disk number start
         $header .= pack('v', 0); // internal file attributes
         $header .= pack('V', 0); // external file attributes  @todo was 0x32!?
         $header .= pack('V', $offset); // relative offset of local header
         $header .= $name; // file name
+        $header .= $extra; // extra (utf-8 filename)
 
         return $header;
     }
@@ -728,6 +824,8 @@ class Zip extends Archive
         $comp = $comp ? 8 : 0;
         $dtime = dechex($this->makeDosTime($ts));
 
+        list($name, $extra) = $this->encodeFilename($name);
+
         $header = "\x50\x4b\x03\x04"; //  local file header signature
         $header .= pack('v', 20); // version needed to extract - 2.0
         $header .= pack('v', 0); // general purpose flag - no flags set
@@ -743,8 +841,37 @@ class Zip extends Archive
         $header .= pack('V', $clen); // compressed size
         $header .= pack('V', $len); // uncompressed size
         $header .= pack('v', strlen($name)); // file name length
-        $header .= pack('v', 0); // extra field length
-        $header .= $name;
+        $header .= pack('v', strlen($extra)); // extra field length
+        $header .= $name; // file name
+        $header .= $extra; // extra (utf-8 filename)
         return $header;
     }
+
+    /**
+     * Returns an allowed filename and an extra field header
+     *
+     * When encoding stuff outside the 7bit ASCII range it needs to be placed in a separate
+     * extra field
+     *
+     * @param $original
+     * @return array($filename, $extra)
+     */
+    protected function encodeFilename($original)
+    {
+        $cp437 = $this->utf8ToCp($original);
+        if ($cp437 === $original) {
+            return array($original, '');
+        }
+
+        $extra = pack(
+            'vvCV',
+            0x7075, // tag
+            strlen($original) + 5, // length of file + version + crc
+            1, // version
+            crc32($original) // crc
+        );
+        $extra .= $original;
+
+        return array($cp437, $extra);
+    }
 }